前の記事でラグドールが伸びたりする問題はなくなりましたが、まだ倒れ方が不自然なので、ジョイントの動きに制限をつけてみます。
Character Jointを使うと、3つの軸に沿った回転を制限できます。コンポーネントのAxisに沿った回転は最小値と最大値が設定でき、もう2つの軸では両側に同じ角度だけ広がった回転範囲を設定できます。https://docs.unity3d.com/ja/current/Manual/class-CharacterJoint.html

なので、体の関節を自然に曲げるときの方向を優先しました。これらの設定は上部にある「Edit Joint Angular Limits」ボタンを押すと、シーンビューでハンドルを使って設定できます。

ジョイントでつなげたオブジェクトがはじめから少し傾いていた場合、制限をすべて0にすると傾いた状態のまま固定されます。


なので、とりあえずハンドルを動かして、インスペクタで制限の値が0になる位置を探すとわかりやすいと思います。
まだ不自然ですが、はじめよりかなり良くなりました。