次は、Electraがボールを拾って投げる簡単なアニメーションを作りたいと思います。
いよいよ楽しい部分に入ってきました!
ここではTransient Constraint(一時的なコンストレイン)とモーションパスを使用します。
Houdiniのアニメーション作成時は、2種類のコンストレインを作成することができ、それが一時的コンストレインと一般的なコンストレインです。
Transient Constraint(一時的なコンストレイン)
Transient Constraint(一時的なコンストレイン)は、アニメーションシーン内で動的に更新することができます。
一般的なコンストレイン
通常コンストレインは、アニメーションシーン全体を通じてコントロールを拘束する場合に使用されます。
ここではこのTransient Constraintを使用して、ボールが手に一時的に拘束され、その後、ボールの軌道アニメーションをモーションパスと表示します。
SideFXのAnimationWorkshopよりシーンファイルをダウンロードしていない方はダウンロードしてください。
シーンを開き、Part2 Animation ToolsのThrowにあるtry_me1にDisplay フラグを設定します。
Electraを選択すると、5フレームごとに設定されたアニメーションが確認でき、必要な部分にはもう少しキーが追加されていますが、ざっくりとしたアニメーションです。
Selection Setsを確認します。
右手とボールだけのをR_handBall Selection Setsが作成されています。
これにより、少ない要素で簡単にアニメーションできるようにしています。
R_handBall Selection Setsを選択します。
Global Transformを使用するためにControl+Shiftを使って、手と一緒にボールを動かすようにします。
まずは手首を中心に移動したいのでR_handBall Selection Setsで必要なコントローラーを選択し、最後にShiftキーを押しながら、手首のコントローラーを選択します。
これで、手首を中心に操作できます。
Ctrl+Shiftを押しながら、手首を少し持ち上げます。
Global Transformを使用しているので全て手首を中心に移動します。
任意のピボットを選択できるので、次は手ではなくボールをピボットとして使用し、コンストレインなしで回転します。
ただし、今回、ボールのアセットが後から追加されたとします。
ボールを手に持たせたいので、Control+Gでアニメーション設定を開き、
『Transient Constraints(トランジエント・コンストレイン)』を使用します。
この機能を使うと、コンストレインを細かく管理する必要なく、ボールを手に固定して適切な位置に配置することができます。このシーンでは手のキーをボールに設定し、同じ位置に配置されていますが、まだボールは動いていません。
コンストレインの使用方法は2つ存在し、デフォルトでは、コンストレインを追加するときにコンストレインフレーム範囲内のすべてのフレームにキーを追加するモードが『Dense』モードです。
しかし、この段階ではまだアニメーションのラフ段階なので、すべてのフレームにキーを設定したくありません。そこで『Update』を使用します。
これにより、ボールに既に設定されているキーを新しい位置に更新するだけで済みます。
では、Transient Constraintsの使い方を見ていきましょう。
例えば、フレーム25で彼女がボールを拾い、フレーム60で投げて手を離すとします。
まず動かされる側であるボールを選択し、次に動かす側である手を選択します。
その後、Shiftを押しながらドラッグで、コンストレインさせたいフレーム範囲を設定します。
接触させたいフレームに移動し、そこから範囲を設定するのがポイントです。
その後、Aキーを押すと、視覚的なガイドが表示され、正しい順序で設定されたかを確認できます。
Transidnt Constraints(一時的なコンストレイン)が作成されると、被駆動オブジェクト(ボール)を自由に移動でき、その変更はTransidnt Constraintsがアクティブなフレーム範囲全体に自動的に適用されます。Transidnt Constraintsがアクティブなフレーム範囲内にいることを確認してください。範囲外だと変更がフレーム範囲全体に適用されません。
ご覧のとおり、手からボールに向かって設定されているため、手がボールを駆動することになります。このビジュアルガイドを一旦オフにしますが、
わかりやすくするために再度オンにしておきます。
コンストレインがない場合は表示されず
コンストレインが有効になると表示されます。
さらに、ボールが動く範囲を示すブックマークも作成されています。そして、コンストレインが解除されるとガイドが消えるのも確認できます。つまり、コンストレインがかかっている間はガイドが表示され、解除されるとガイドがなくなる仕組みです。
確認できたので、ビジュアルガイドをオフにします。
すべての選択を解除して確認すると、ボールが動き、コンストレインが適用されています。しかし、設定範囲外に手を移動すると、コンストレインがかかっていないことが確認できます。
このビジュアルガイドは、コンストレインが適用されている範囲を確認するのに便利です。設定が完了したので、もうコンストレインを管理する必要はありません。ビジュアルガイドをオフにしても、キーが正しい位置に移動しているので、そのままアニメーションが進行します。ラフ段階では、少ないキーでざっくりと動きを設定していますが、十分機能しています。
手と一緒に動かずにずれてしまう範囲が見られる場合、通常であれば「Dense」モードを使って動きをしっかり固定する(全てキーフレーム化する)ことができます。しかし、現在はブロッキングの段階なので、そこまでの調整は行いません。
どうしても調整が必要な場合は、修正が必要なフレームで場所を移動し、『Auto update Follow Range』をオフにして
ボールの位置を修正します。
2つのオブジェクトを選択し、
kキーを使用してそこにキーを設定します。これでボールの位置が更新されるポイントが作成されました。
25フレーム(Transient Constraintsの始まりのフレーム)に戻り、
『Auto Update Follow Ranges』がオンになっていることを確認し、
Aキーを押して更新します。
そのフレーム(更新したフレーム)に移動したら、手がボールを貫通することなく、しっかりと固定されているのが確認できます。
このように、素早くボールにキーを設定できました。
キーはすべてボールに設定されているため、コンストレインに伴うオフセットなどを気にする必要がありません。単にキーを正しい位置に配置しているだけです。
ここから投げる動きを作成したいと思います。
フレームを進め、ボールを下に投げたように移動します。
その位置でkキーをつかって、ボールにキーを設定します。
必要であれば、間にもう一つキーを設定することもできます。
動きを確認したい場合は、Motion Pathを表示します。
オブジェクトを選択した状態で『Bind』を選ぶと、モーションパスが表示されます。
また、モーションパスの前後のフレーム数を制限するなど、いくつかのオプションも利用できます。
また、パスの幅やサイズを調整することも可能です。
今後のHoudiniリリースでは、さらに多くのオプションや機能が追加される予定です。この機能を使えば、アークやスペーシングを視覚的に確認でき、とても便利です。
この状態で調整を行いたい場合、その場で変更が可能です。
たとえば、このキーを選択し、移動します。
スペーシングの変化がリアルタイムで確認できます。
これで素早く確認ができるようになります。
必要に応じて、『Unbind』を選び、解除できます。また、手の動きを確認したい場合は、手を選択してバインドし、手のアークの動きを確認することも可能です。
次のパートでは、手動でキーを設定してスペーシングを調整する代わりに、ツールの一つである『Dynamic Motion』を使う方法を見ていきたいと思います。
『Dynamic Motion』を使用することで、微妙な調整が必要なアニメーション作業を省略し、時間を節約できます。スペーシングを整え、手動で設定するよりも短時間でよりスムーズな動きを実現できます。次はその機能について詳しく見ていきましょう。
Houdiniでアニメーションを作ろう パート9:Dynamic Motion