腕捻れ防止6分割補助ボーン・尻膝コの字補助ボーン

腕捻れ防止6分割補助ボーン・尻膝コの字補助ボーン

今回は、腕捻れ防止6分割補助ボーン・尻膝コの字補助ボーンの設定方法を解説します。以前に紹介したBlenderでの自動ウェイトを仮定しています。そちらの記事も合わせて見て貰えればと思います。腕は6分割していますが、コンストレイント設定するところも少なくして労力コスパは良い方だと思っています。

説明で使用する庭子アバター

庭子アバター v01.40 Blender fileを使って説明します。庭子アバター 配布所から「Niwako-v0140 Blender file」をダウンロードしてzip解凍してください。下記のファイルが解凍されるはずです。

unitypackageの方は「Niwako-v0141 unitypackage」を使います。こちらも庭子アバター 配布所からダウンロードして解凍してください。

「niwako-v0141-100K.unitypackage」を使います。VCCからAvatars 2022で新規プロジェクト作って importしてください。liltoonもVCCからインストールしておくといいでしょう。

Blender 4.3.2, Unity : 2022.3.22f1で動作確認しています。

Blender表示とUnity表示を適時切り替えて表示・説明していきます。

腕捻れ防止6分割補助ボーン

庭子の腕捻れ防止6分割補助ボーンは下図のように、upperarm:3分割、lowerarm:3分割で6分割しています。以前の解説では4分割でしたらよりキレイな動作にするため6分割にしました。

左右ありますが、ボーン名の最後が.Lと.Rで違うだけですので、左側(.L)のみ説明していきます。

下記からはBlenderの表示です。

BlenderではAmatureの中で、下記のように見えるはずです。

UnityではHierarchyのAmatureの中で下記のように見えます。対応していると思ってください。

Blenderでボーンコンストレイント入れているのは動作デバッグのためです。最終的にはUnity側のみコンストレイント設定すれば良いのですが、Blender上で動作確認しながら補助ボーンなどモデリングしていくのは効率を考えると重要でしょう。

upperarm.L, lowerarm.R の変形はoffにします。その代わりupperarm.twist1.L, upperarm.twist2.L, upperarm.twist3.L, lowerarm.twist1.L, lowerarm.twist2.L, lowerarm.twist3.Lの変形がonです。ウェイトが塗られてメッシュ変形させるのはtwist補助ボーンだからです。

twist1, twist2, twist3の位置はすこし重ねます。自動ウェイトによるウェイト塗りをほどよく混ぜる(ブレンド)させるためです。

twistボーン作成するときは親となるupperarmなどをSHIFT-Dでコピーして、コピーしたボーンを分割で三つに分けて、ボーンの接続offにし、ヘッドやテールの位置をx軸いどうなどで変更するといいでしょう。

upperarm.twist1.L

upperarmの子ボーンです。ボーンコンストレイント:回転コピーは設定しません。upperarmに100%連動します。

Blender自動ウェイトで塗られたupperarm.twist1.Lのウェイト。

upperarm.twist2.L

upperarmの子ボーンです。

Blender自動ウェイトで塗られたupperarm.twist2.Lのウェイト。

BlenderとUnityでのコンストレイント設定は下記の通りです。lowerarmボーンのY軸回転追従率は50%(0.5)です。

upperarm.twist3.L

upperarmの子ボーンです。

Blender自動ウェイトで塗られたupperarm.twist3.Lのウェイト。

BlenderとUnityでのコンストレイント設定は下記の通りです。lowerarmボーンのY軸回転追従率は90%(0.9)です。肘の部分はelbow補助ボーンもあるし、目立つ部分なので、なるべく捻れないよう90%としました。

lowerarm.twist1.L

lowerarmの子ボーンです。ボーンコンストレイント:回転コピーは設定しません。lowerarmに100%連動します。

Blender自動ウェイトで塗られたlowerarm.twist1.Lのウェイト。

lowerarm.twist2.L

lowerarmの子ボーンです。

Blender自動ウェイトで塗られたlowerarm.twist2.Lのウェイト。

BlenderとUnityでのコンストレイント設定は下記の通りです。handボーンのY軸回転追従率は40%(0.4)です。

lowerarm.twist3.L

lowerarmの子ボーンです。

Blender自動ウェイトで塗られたlowerarm.twist3.Lのウェイト。

BlenderとUnityでのコンストレイント設定は下記の通りです。handボーンのY軸回転追従率は80%(0.8)です。手首も捻れが目立つところです。handボーンとなるべくスムーズに繋がるように80%としました。

elbow.L

Blender自動ウェイトで塗られたelbow.Lのウェイト。elbow.Lはupperarm.twist3.Lの子ボーンとして作成し、回転コピーのターゲットにはlowerarm.twist1.Lの中のelbow-ctrl.Lをを指定して、XYZ軸50%回転コピーとします。

elbowはワールド空間で、XYZ軸回転コピー追従率50%(0.5)にしています。

追従ターゲットボーンは新しく、elbowボーンの延長線上にelbow-ctrl.L(lowerarm.twist1.Lの子ボーン)を作りました。

elbow.Lの回転コピーターゲットボーンにlowerarm.twist1.Lを指定すると初期位置が曲がってしまいます。調整するよりはelbow.Lボーンの延長線上にelbow-ctrl.Lを、lowerarm.twist1.Lの子ボーンとして作成し、回転コピーのターゲットとして使った方が設定楽だと考えました。ボーン数は増えてしまうのですが、何度も設定するときの労力減と備忘録(忘れない度)を考えて採用しています。

腕捻れ防止補助ボーン効果

6分割しただけあり、相当キレイになったと思います。まだ手のひら上にして肘を大きく曲げたときぎこちなさが少し残ります。今後の課題です。

尻・膝コの字補助ボーン

下記が尻・膝コの字補助ボーンと、その自動ウェイト結果です。

Unityでは下記のように表示されます。

尻コの字補助ボーン

upperleg.ASSIST.Lはhipsボーンの子として作成します。upperlegの延長線上、上部に少し小さくしておきます。

腰から太ももへのラインをキレイに曲がらせたいので、通常のupperleg.Lとhips関節部部よりも少し上にupperleg.ASSIST.Lの関節部が来るようにします。

upperleg.ASSIST.Lのボーンコンストレイント:回転コピーです。upperlegをターゲットにして50%(0.5)追従です。upperleg.Lとupperleg.ASSIST.Lが直列なのでctrlボーンを作成する必要はありません。

hipsとupperlegが繋がっていない(間にupperleg.ASSISTが入っている)ので、位置コピー(100%:1.0)で固定します(必要無いかもしれない・・・)。

膝コの字補助ボーン

膝コの字補助ボーンのボーンコンストレイント回転コピー設定は下記の通りです。

lowerlegがupperlegと繋がっていないので位置コピーで固定します(必要無いかも知れない・・・)。

尻・膝コの字補助ボーン効果

体育座りなど尻・膝を大きく曲げたときに効果抜群です。絶対に入れた方が良い動的補助ボーンだと思っています。でもダンス動画ではあまり大きく尻・膝を曲げないモーションが多いので効果に気づかないかも知れません。

腕捻れ防止6分割・尻膝コの字 補助ボーンの効果動画

腕捻れ補助ボーンと尻・膝コの字補助ボーンをあり・なし動画比較しました。尻・膝は動画では違いが分からないかも知れません。

正面からの動画。

斜め上(腕がよく見える)からの動画。

Chiaカテゴリの最新記事