Spineバージョン: 3.7+
タグ:

Professional、変形、メッシュ、ウェイト、IKコンストレイント

Raptor(恐竜)

このRaptor(恐竜)プロジェクトではウェイト付けされたメッシュIKの使用方法を説明しています。スケルトンを3Dのように見せるテクニックも使用します。下記では主にスケルトンのセットアップに焦点を当てて説明しています。

恐竜のセットアップ

hip ボーンは恐竜の体のボーン階層の根本になっており、脚、尾、胴体がそれぞれ子になっています。hipボーンは恐竜の体全体を調整するコントロールボーンとしての役目を担っています。

太もものメッシュアタッチメントの頂点は恐竜の脚を構成するボーンの他、hipボーンにもウェイト付けされています。これによりhipボーンが回転した時、メッシュの端にある頂点を適切な位置に保たれます。

脚と足先

恐竜の前脚と後脚は同じようにセットアップされます。説明を簡潔にするために、今回は前脚の詳細のみ説明します。脚はfront-leg-ikおよびfront-foot-ikという2つのIKコンストレイントにより制御されています。

2つのボーンによるIKコンストレイントfront-leg-ikは、front-leg1front-leg2ボーンをコントロールし、同じく2つのボーンによるIKコンストレイントfront-foot-ikfront-leg3front-foot1ボーンを動かします。注意していただきたいのは、これらの2つのIKコンストレイントがボーンに適用される順番が重要である点です。まずfront-leg-ikコンストレイントを適用し、次にfront-foot-ikコンストレイントを適用します。コンストレイントの適用順はツリービューConstraint(コンストレイント)ノードの中の順番によって定義されています。

これらの2つのIKコンストレイントは恐竜の体のボーン階層外にあるfront-foot-goalfront-leg-goalボーンをターゲットとしています。ターゲットボーンを動かすとIKで制約されたボーンがこれを追従します。これにより、脚やかかとを曲げやすくしています。

脚の先端にはfront-foot1ボーンとその子ボーンであるfront-foot2があります。親ボーンを回転する時、足が地面をすり抜けないように、front-foot2Inherit Rotation(回転の継承)は無効になっています。

front-leg1ボーンは、この脚ボーン階層の中でアタッチメントを含むスロットを持つ唯一のボーンです。raptor-front-legメッシュアタッチメントの頂点は脚ボーンにウェイト付けされており、ボーンがトランスフォームされるとスムーズに変形します。

恐竜の上半身は単一のメッシュアタッチメントraptor-bodyで構成されています。この頂点は胴体や尾など、上半身の部分を構成するボーンにウェイト付けされています。

画像raptor-bodyは、どちらの方向に曲がった時もきれいに変形できるように、尾が直線状になっています。共通ルールとして、メッシュをいずれかの方向に曲げる必要がある場合は、ボーンがバインドされる際にメッシュイメージがまっすぐになるようにしてください。

顎はraptor-jawメッシュアタッチメントで表現されます。恐竜の太ももと同様に、顎のピボット周辺の頂点はheadボーンにウェイト付けされています。これにより、顎が回転した時に頭部から分離してるように見せてしまわないようにしています。

顎に3Dのような奥行きを与えるために、顎ボーンはraptor-jawメッシュのコピーを含むjaw-insideというボーンを含んでいます。このメッシュは縮小され、顎前部より少し暗い色に着色されてます。恐竜の舌はこの2つの顎アタッチメントの間に描画されています。

角のボーンであるhorn-fronthorn-backを相互に独立して動かすことで頭部に少し3Dのような効果を加わり、頭が左右に回転しているように見せることができます。

また角ボーン階層はSpineboyが角をしっかり握っているように見せるために、back-arm-targetfront-arm-targetを含んでいます。

Spineboyのセットアップ

Spineboyの腰のボーンspineboy-hipは、恐竜の上のsaddle(鞍)ボーンの子になっています。この腰のボーンをトランスフォームすると、Spineboyの体が動きます。両手と両足用の4つのIKコンストレイントは、Spineboyのあぶみ上の足と、恐竜の角を持つ手を固定するために使用されています。

2つのIKコンストレイントspineboy-front-arm-ikspineboy-back-arm-ikは、恐竜の角の子要素になっているIKターゲットback-arm-targetおよびfront-arm-targetにSpineboyの手を配置しています。spineboy-front-arm-ikコンストレイントがfront-armfront-bracerボーンを動かし、spineboy-back-arm-ikコンストレイントがback-armback-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(アタッチ): gunAttach(アタッチ): front-handタイムラインのフレーム7で起きています。