On this page |
|
ソースキャラクタとターゲットキャラクタ間の初期段階のアニメーションリターゲットのセットアップが完了したら、様々なテクニックを使用してそのリターゲットの結果を仕上げることができます。
例その1: 傾斜した肩の修正 ¶
この例では、FBIKソルバの計算時にclavicles(鎖骨)ジョイントがまったく拘束されていないのが原因で、キャラクタの肩が著しく傾斜しています。
この問題を解決するために、FBIKソルバの計算時にclavicles(鎖骨)ジョイントに拘束を追加する簡単な方法が2つあります:
-
clavicles(鎖骨)ジョイントをマッピングする(以下参照)。
テクニック1: clavicles(鎖骨)ジョイントをマッピングする ¶
-
リターゲットネットワーク内の Map Points SOPを選択します。
-
Map Points SOPノードを選択して、マウスカーソルをビューポート内に移動させてからEnterを押します。
これでMap Points操作 状態 になります。
-
ソーススケルトン上のどれかの鎖骨ジョイントを⇧ Shiftクリックしてから、ターゲットスケルトン上のそれに呼応する鎖骨ジョイントを⇧ Shiftクリックします。
ここでは、左側の鎖骨と右側の鎖骨の両方に対してジョイントペアを作成します。
-
リターゲットネットワーク内の Joint Deform SOPノードを選択してからキャラクタのアニメーションを再生すると、FBIKソルバにその鎖骨ジョイントマッピングを追加した結果を確認することができます。
テクニック2: ターゲットのclavicles(鎖骨)ジョイントの挙動を設定する ¶
-
Configure Joints SOPノードを配置します。
この Configure Joints SOP は、ターゲットスケルトンの鎖骨ジョイントに制限を加えることができます。
-
以下の操作を行ないます:
-
Map Points SOPノードのターゲットスケルトン出力(1番目の出力)を Configure Joints SOP ノードのターゲットスケルトン入力(1番目の入力)に接続します。
-
Configure Joints SOP ノードのターゲットスケルトン出力(1番目の出力)を Full Body IK SOPノードのターゲットスケルトン入力(1番目の入力)に接続します。
-
-
Configure Joints SOP ノードを選択して、パラメータエディタでそのノードのパラメータを表示します。
-
Configurations マルチパラメータを使用して、新しいジョイント設定グループを作成します。
-
Group パラメータの矢印選択アイコンをクリックして、ビューポート内でキャラクタの左右の鎖骨ジョイントを⇧ ShiftクリックしてからEnterを押します。
それらの鎖骨ジョイントが Group フィールドに追加されます。
-
Configure Joints SOP ノードが選択されている状態のまま、 Joint Deform SOPノードのディスプレイフラグを有効にします。
これで Configure Joints SOP を調整する際にキャラクタスケルトンの変形を表示できるようになりました。
-
Configure Joints SOP ノードのパラメータエディタに戻り、キャラクタの肩のロールがあなたの求めているルックになるまで Rotation Weights 値を調整します。
これによって、ターゲットスケルトンの鎖骨ジョイントに 回転制限 が加わったので、ターゲットの鎖骨ジョイントが元々のRest Pose回転の維持を試みるようになります。
-
リターゲットネットワークの Joint Deform SOPノードを選択してから、キャラクタのアニメーションを再生すると、FBIKソルバに鎖骨ジョイントの回転制限が加わっていることが確認できます。
例その2: リーチアニメーション(到達アニメーション)でキャラクタの足が地面から浮かないようにする ¶
この例では、ターゲットスケルトンがそれよりもっと大きいソーススケルトンだと到達できる距離に到達できないことが原因でキャラクタの足が地面から浮いてしまっていますが、そのキャラクタの足を地面にしっかりと着地するようにさせたいです。
この問題を解決するには、 Full Body IK Configure Targets SOPノードを使用して、ターゲットの足への影響力を強くして、移動オフセットをなくすことです。
テクニック: ターゲットの足への影響力を強くして、移動オフセットをなくす ¶
-
Full Body IK Configure Targets SOP ノードを配置します。
Full Body IK Configure Targets SOP は、ターゲットの足への影響力を強くして、その足の移動オフセットをなくすことができます。
Note
すべてのFBIKターゲット設定パラメータと Compute Offsets パラメータは2つの異なるノードの場所にあります:
-
それらのパラメータが Full Body IK SOP ノードに埋め込まれています。
-
その Full Body IK SOP ノードから分離したパーツの Full Body IK Configure Targets SOP ノードにあります。 このようにパラメータを重複させているのは、単純に整理しやすくするためです。 この例では、 Full Body IK Configure Targets SOP ノードを使用してリターゲットネットワークでの組み込み方を見ていきます。
Warning
Full Body IK Configure Targets SOP ノードと Full Body IK SOP ノードの 両方 にターゲットの Configurations マルチパラメータが存在した場合、その設定がお互いに上書きされてしまう危険性があります。 例えば、両方のノード上で 足ジョイント のターゲットグループを設定すると、 Full Body IK SOP ノードの設定が Full Body IK Configure Targets SOP の設定を上書きします。
-
-
以下の操作を行ないます:
-
Map Points SOPノードの両方の出力を Full Body IK Configure Targets SOP ノードの両方の入力に接続します。
-
Full Body IK Configure Targets SOP ノードの両方の出力を Full Body IK SOPノードの両方の入力に接続します。
-
-
Full Body IK Configure Targets SOP ノードを選択して、そのパラメータエディタで Offsets セクションを展開してから、 Compute Offsets を 有効 にします。
この Compute Offsets パラメータは、このFBIKノード上でソーススケルトンとターゲットスケルトン間のオフセットを計算することを決めます。
-
Full Body IK SOP ノードを選択して、そのパラメータエディタで Offsets > Compute Offsets を 無効 にします。
これで、すべてのオフセットが Full Body IK Configure Targets SOP ノードで計算されるようになりました。
両方のノードで Compute Offsets を 有効 にする必要は ありません 。ネットワークではオフセット計算を1回実行するだけでよいです。
-
再度 Full Body IK Configure Targets SOP ノードを選択して、そのパラメータエディタで、 Configurations マルチパラメータを使用して、新しいターゲット設定グループを作成します。
この Configurations マルチパラメータエントリーは、特定のグループのターゲットジョイントのウェイトとオフセットの挙動を定義します。
-
Group パラメータの矢印選択アイコンをクリックして、ビューポート内でキャラクタの左右の足ジョイントを⇧ ShiftクリックしてからEnterを押します。
それらの足ジョイントの名前が Group パラメータフィールドに入ります。
-
Weight の値を上げます。
これは、ターゲットの足ジョイントに対する影響力を強くし、キャラクタの到達アニメーション中に足が地面に着地するように維持します。
例えば、私どものキャラクタだと Weight を 3.8 まで上げました。 これによって、ターゲットスケルトンはキャラクタを地面に引き戻すのに十分な影響力を得ることができます。
-
Blend Offset Translates パラメータの値を下げます。
例えば、私どものキャラクタだと、 Blend Offset Translates を 0 まで下げました。 Rig Match Pose SOP ノードでキャラクタのソーススケルトンとターゲットスケルトンの足を見ると、それらの足の位置が大きく違っていることに気づくと思います。 Blend Offset Translates を 0 にすることで、その違いが無視され、ターゲットの足がソーススケルトンの足の位置に合うようになります。
-
アニメーションを再生すると、ターゲットのウェイトと移動ブレンドを調整した結果が確認できます。
例その3: 指の細かい動きを転送する ¶
FBIKは全体的なキネマティクスソルバなので、キャラクタの指ジョイントをFBIKリターゲットポイントマッピングに追加すると、指のアニメーションの効果がキャラクタの手だけでなく、キャラクタの他のボディにも影響を与えてしまいます。
この問題を解決するには、 FK Transfer SOPノードを使用して、ソースの指のアニメーションをローカル空間でターゲットに転送することです。
テクニック: FK Transfer SOPを使用してキャラクタの指アニメーションをリターゲットし、それらの指の曲がり方を修正する ¶
-
Map Points SOPノードを配置します。
この Map Points SOP ノードは、ソースとターゲットのジョイントペアの参照を作成し、それらの関連性をマッピングアトリビュートとして保存します。
-
以下の操作を行ないます:
-
FBIK Map Points SOP ノードの両方の出力を配置したばかりのその新しいFK Map Points SOP ノードの両方の入力に接続します。
-
そのFK Map Points SOP ノードの両方の出力を Full Body IK SOPノードの両方の入力に接続します。
-
-
FK Map Points SOP ノードを選択して、そのパラメータエディタの Mapping Attribute Name フィールドに
mapping_fk
とタイプします。これによって、このノードのポイントマッピングが(既に
mapping
アトリビュートを使用している)FBIKソルバ用ではなくて、 FK Transfer 用として指定されます。 -
マウスカーソルをビューポート内に移動させてからEnterを押します。
これでMap Points操作 状態 になります。
-
ソーススケルトンのどれかの手ジョイントを⇧ Shiftクリックしてから、ターケットスケルトンのそれに呼応する手ジョイントを⇧ Shiftクリックします。
ここでは、左手ジョイントと右手ジョイントの両方に対してジョイントペアを作成します。
このような左右の選択を 指先 毎に繰り返します。
すると、あなたが作成したすべてのポイントマッピングが Map Points SOP パラメータにリストされます。
-
パラメータエディタ で、 Auto Map Inline Points パラメータを 有効 にします。
手ジョイントと指先ジョイント間のすべての指ジョイントが自動的にマッピングされ、ビューポート内には、それらのポイントペアマッピングが 黒の破線 で示されます。
-
FK Transfer SOP ノードを配置します。
FK Transfer SOP ノードは、特定のジョイントまたはジョイントグループに対して、ソースアニメーションとRest Pose間のローカル空間の差分をコピーすることができます。
-
以下の操作を行ないます:
-
Full Body IK SOP ノードの両方の出力を FK Transfer SOP ノードの両方の入力に接続します。
-
FK Transfer SOP ノードのターゲットスケルトン出力(1番目の出力)を Joint Deform SOPノードの変形ポイントトランスフォーム入力(3番目の入力)に接続します。
-
-
FK Transfer SOP ノードを選択して、そのパラメータエディタで以下の操作を行ないます:
-
Group パラメータの矢印選択アイコンをクリックして、ビューポート内で手ジョイントとすべての指ジョイントを⇧ Shiftクリックしてから、Enterを押します。
手ジョイントと指ジョイントすべてが Group フィールドに追加されます。
-
Mapping Attribute Name フィールドに
mapping_fk
とタイプします。これで、この FK Transfer SOP ノードは、新しく作成したFK Map Points SOP のポイントマッピングを使用するようになります。
-
Snap Orientation to Nearest Axes を 有効 にします。
これによって、 FK Transfer SOP は、転送を実行する前に指ジョイント間の向きのオフセット角度を計算する時にそのトランスフォームに初期スナップを実行するようになります。 その結果、手の指を曲げる動きが改善されるはずです。
Note
Snap Orientation to Nearest Axes の効果は、ソースとターゲットの入力が どれだけ上手く マッチングされているか次第です。
-
-
Rig Pose SOPノードを配置します。
指がアニメーションで少し反り返っているので、 Rig Pose SOP ノードを使用していくつかFKキーを追加して、この指の曲がり過ぎた動きを修正する必要があります。
-
以下の操作を行ないます:
-
Full Body IK SOP ノードのソーススケルトン出力(2番目の出力)を Rig Pose SOP ノードの入力に接続します。
-
Rig Pose SOP ノードの出力を Joint Deform SOPノードのアニメーションポーズ入力(3番目の入力)に接続します。
-
-
Rig Pose SOP ノードを選択して、マウスカーソルをビューポート内に移動させてからEnterを押します。
これでRig Pose操作 状態 になります。
-
指先ジョイントを選択して、指が最も上側に曲がる時点までアニメーションをスクラブして、その指の動きに関与している指ジョイントを下側に回転させてから、その新しい位置でキーを打ちます。
これによって、指の曲がり過ぎた動きが軽減されるはずです。
-
キャラクタのアニメーションを再生すると、指の動きとその指の曲げが改善されているのを確認できます。
例その4: 動く台の上でキャラクタがバランスを保っているように見せる ¶
この例では、キャラクタが動く台の上に立ちつつ自身でバランスを保っているように見せるために、キャラクタに質量とバランス感覚があるかのような挙動をさせたいです。
このような挙動を作成するには、Physical FBIKソルバタイプの Center of Mass パラメータを使用します。
テクニック: 重心を使ってキャラクタがバランスを保って動きに反応できるようにする ¶
-
以下の操作を行ないます:
-
Configure Joints SOPノードを配置します。このノードでは重心の機能をセットアップすることができます。
-
Rig Pose SOPノードを配置します。 このノードでは、キャラクタのジョイントにポーズを付けると同時に重心のセットアップをすることができるので、セットアップ段階でキャラクタの動きの効果を確認することができます。
-
KineFXキャラクタインポートノードのアニメーションポーズ出力(3番目の出力)を Rig Pose SOP ノードの入力に接続します。
-
Rig Pose SOP ノードの出力を Configure Joints SOP ノードの入力に接続します。
-
-
Configure Joints SOP を選択して、そのパラメータエディタで、 Center Of Mass セクションを展開します。
-
Center Of Mass セクションの Auto-Compute Joint Local Centers of Mass パラメータと Add Point at Center of Mass パラメータを有効にします。
これは、重心を表現した新しいポイントをスケルトンに追加します。
-
重心用のポイントドライバを作成するために Delete Joints SOP ノードを配置します。
-
Configure Joints SOP ノードの出力を Delete Joints SOP ノードの入力に接続します。
-
以下の操作を行ないます:
-
Delete Joints SOP を選択します。
-
Delete Joints SOP のパラメータエディタで、 Group パラメータの矢印選択アイコンをクリックします。
-
ビューポート内で、重心ポイントと左右の足ジョイントを⇧ Shiftクリックしてから、Enterを押します。
重心ポイントと左右の足ジョイントの名前が Group フィールドに入ります。
-
-
Operation ドロップダウンメニューから Delete Non-Selected を選択します。
これで、あなたが作成したポイントドライバをビューポートに表示することができました。 これらのポイントは、重心の動きを駆動させるのに役立ちます。
-
Full Body IK SOP ノードを配置します。
-
以下の操作を行ないます:
-
Configure Joints SOP ノードの出力を Full Body IK SOP ノードのターゲットスケルトン入力(1番目の入力)に接続します。
-
Delete Points SOP ノードの出力を Full Body IK SOP ノードのソーススケルトン入力(2番目の入力)に接続します。
-
Delete Points SOP ノードと Full Body IK SOP ノードの間に台を動かすTransformノードを接続します。
-
Full Body IK SOP のターゲットスケルトン出力(1番目の出力)を Joint Deform SOP ノードのアニメーションポーズ入力(3番目の入力)に接続します。
-
-
Full Body IK SOP ノードを選択して、そのパラメータエディタで以下の操作を行ないます:
-
Add Center of Mass Target を 有効 にします。
-
Map Using ドロップダウンリストから Match By Attribute を選択します。
-
-
Configurations マルチパラメータを追加して以下の操作を行ないます:
-
Group パラメータの矢印選択アイコンをクリックします。
-
ビューポート内で、左右の足ジョイントを⇧ Shiftクリックしてから、Enterを押します。
左右の足ジョイントの名前が Group フィールドに入ります。
-
-
Configurations マルチパラメータの Priority を 1 に上げます。
このソルバは、まず最初に足ジョイントのトランスフォームを達成させた後に、残りのボディのジョイントトランスフォームを見始めるようになります。
これは、足ジョイントを安定させ、それらのジョイントを台の上に着地させた状態に維持するのに役立ちます。
台が動いても、キャラクタはバランスを保とうと努力しているのが分かります。
しかし、少しジッタリングしているようにも見えるかもしれません。 これは、異なるPriorityを扱う時や重心ターゲットを扱う時によくあることです。
-
このジッタリングを解消するために、Physical FBIKソルバではIterationsの回数が多い方が望ましいことから、 Iterations を 150 まで上げます。
これによって、キャラクタがバランスを保つ動きが非常に納得のいく見た目になり始めます。
しかし、腕と足が少し硬いように見えます。 これを解消するには、肩ジョイントと膝ジョイントに少し柔らさかを追加します。
-
Configure Joints SOP ノードで、左右の肩ジョイント用と左右の膝ジョイント用に Configurations マルチパラメータを作成します。
-
肩ジョイント用に、1つ目の Configurations マルチパラメータの Group パラメータの矢印選択アイコンをクリックします。 そして、ビューポート内で左右の肩ジョイントを⇧ Shiftクリックしてから、Enterを押します。
-
膝ジョイント用に、2つ目の Configurations マルチパラメータの Group パラメータの矢印選択アイコンをクリックします。 そして、ビューポート内で左右の膝ジョイントを⇧ Shiftクリックしてから、Enterを押します。
肩ジョイントと膝ジョイントの名前がそれぞれの Group フィールドに入ります。
-
-
肩と膝の両方の Configurations マルチパラメータの Rotation Weights 値を上げます。
これは、 Full Body IK SOP ノードが解を導こうとする時に、肩と膝のジョイントがスケルトン内の他のジョイントよりも優先して少し大きく回転するようにします。
これによって、彼がバランスを保っている挙動にリアルさが増しました。
See also |