Must は強い義務・命令、should, have to は弱めの義務になります。Shall は古典、決まり文句で劇的な効果を狙う以外では今は全く使われません。
助動詞以外の表現では、特に口語では be supposed to が頻繁に使われます。Be supposed to は弱い義務で、遠回しの義務、または「~することが期待される」程度の意味であることが普通です。
- We’re supposed to be there by 8 -> 私達は8時にはそこにいるべきだ
- You’re not supposed to smoke inside the building -> 建物の中では喫煙すべきでない、してはいけない
「私はどうすべきか?」はどれを使うかによって意味合い・響きが異なります。
- What must I do? ☹ (通じるが、普通使われない)
- What do I have to do?(義務よりも必要)
- What should I do? (一般的で特別な感情を含まない)
- What am I supposed to do? (「一体どうしろと言うんだ?」の響きがある)
法的な義務については be required to が、道徳的な義務については be obligated/obliged to が多く使われます。
- You are required to provide a valid ID -> あなたは有効な身分証明書を提示しなくてはいけない
- You are not obligated to return the favor -> 礼儀を返す義務は無い
また以下の違いに注意してください。
- had to -> ~しなくてはいけなかったのでそうした
- She had to give up her dream to support her family -> 彼女は家計を支えるために夢を諦めざるをえなかった
- should have + 過去分詞 -> ~するべきだったがそうしなかった(そしてそのために悪い結果になった)
- You should’ve told me earlier -> あなたはもっと早く私にそう言うべきだった
- was/were supposed to -> ~するべきだったがしなかった(だが結果には大きな影響は無かった)
- You were supposed to be in the meeting -> あなたはその会議に出席するべきだった、出席するものと思われていた
また must have + 過去分詞は「~だったに違いない」の意で、義務は意味しません。