Raptor(恐竜)
このRaptor(恐竜)プロジェクトではウェイト付けされたメッシュとIKの使用方法を説明しています。スケルトンを3Dのように見せるテクニックも使用します。下記では主にスケルトンのセットアップに焦点を当てて説明しています。
恐竜のセットアップ
hip
ボーンは恐竜の体のボーン階層の根本になっており、脚、尾、胴体がそれぞれ子になっています。hip
ボーンは恐竜の体全体を調整するコントロールボーンとしての役目を担っています。
太もものメッシュアタッチメントの頂点は恐竜の脚を構成するボーンの他、hip
ボーンにもウェイト付けされています。これによりhip
ボーンが回転した時、メッシュの端にある頂点を適切な位置に保たれます。
脚と足先
恐竜の前脚と後脚は同じようにセットアップされます。説明を簡潔にするために、今回は前脚の詳細のみ説明します。脚はfront-leg-ik
およびfront-foot-ik
という2つのIKコンストレイントにより制御されています。
2つのボーンによるIKコンストレイントfront-leg-ik
は、front-leg1
とfront-leg2
ボーンをコントロールし、同じく2つのボーンによるIKコンストレイントfront-foot-ik
はfront-leg3
とfront-foot1
ボーンを動かします。注意していただきたいのは、これらの2つのIKコンストレイントがボーンに適用される順番が重要である点です。まずfront-leg-ik
コンストレイントを適用し、次にfront-foot-ik
コンストレイントを適用します。コンストレイントの適用順はツリービューのConstraint(コンストレイント)
ノードの中の順番によって定義されています。
これらの2つのIKコンストレイントは恐竜の体のボーン階層外にあるfront-foot-goal
とfront-leg-goal
ボーンをターゲットとしています。ターゲットボーンを動かすとIKで制約されたボーンがこれを追従します。これにより、脚やかかとを曲げやすくしています。
脚の先端にはfront-foot1
ボーンとその子ボーンであるfront-foot2
があります。親ボーンを回転する時、足が地面をすり抜けないように、front-foot2
のInherit Rotation(回転の継承)
は無効になっています。
front-leg1
ボーンは、この脚ボーン階層の中でアタッチメントを含むスロットを持つ唯一のボーンです。raptor-front-leg
メッシュアタッチメントの頂点は脚ボーンにウェイト付けされており、ボーンがトランスフォームされるとスムーズに変形します。
尾
恐竜の上半身は単一のメッシュアタッチメントraptor-body
で構成されています。この頂点は胴体や尾など、上半身の部分を構成するボーンにウェイト付けされています。
画像raptor-body
は、どちらの方向に曲がった時もきれいに変形できるように、尾が直線状になっています。共通ルールとして、メッシュをいずれかの方向に曲げる必要がある場合は、ボーンがバインドされる際にメッシュイメージがまっすぐになるようにしてください。
顎
顎はraptor-jaw
メッシュアタッチメントで表現されます。恐竜の太ももと同様に、顎のピボット周辺の頂点はhead
ボーンにウェイト付けされています。これにより、顎が回転した時に頭部から分離してるように見せてしまわないようにしています。
顎に3Dのような奥行きを与えるために、顎ボーンはraptor-jaw
メッシュのコピーを含むjaw-inside
というボーンを含んでいます。このメッシュは縮小され、顎前部より少し暗い色に着色されてます。恐竜の舌はこの2つの顎アタッチメントの間に描画されています。
角
角のボーンであるhorn-front
とhorn-back
を相互に独立して動かすことで頭部に少し3Dのような効果を加わり、頭が左右に回転しているように見せることができます。
また角ボーン階層はSpineboyが角をしっかり握っているように見せるために、back-arm-target
とfront-arm-target
を含んでいます。
Spineboyのセットアップ
Spineboyの腰のボーンspineboy-hip
は、恐竜の上のsaddle
(鞍)ボーンの子になっています。この腰のボーンをトランスフォームすると、Spineboyの体が動きます。両手と両足用の4つのIKコンストレイントは、Spineboyのあぶみ上の足と、恐竜の角を持つ手を固定するために使用されています。
腕
2つのIKコンストレイントspineboy-front-arm-ik
とspineboy-back-arm-ik
は、恐竜の角の子要素になっているIKターゲットback-arm-target
およびfront-arm-target
にSpineboyの手を配置しています。spineboy-front-arm-ik
コンストレイントがfront-arm
とfront-bracer
ボーンを動かし、spineboy-back-arm-ik
コンストレイントがback-arm
とback-bracer
ボーンを動かします。Spineboyはほとんどのアニメーションで恐竜の角を握っているため、IKコンストレイントのMix(ミックス)
値は設定モードで100%
に設定されています。
銃を握る
腕のIKコンストレイントのMix(ミックス)
値が100%
に設定される時、腕と長手袋(bracer)ボーンは完全にインバース・キネマティクスにより制御されます。gun-grab
アニメーションではSpineboyは角を離して銃を握りますが、その際は腕と長手袋(bracer)ボーンはIKコンストレイントの代わりにボーンのトランスフォームキーにより動かす必要があります。
IKコンストレイントの影響を無効にするには、gun-grab
アニメーションのフレーム0
でこれらのMix(ミックス)
値を0%
に設定します。
ホルスター内の銃はgun
スロットのアタッチメントです。Spineboyのfront-hand
スロットが銃を握る手の画像に切り替えられる時にこのアタッチメントを非表示にしています。これはAttach(アタッチ): gun
とAttach(アタッチ): front-hand
タイムラインのフレーム7
で起きています。