庭子アバターに導入している動的(Bone Constraint)補助ボーンをまとめておきます。
細かい位置、数値などは庭子アバター 配布所でBlenderファイルを公開していますので、そちらを参考にしてください。何をどういう意図でいれたのかまとめておきます。
基本構造
ほとんとがRotation Constraintで対応していいます。コの字膝のみPositon Constraintも併用。
BlenderでConstraintの具合を確認しながら、動的補助ボーンを導入します。Bone ConstraintはBlender→Unity変換できないため、Unity上ではもう一度同じ意味のConstraintを入れ直します。
xxxx-crtl.L/R : 動的補助ボーンxxxのターゲットになります。
ウェイト
自動ウェイトです。首から下を分離して、補助ボーン入り(動的・静的)アーマチュアと首から下ボディメッシュで自動ウェイトかけてください。
お尻
体育座りなど太ももを大きく曲げたときにお尻がぺたんこ(細く)なりすぎないようにいれます。ふともも(buttucks-ctrlupperlegの子ボーンなので一緒に動きます)ボーンとhipsボーンの作る角度の半分位置にbuttucksボーンがくるように回転コンストレイント(Rotation Constraint)をいれます。
入り組んでいるところはボーンをスティック表示にしています。
このボーン構造をFBXファイルにしてUnityに持って行く。Unity側ではAdd Component で「Rotation Constraint」を追加し下記設定をする。何度も設定することになるのでPresetsなどに保存しておくと便利。LとR両方設定してください。
Constraint Settingsは下記のように全角度です。
膝
膝を綺麗にまげるため、二重関節(コの字膝)を導入しています。とても綺麗に曲がるようになりました。動的補助ボーン導入で膝が鋭角になるのを防ぎ、さらに静的補助ボーン(knee.AsistU, kneeAsistL)の導入で膝裏がつぶれにくくなります。
upperlegとkneeはボーン接続されていますが、upperleg・kneeとlowerlegはボーン接続されていません。なので Position Constraint をいれて位置が接続されるようにします。
Rotation Constraint導入時にzeroを押す必要があるかも知れません。
膝を芽形時の位置関係拡大図。ボーン名最後のLとRの文字が重なっています。
Unityでは下記設定となります。LとR両方設定して下さい。
Constraint Settingsは下記のように全角度です。
肘
肘を曲げたときに、肘の先がとがったままにするため Rotation Constraint をいれます。これも50%角度です。
Unityでは下記設定。LとR両方設定してください。
腕ねじれ防止
下記のよう腕のなねじ切れ防止です。
追加ボーン数をなるべく少なくする解をとりました。もっと綺麗に曲げたいので将来変更したいと思っています。いまはupperarmに1本、lowerarmに1本の計2本追加するのみです。
upperarm と upperarm.twist の両方に変形チェックがはいっています。lowerarmとlowerarm.twistも両方変形チェックが入っています。そのため両方のウェイトがボディメッシュに自動生成されます。いまのところ、これでそれなりに動きます。
upperarm-twistとlowerarm-twistはローカル空間のY軸回転だけみて 50% 角度で回転します。これによりうでのねじれが緩やかになります。
Unity設定は下記の通り。Y軸回転のみ50%で反映されるように設定します。LとR両方設定してください。
比較動画
歌:シャノ(mylist/4620256)
作曲:40㍍P(mylist/7975931)
作詞:40㍍P、シャノ
絵:よしづきくみち様(http://www.tuchinoko.com/)
※コンピアルバム「Panoram a Note」収録曲です。
公式サイト:http://www.pixelbee.jp/panorama/
クロスフェード:sm11550635
モーション配布
振り付け:足太ぺんたさん
モーション:079robo さん