肘関節が痩せるのを防止するTwistBone設定

はじめに

手首を捻った際に肘関節のメッシュが痩せてしまうのが気になっていたのですが、夏を目前に迎え薄着になることも多いので対策を考えました。

※この作業にはややつよめのBlender力が要求されます
※この設定に対する問題点やデメリットはまだ完全に把握されていません。必ずテスト用アバターとして別に設定して確認を行ってください。


腕ボーンを4分割してねじれを分散する。

有意な結果を得られたのはUpper_Arm、Lower_Armを細分化し4ボーン構成にしてねじれを分散する方法でした。早速やっていきましょう。

Blenderで作業する

BlenderでUpper_Armを複製し、Upper_Twistにリネームした後Upper_Armの子になるようにします。Lower_Armについても同様に行います。

頂点グループのUpper_Armを複製し、Upper_Twistを作成します。
Lower_Armについても同様に複製します。

Upper_ArmとUpper_Twistのウェイトを上記のように塗り替えます。
塗り替えにはグラデーションツールが便利です。
ウェイト量を0にして消したい方向からドラッグするだけで簡単に塗り替えてくれます。
目安としては緑の部分を重なるようにするといい感じになります。

Upper_Twistのウェイトは塗り替えた後正規化しておくといいでしょう。

Lower_ArmとLower_Twistについても同様に塗り替えます。
左右どちらかを塗り終えたら、もう片方は頂点グループをコピーしてウェイトのミラー反転しても良いです。
Blender作業はここまでになりますのでfbxをエクスポートします。

Unityで作業する

Upper_TwistとLower_TwistにRotation Constraintを設定します。
Upper_Arm、Lower_Armは通常と同じだけ回転しますが、Twist部分だけが通常より多めに回転することでひねりが分散されスムーズな関節になります。

Upper_TwistにRotation Constraintを追加します。
SourcesにLower_Armを入れ、Freeze Rotation AxesをYのみチェックしActivateします。
Weightを0.5にします。

同様にLower_TwistにもRotation Constraintを追加。
SourcesにHandを入れ、Freeze Rotation AxesをYのみチェックしActivateし、
Weightを0.5にして完了です。


実験的機能

fbxのインポート設定のMascles&SettingsにUpper Arm Twist、Lower Arm Twistという腕のひねりをオフセットするための設定が存在します。
この部分を変更するともっと自然なひねりを実現することが可能です。が、現状この設定はローカル扱いで他の人からの見た目には反映されません。

この機能については別途検証を行っていますが、現状では使用を推奨しません。


この記事が気に入ったらサポートをしてみませんか?