Houdiniでアニメーションを作ろう パート9:Dynamic Motion
SideFXのAnimation Workshopからダウンロードしたシーンを開き、Part3-Dynamic Motion > Jumpにあるtry_me4にDisplayフラグを設定します。
ここでは、Dynamic Motionを使用した別の例を見ていきます。
今回はフレームに合わせて動作を調整するのではなく、Dynamic Motionを使ってアニメーションを調整していきます。簡単な設定で、5フレームごとにテーブルから地面に向かって跳び降りるアニメーションを作成しており、非常にシンプルな動きです。
オリジナルのアニメーションはそのまま残しておきたいと思うので、try_me4を選択してAltキーを押しながらドラッグして複製します。
この複製したものを使用してアニメーションを修正していきます。
Cキーを押してDynamic Motionに移動すると、オプションが表示されます。
既に行われた設定があるので、Reset Dynamic MotionでDynamic Motionをリセットします。
Selection SetsをElectra_blockを選択できるように展開します。
現状、Selection Setsがビューポートで非表示になっているので、Ctrl+Shiftキーを押しながらクリックします。
コントローラーが表示されたので、COGを選択します。
複数のコントロールを選択することも可能ですが、COGを選択することで、ほぼ目的の動きが得られるので、このままアニメーションを続けていきます。
Select center of mass centoisが表示されています。
ここでHキーを押して、新しいProjectile(斜方投射)運動を開始します。
HキーでProjectileを有効にしたら、Selection SetsでAll Controlsを展開し、dynamicmotionを表示します。
これでパスが表示されます。
ツールの指示はstart a new projectable motionとなっています。
フレーム25で再度Hキーを押します。
するとツールの指示がSelect Projectile end positionとなっています。
フレーム40で着地するタイミングでHキーをおします。
ここでは、目標地点に着地するように設定していますが、アニメーションを調整したい場合もあります。
例えば、元のブロックインアニメーションの後にテーブルが追加され、彼女をテーブルの上に着地させる必要があるとします。このような調整も、Dynamic Motionを使えば素早く行うことが可能です。
Gキーを押してDynamic Motionタブを開きます。
以前Jimmyがサッカーボールに当たるように設定した時はBasicを使用しましたが、今回は『Advanced』に進みます。
Electraのアニメーションをいくつか調整することが可能になります。
ここで新しいレイヤーを追加するか確認されるので、『Yes』を選択します。
Electraのリグを調整したいので、Base.rigを選択し、「Accept」をクリックして新しいレイヤーを追加します。
Selection Sets>All Controls>dynamicmotion>dynamicmotionを展開すると複数のハンドルが作成されています。
この各ハンドルを使用して、アニメーションを再設定することなく調整が可能になります。
例えば、Electraをテーブルの上に着地させたい場合はゴール位置を修正する必要があります。
motion0_targetハンドルを選択して上に移動させ、EElectraをテーブル上の任意の位置に配置できます。
再生すると、アニメーションが調整されていることが確認できます。
これで、テーブルからテーブルへ跳ぶアニメーションが設定されました。
例えば、テーブルの中央ではなく、テーブルの奥から跳ばせることができます。
しかし、その距離を短時間で跳ぼうとすると少し速く感じるため、跳ぶ高さを調整していきます。
ここでアニメーションの自動調整が始まります。元々はフレーム40で着地していましたが、跳ぶ高さを上げるとアニメーションもそれに合わせて変わり、フレーム43で着地するようになります。
これにより、跳ぶ時間が長くなったことが反映されています。
カーブを調整し、望む高さに設定することができます。さらに高くしたい場合も、素早くアニメーションが変更されます。この状態でControl + Gを押してベイキングを開き、ベイキングの設定に進むことができます。
ここでは、既にキーが設定されているため、同じ動きをそのまま反映したい場合は、さらにキーを追加してベイキングすることも可能です。しかし、まだブロッキング段階なので、現在のキーをそのまま使い、位置のみ更新します。
Bake Keys to New Layerを有効にして、Bake Keysをクリックします。
これで上部に新しいアニメーションレイヤーが追加されます。
Selection Setsでdynamicmotoinをオフにします。
CキーからAnimateに切り替えます。
アニメーションを再生すると、Electraが43フレームで着地するように調整されているのが確認できます。
新しく作成されたdynamicmotion_copyのレイヤーを無効にします。
これで、以前の着地位置が確認でき、実際にはこのレイヤー上では早いフレームで着地していたことがわかります。
このように、素早くアニメーション全体を調整できました。特に何か新しい設定をしたわけではなく、以前のキーを新しい位置に移動させただけです。ここで、キーの配置やタイミング(Tキー)を確認しながら、さらに調整を加えていくことができます。
Electra_blockを選択して新しいレイヤーを追加します。
先ほどオフにしたレイヤーをオンにしておきます。
ここからアニメーションを開始できます。例えば、26フレームでElectra_blockにキーを設定し、
着地する場所にキーを追加します。
これでフレーム間に自由に変更を加えることができます。
36フレームに移動して
足のコントローラーを使用しポーズを変更します。
Electra_blockを選択してキーを設定します。
下りるポーズにさらに調整を加えます。例えば、足をもう少し伸ばしたい場合は、ポールベクトルを選択して、足を外側に移動させることができます。
Control + Shiftを使用して足とポールベクトルを同時に操作し、Electra_blockを選択してキー設定行います。本来であればピンを設定しておいたほうがアニメーションで選択忘れを防ぐことができます。
再生してすべてのキーが設定されていることを確認しました。このようにアニメーションを発展させ、以前の状態から大きく変化させることができます。様々なアニメーションを追加することで、思い通りにクリエイティブな調整が可能になります。
この方法なら、テーブルにジャンプする動作を再アニメーションするよりもはるかに速く調整が可能です。これで、目標地点を設定するモーションタイプと、高さや距離を自由に調整してキャラクターの動きをコントロールするタイプの2種類のDynamic Motionの使い方が説明できました。