今回はツイストボーン(Twist Bone)と呼ばれる、いわゆる捻りのための補助骨の仕様や作成方法を解説します。
Unityでの実装方法は別途Unity Tips編の記事で執筆予定です。
今回の記事で必要にもなるコンストレイントについての前回の記事はこちらからどうぞ。
atelier-aomi.hatenablog.com
今回の目的
今回は手や腕を捻ったときに急激な頂点の動きや痩せてしまう問題を主に解決するためのツイストボーンを自分のモデルに対応し、ボーンコンストレイントを使用して改善することを目的とします。
また今回の内容は前回記事のコンストレイントについて理解していることを前提とします。
ツイストボーンの仕様

ツイストボーンは上画像のように作成します。詳しく見てみましょう。
ボーン階層について
ボーンの階層は以下のような構成にします。
気を付ける必要があるのは前腕の位置にはあるものの上腕の子ではなく、前腕の子にします。
つまりHandの階層を並列にしておく必要があります。
(*骨構造は自分のようなタイプやそもそも前腕ボーンを複数本構成にする、等いろいろあるのであくまでも一例です)

また、これらの子にするボーンの接続は外しておきます。
*接続してしまうと骨の向きがおかしなことになります。

また、骨の軸はLowerArmやHandと一致させておく方が後々の制御のことを考えると良いと思います。
今回の自分のモデルではY回転が捻りになるためここは必ず一致させてください。

なお、ツイストボーンの数はお好みで。大体の場合は2~4本くらいが一般的かなと思います。
自分のモデルがローポリなのかハイポリなのかによって増減させると良いと思います。
今回自分のモデルは比較的ローポリのため2本としました。
頂点グループの追加

ツイストボーンを追加したら、それに応じて頂点グループも追加しておきましょう。
Blenderは名前が一致していればその名前の骨のウェイトを紐づけがされます。
ウェイトの振り方

ウェイトの振り方は上動画のようにします。
ここで重要なのはツイストボーンにウェイトを振る関係で本来のLowerArmにはウェイトは振らないことです。
つまり、本来のウェイトをツイストボーンに分割して振るイメージです。
また、前項のようにLowerArmの子にすることでこれらの骨が全て一緒に動かされることになるため、従来のウェイトと比較して挙動自体には影響はありません。
コンストレイントを設定する

ツイストボーンの追加・ウェイトの設定ができたら実際にコンストレイントを設定していきます。
各骨に回転コピーのボーンコンストレイントを追加し、画像のように設定します。
内容としてはターゲットとボーンはHand骨にし、座標軸をYのみになるようにします。
骨の軸はここで大事になるため一致させていました。なお、仮に捻りがXならXに、ZならZに設定すればOKです。
ミックスは置き換え、ターゲットとオーナの空間はともにローカル空間に設定します。
最後に影響を設定しますが、ここの値はターゲットボーンからの距離で離れるほど減衰させるような値に設定します。
ここは実際捻りながら確認する必要がありますが、今回は近い順に 0.3 -> 0.2 としてみました。
これを両腕に設定したら対応完了です。捻ったときに前腕の一部がある程度一緒に動くことで急激な頂点の移動が軽減され痩せも軽減されていることがわかります。


おわりに
今回は前腕にのみ適用してみましたが、上腕や脚などにも応用が可能な手法なので是非導入してより綺麗で自然な捻りを目指しましょう。
次回記事
<記事ができ次第追加>









































