XSIのキャラクターセットアップ3・コントローラーの作成
0.キャラクター制作の心得  1.チェインの作成   2.エンベロープ   3.コントローラーの作成


IK(インバースキネマティクス)とFK(フォワードキネマティクス)による動きの違い
チェインを動かす方法にはIK(インバースキネマティクス)とFK(フォワードキネマティクス)があります。IKとFKはブレンドすることもできますが、操作を簡略化するためにはどちらか一方を使う方がよいでしょう。
  IK FK
特徴 末端から操作する方法です。エフェクタ(末端)の位置を動かすことにより、各ボーンのローテーション値が決まります。アニメーションを付けるときは、エフェクタにトランスレーションのキーを打ちます。 根元から操作する方法です。エフェクタを使用せず、ボーンを直に回転させることにより動かします。アニメーションを付けるときは、ボーンにローテーションのキーを打ちます。
利点 複数のボーンがあってもエフェクタ一つで制御できます。 各ボーンを回転させるため、ボーン1本1本の動きを細かく調整できます。複数ボーンをさまざまな方向に回転させることもできます。
欠点 複数のボーンがある場合は、それら一つ一つが思うとおりの回転をするとは限りません。振り子のような動きをさせたい場合にはFカーブで調整する必要があります。 複数ボーンがある場合には、それら全てにキーを打つ必要があります。
↑エフェクタにトランスレーションのキーを打った場合 ↑各ボーンにローテーションのキーを打った場合

FKに向いているものは?
チェインをエフェクタで制御する場合は、1本目のボーンは全ての方向に回転しますが、2本目以降のボーンは決まった1方向にしか回転することが出来ません。FKを使用すると、2本目以降のボーンも任意の方向に回転させることができます。ひらひらする着物の袖やいろいろな方向に動く動物の尻尾などには、IKよりもFKが向いています。

また、3本以上のボーンを持つチェインは、チェイン描画時の角度によって各ボーンの曲がり具合が違ってくるので、エフェクタで制御するよりもFKで制御するほうがいい場合があります。5本指全てにボーンが入っている場合などは、ローテーションリミットを設定したコントロールオブジェクトを仕込んで一括操作するとよいでしょう。
↑指のコントローラーを作成
センターは根元に移動しておく
↑3本のボーンに
リンクアニメーション設定
↑コントローラーを回転させると
各ボーンも回転する

コントローラーを作成してFKを一括制御
FKでは、全てのボーンにキーフレームを打つ必要がありますが、コントロールオブジェクトを作成し、コントロールオブジェクトとボーンをリンクアニメーションやエクスプレッションで関連付けることで、複数ボーンを一括で動かすことが出来ます。この方法は曲がり方が決まっている場合に有効です。(全てのFKに向いている訳ではありません。)各ボーンにキーフレームを打つ必要はなくなり、代わりにコントロールオブジェクトにローテーションのキーフレームを打つようになります。また、コントロールオブジェクトの代わりに1本のボーンを持つチェインを使用すると、コントロール用チェインのエフェクタで制御することもできます。


背骨コントローラーの作成・1 コントローラーオブジェクトを作成
背骨(胸のチェイン)にコントローラー用のオブジェクトを作成します。

Get > Primitive > CurveCircleを取り出し、右図の位置に配置します。さらに、どこが前かわかるように、前方のポイントを変形します。配置時に回転させているので、ローテーションをFreezeし、Rotの値が0.0.0になるようにします。

オブジェクトに名前を付けます。このコントロールオブジェクトは、COGの子供として親子付けします。

デフォルトポーズを格納してある場合は、親子付け後にもう一度ポーズを格納しなおしておきましょう。

背骨コントローラーの作成・2 Local Transformのプロパティエディタを出す
コントロールオブジェクトとチェインの第1・第2ボーンのLocal Transformプロパティエディタを出します。

コントロールオブジェクトを選択し、Ctrl + Kを押してLocal Transformプロパティエディタを開きます。プロパティエディタは切り替わらないように、ロックします。

同様に、第1ボーンと第2ボーンもLocal Transformプロパティエディタを開いてロックします。

Local Transformプロパティエディタはエクスプローラからも開くことができます。)

背骨コントローラーの作成・3 軸を確認する
ローテーションモードにしてコントロールオブジェクトのローカル軸とボーンのローカル軸を比べてみると、軸の向きが違うことがわかります。リンクアニメーションでコントロールオブジェクトの何軸がボーンの何軸にあたるのかを確認します。

コントロールオブジェクトをX軸方向に回転させると、前後に傾きます。各ボーンを同じ向きに回転させるのはZ軸になります。

コントロールオブジェクトをY軸方向に回転させると、向きが変わります(ひねり)。各ボーンを同じ向きに回転させるのはX軸になります。

コントロールオブジェクトをZ軸方向に回転させると、左右に傾きます。各ボーンを同じ向きに回転させるのはY軸になります。

背骨コントローラーの作成・4 リンクアニメーションの作成
コントロールオブジェクトと各ボーンにリンクアニメーションを設定します。試しに回転させた場合は、デフォルトの状態に戻しておきます。リンクアニメーションを設定すると、アニメーションアイコンがリンクアニメのアイコンになります。たまに、リンクアニメーションを設定してもプロパティエディタの方に表示されないことがありますが、プロパティエディタを閉じてもう一度開きなおすときちんと表示されます。それでも表示されない場合はリンクアニメーションが作成されていないので、もう一度付け直します。

コントロールオブジェクトをZ軸で30度傾けたときに、同じ向きに、第1ボーンが10度、第2ボーンが20度回転するようにします。(数値は参考)

第1ボーンのY軸のアニメーションアイコンを右ボタンで押し、メニューからLink Withを選択します。開いたエクスプローラで、どの軸とリンクさせるのか選択します。コントロールオブジェクトを開き、Kinematics > Local Transform > Ori.Euler.Zをクリックします。クリックするとエクスプローラは自動的に閉じます。これで、第1ボーンのY軸がコントロールオブジェクトのZ軸にリンクされました。また、コントロールオブジェクトがZ=0のときの第1ボーンのY軸の数値がキーフレームとして登録されました。

同じように、第2ボーンにもリンクアニメーションを作成します。第2ボーンのY軸のアニメーションアイコンを右ボタンで押し、メニューからLink Withを選択します。エクスプローラでコントロールオブジェクトを開き、Kinematics > Local Transform > Ori.Euler.Zをクリックします。これで第2ボーンもリンクアニメが作成され、最初のキーフレームが作成されます。

背骨コントローラーの作成・5 相対値を登録する
相対値を登録していきます。まず、コントロールオブジェクトをプラス方向に最大値(30度)回転させたときの各ボーンの回転値を登録します。

コントロールオブジェクトをZ軸に30度回転させます。また、第1ボーンのY軸に10度、第2ボーンのY軸に20度を入力します。第1ボーンのアニメーションアイコンを右ボタンで押し、メニューからSet Relative Valuesを選択します。同じように、第2ボーンもアニメーションアイコンを右ボタンで押し、Set Relative Valuesを選択します。

次に、コントロールオブジェクトをマイナス方向に最大値(30度)回転させたときの各ボーンの回転値を登録します。

コントロールオブジェクトをZ軸に-30度回転させます。また、第1ボーンのY軸に-10度、第2ボーンのY軸に-20度を入力します。第1ボーンのアニメーションアイコンを右ボタンで押し、メニューからSet Relative Valuesを選択します。同じように、第2ボーンもアニメーションアイコンを右ボタンで押し、Set Relative Valuesを選択します。

これで、基準値・プラス方向の最大値・マイナス方向の最大値の3つのキーフレームが作成されました。

背骨コントローラーの作成・6 Fカーブの修正
リンクアニメーションのFカーブや相対値は、アニメーションエディタで修正することができます。リンクアニメーションのアイコンを右ボタンで押し、メニューからAnimation Editorを選択します。

XSIではデフォルトで、アニメーションを作成するとスプラインのFカーブが作成されます。背骨コントローラーの場合は変化量を一定にしたいので、Fカーブをリニアカーブに直します。

相対値を修正する場合は、キーフレームを編集します。

背骨コントローラーの作成・7 ローテーションリミットを設定する
コントロールオブジェクトを左右に傾けると胸の2本の骨が傾くようになりましたが、コントロールオブジェクトはどこまでも回転するので、ローテーションリミットを設定し、−30度から30度までしか回転できないようにします。

コントロールオブジェクトのLocal Kinematicsプロパティエディタから、Rot.Limitタブを開きます。Z軸をアクティブにし、最小値と最大値を入力します。

背骨コントローラーの作成・8 他の軸にもリンクアニメーションを作成する
残りの2軸にも、上の4から7の手順でリンクアニメーションを設定します。ボーンを実際に動かしながら、どのボーンがどのくらい回転すればいいのかを考え数値を割り出しましょう。


0.キャラクター制作の心得  1.チェインの作成   2.エンベロープ   3.コントローラーの作成



copyright(c)2006 ToyokoKanetaka All Right Reserved