細かい制御を自動化する[トランスフォーム・コンストレイント]
単純にアニメーションさせるだけなら、[トランスフォーム・コンストレイント]は必須の機能ではありません。しかし、これを上手く使いこなせれば、リグやアニメーションの細かい制御の多くを自動化することで、量産作業を効率化できます。[トランスフォーム・コンストレイント]は、親子関係にないボーンでも、親子関係があるかのように設定できる機能で、1つのボーンの動きに、ほかのボーンを連動させることができます。普通の親子関係とはちがい、動きの影響を受ける値を指定できるため、例えば親に相当するターゲットボーンの動きのうち、50%だけ子に相当する制御ボーンが影響を受けるといった設定もできます。 今回は、身体の各パーツが浮遊しているゴーレムの攻撃モーション作成を通して、[トランスフォーム・コンストレイント]の使い方を解説します。
トランスフォーム・コンストレイントでのゴーレムの攻撃 pic.twitter.com/4YMYDXEleJ
— Akinari Shibata (@AkinariShibata) October 15, 2019
▲[トランスフォーム・コンストレイント]を使って、ゴーレムの身体の浮遊パーツを自動制御しています。普通にアニメーションを付けると、各パーツを個別に制御する必要があり、とても手間がかかります。アニメーションのたびに各パーツを動かすのは面倒なので、[トランスフォーム・コンストレイント]を設定し、右上肢の前腕の巨大なパーツを動かすと、体幹のパーツとの中間点に、上腕のパーツが自動的に移動するように設定しています
一般的な人型のキャラクターの場合、上肢のボーンは、上腕から前腕、前腕から手へと、親子関係を設定します。今回のゴーレムでは[トランスフォーム・コンストレイント]を用いてバラバラに制御したいので、すべて体幹(今回は[body]ボーン)の子にしておきます【上図内A】。ゴーレムの左上肢は人型のそれと同じように、上腕、前腕、手からなる3つのパーツで構成されていますが、右上肢は上腕と巨大な前腕の2つのパーツで構成されています。複数の関節の制御は少し複雑なので、まずは関節が1つだけの右上肢の設定方法を解説した後、関節が複数ある左上肢の設定方法を解説します。
ボーンの設定が終わったら、[トランスフォーム・コンストレイント]を設定していきます。この設定では、【1】子に相当するボーン(制御ボーン)の選択、【2】[トランスフォーム・コンストレイント]の名前の入力、【3】親に相当するボーン(ターゲットボーン)の選択、という3つの手順を踏みます。制御ボーンは、ターゲットボーンから移動や変形の情報を受け取り、自動的に追随します。今回は巨大な前腕を動かした際に、自動的に上腕が体幹と前腕の中間点まで移動するように設定します。まずは自動的に動いてほしい制御ボーン(今回は[armInner_upper]ボーン)をワークスペース上で選択します【上図内B】。続いて[ツリー]ビューのオプションの[新規]ボタンから[トランスフォーム・コンストレイント]を選択します【上図内C】 。
【上図】のように名前を入力するダイアログが表示されるので、任意の名前を入力します。[ツリー]ビューの[Hierarchy]内で見分けやすいように[trans_]という文字列を加えておくといいでしょう。
名前の入力を終えると、ターゲットボーンの選択画面となります。ワークスペース上で親に相当するターゲットボーン(今回は[armInner_hand]ボーン)を選択すると【上図内A】、[コンストレイント]の中に新規で[トランスフォーム・コンストレイント]が作成され、そのオプションが表示されます【上図内B】。
[トランスフォーム・コンストレイント]のオプションは、とても複雑でわかりづらいので、今回は概要だけ簡単に説明し、今後の連載で実例を使って詳しく解説していきます【上図】。 今回は[一致]ボタンを押せば、それ以外はデフォルトのままで大丈夫です。[一致]ボタンを押すと、現在の制御ボーンの位置が[オフセット]に記録され、その位置からアニメーションを開始できます。[オフセット]は、制御ボーンのアニメーションを、どれだけずれた位置から開始するかを設定できます。
なお[ローカル]のチェックボックスを選択すると、制御ボーンはターゲットボーンのローカル座標の情報を受け取ります。チェックボックスを選択しなければ、ワールド座標の情報を受け取ります。デフォルトは選択なしの状態で、このまま使用する場合が多いです。今回も選択なし、すなわちワールド座標の情報を受け取ります。[相対的]のチェックボックスを選択すると、ターゲットボーンの[親]座標、つまりペアレントボーンの座標との差が、[トランスフォーム・コンストレイント]を設定した制御ボーンに追加されます。あまり使うことはありませんが、このチェックボックスを選択すると、[トランスフォーム・コンストレイント]を設定しても、制御ボーンが固定されずに動かせるというメリットがあります。[ミックス]は、制御ボーンがターゲットボーンの移動や変形の情報を何%受け取るかを設定できます。
[トランスフォーム・コンストレイント]の設定が終わったら、[アニメ化モード]に移り、[ミックス]の値を調整してみましょう。値を変えると、制御ボーン(今回は[armInner_upper]ボーン )が移動する様子が確認できます【上図内A】。【上図の上】は[ミックス]の値が0の場合、【上図の下】は値が50の場合です。[設定モード]に戻り、[ミックス]に好みの値を反映させておけば、ターゲットボーンの動きに追随して、自動的に制御ボーンも動きます。 また、[ミックス]の値にアニメーションキーを打つことも可能です。
最後に、複数の関節をもつ左上肢にも[トランスフォーム・コンストレイント]を設定します。左上肢は上腕、前腕、手からなる3つのパーツに分かれているので、それぞれ1つ下のボーンをターゲットにします。上腕の[armOuter_upper]ボーンは、前腕の[armOuter_lower]ボーンをターゲットにして[トランスフォーム・コンストレイント]を設定し、[ミックス]の値を50にします。前腕の[armOuter_lower]ボーンは、手の[armOuter_hand]ボーンをターゲットにして[トランスフォーム・コンストレイント]を設定し、[ミックス]の値を60にします。このように設定しておくと、常に等間隔を維持しながら各パーツが動くようになります。【上図】のように、複数のパーツからなる上肢を伸ばす方法はいくつかありますが、これが一番オーソドックスなやり方です。
【上図】では右上肢の前腕にメッシュ機能による変形を適用し、腕を振り回して叩きつけるモーションを作成しています。
今回は[パス・コンストレイント]と[トランスフォーム・コンストレイント]の基本的な使い方を説明しました。どちらも複雑な機能なのでとっつきにくいですが、使いこなせれば、Spineで実現できない表現はほとんどなくなるくらい便利です。第4回では、3種類のコンストレイント機能を組み合わせて複雑なリグを設定したキャラクターの制作事例を紹介します。
第4回の公開は、2019年11月を予定しております。
プロフィール
-
柴田章成
HERMIT WORKS所属のデザイナー・アニメーター・テクニカルディレクター。3度の飯よりリグが好き。
Twitter:@AkinariShibata
-
HERMIT WORKS
主にアートディレクターで構成されたデザイナー集団。ハイクオリティなデータ制作でゲーム開発をサポートしています。本記事やSpine、そのほかのツールに関するお問い合わせは、下記メールアドレスまでお送りください。
shibata.hermitworks@gmail.com
hermitworks.jp