Broadcast、StudioMoGraphを動かすためのもう一つの方法。1物理法則を使ってオブジェクトを動かすダイナミクスは、簡単に言うと「オブジェクトを、物理法則に従って動かしたり変形させる(物理シミュレーション)機能」です。物理法則を使うことによって、キーを打たなくてもオブジェクトの複雑な動きや変形を表現できます。非常に多くのオブジェクトを含むシーンや、衣服のようにオブジェクトを複雑かつ自然に変形させるシーンは、もはやキーフレームアニメーションでは表現できません。ダイナミクスを使えば簡単に表現できます。4Dには他にもパーティクルやMoGraphという機能があります。パーティクルの場合は「場(モディファイア、フォース)」、MoGraphの場合は「イフェクタ」という機能を使ってオブジェクトの動きをコントロールします。ダイナミクスはパーティクルやMoGraphとも組み合わせられるので、ある意味では「モディファイア」や「イフェクタ」の機能を拡張するものだと考えてもいいでしょう。衣服のようなオブジェクトをリアルに変形させるには、ダイナミクスを使うしかありません。昔は、モーフやPLA、ボーンといった技術を組み合わせて表現することもありましたが、とても大変で、なかなかいい結果が得られませんでした。4Dに搭載されているダイナミクスが一つではない、ということです。「歴史的な理由」により、いろいろな機能の中にいろいろな形のダイナミクスが入っています。これらは異なった時代に異なったプログラマーによって作られたため、インターフェイスや使い方、働き等が異なっていて、かなり混乱しています。4Dのグレードによっては使えないダイナミクスもあります。いっても、この混乱はもうどうしようもない話なので、整理しながら、なるべく具体的に説明していきたいと思います。4Dに入っているダイナミクスの種類について説明します。このステップは重要なのですが、いきなり読んでもわからないと思います。適当に飛ばし読みして、後で何か困った時に読み返すようにして下さい。4Dの代表的なダイナミクス機能です。「ダイナミクス」は「Studio」グレードでしか使えません。ダイナミクスが扱えるオブジェクトは、「ポリゴン」、「スプライン」、「クローン」、「パーティクル」です。他のオブジェクトやタグを組み合わせることにより、「オブジェクト間のリンク」、「外力」、「XPresso」なども扱えます。MoDynamicsMoDynamicsは、Studioに入っているダイナミクスの機能限定版で、「Broadcast」グレードで使えます。MoDynamicsが扱えるオブジェクトは、「クローン」と「パーティクル」だけです。「オブジェクト間のリンク」や「外力」は扱えません。「XPresso」は制限なく扱えます。デフォーマ実は、デフォーマの中にも「ジグル」と「衝突」というダイナミクス機能が入っています。デフォーマが扱えるオブジェクトは、「ポリゴン」だけです。全てのグレードで簡単に使えます。ダイナミクスが必要になったらまずこの機能を試してみて下さい。ジグルは「場」と「変形」を、衝突は「衝突」と「変形」を扱うことができます。「XPresso」も扱えます。MoGraphイフェクタ実は、MoGraphイフェクタの中にも「ディレイ」というダイナミクス機能が入っています。ディレイは、「クローン」に対する「位置」、「スケール」、「角度」の簡単なダイナミクスしか計算できませんが、その分簡単に使えます。憶えておいて損はありません。MoGraphオブジェクト実は、MoGraphオブジェクトの中にも「MoSpline」というダイナミクス機能が入っています。MoSplineは、「スプライン」に対する「場」の働きしか計算できませんが、その分簡単に使えます。スプラインダイナミクスタグスプラインダイナミクスタグは、「ヘア」に含まれるスプライン専用のダイナミクス機能です。「ヘア」は「Studio」グレードでしか使えません。「ダイナミクス」の機能と比較すると、計算の精度や拘束等の細かい機能に関してはこちらの方が優れています。スプライン同士の衝突を計算できないとか、閉じたスプラインを計算できないという欠点があります。したがって、スプラインに関しては、ケースバイケースで二つのダイナミクス機能を使い分けるようにして下さい。623章で説明するような「クローンを使ってスプラインのダイナミクスを表現する方法」もあります。他のオブジェクトやタグを組み合わせることにより、「オブジェクト間のリンク」や「XPresso」も扱えます。ヘアそのものにもダイナミクス機能が内蔵されていますが、これはヘア以外のオブジェクトを扱えないローカルな機能です。クロスタグクロスタグは、「クロス」に含まれるポリゴン専用のダイナミクス機能です。クロスは「Studio」グレードでしか使えません。「ダイナミクス」の機能と比較すると、厚みのないポリゴンで布や服を表現する場合は、クロスの方が優れています。逆に、風船のような閉じた立体を表現する場合は、ダイナミクスの方が優れています。したがって、ポリゴンに関しては、ケースバイケースで二つのダイナミクス機能を使い分けるようにして下さい。他のオブジェクトやタグを組み合わせることにより、「オブジェクト間のリンク」、「XPresso」なども扱えます。IKタグ「IK」タグは、キャラクタ機能の中に入っているIK専用のダイナミクス機能で、鎖のように一列にリンクされたオブジェクトにしか適用できません。全てのグレードで使えます。IKタグが扱える機能は、「場」と「衝突」です。IKチェーンにトレーサを適用してスプライン化することも可能ですが、基本的にこの機能はIK専用と考えた方がいいでしょう。4Dに最初に搭載されたダイナミクス機能です。現在「場」と呼ばれている機能も、そもそもは標準パーティクル用に作られたもので、その後他の機能にも組み合わせられるように拡張されました。標準パーティクルは、「パーティクル」に対する「場」の影響しか計算できません。「XPresso」も扱えません。その分簡単で、全てのグレードで使うことができます。ThinkingParticles標準パーティクルと同じように、ThinkingParticlesの中にもダイナミクス機能が入っています。ThinkingParticlesは「Studio」グレードでしか使えません。ThinkingParticlesが扱えるオブジェクトは、「ThinkingParticles」だけです。扱える機能は、「ThinkingParticlesの場」と「衝突」だけです。言ってもThinkingParticlesは非常に強力な機能なので、オブジェクトやクローンを連動させることができます。「パーティクル対オブジェクト」だけでなく、「パーティクル対パーティクル」の衝突も表現できます。ThinkingParticlesはXPressoで拡張することを前提に設計されているので、プログラムを書けばいくらでも複雑な表現ができます。ThinkingParticlesをダイナミクスで動かすこともできますし、逆にダイナミクスをThinkingParticlesでコントロールすることもできます。XPressoXPressoもまた重要なダイナミクス機能の一つです。XPressoは、「オブジェクト」や「ポリゴン」、「スプライン」、「ThinkingParticles」を扱うことができます。XPressoは全てのグレードで使えます。XPressoの中には「衝突判定」や「距離」、「光線の衝突」といったダイナミクス機能の基礎となるノードが用意されているので、「重力」や「剛体の衝突」といった単純なダイナミクスは簡単に書くことができます。次に、現実の仕事では、標準的なダイナミクスで表現できない特殊な要求が発生し、XPressoを使わざるを得ない、ということがよくあります。現在のダイナミクスには「磁場」を表現する機能がありません。「流体(気体や液体)」を表現する機能もありません。流体の働きを物理的に計算するのは非常に難しく、「RealFlow」のような専用のソフトウエアを使っても、目的とする絵を作れるとは限りません。そのような場合、目的に応じて単純化、特殊化した物理モデルを考え、自分でダイナミクス機能を作ることが唯一の解決方法となります。4Dの標準パーティクルには、8種類の場(モディファイア)がありますが、他のダイナミクス機能に適用できるのは、次に説明する6種類だけです。「反射」と「消滅」は、標準パーティクル固有の機能なので使えません。場に含まれる「重力」や「減速」等の機能は、他のダイナミクス機能の側にも用意されています。場は独立したオブジェクトなので、減衰や移動、回転のアニメーションを指定できるという利点があります。それでは、まずダイナミクスに慣れるために、一番簡単な場を使ってみましょう。4Dでは便宜上中心点があり放射状に働くものを「引力」、中心点が無限遠にあり平行に働くものを「重力」と呼んでいます。これは、「点光源」と「無限遠光源」の違いと同じです。引力の大きさは、中心点との距離の二乗に反比例します。マイナスの値を入力すれば斥力(反発する力)も表現できます。この点では重力よりも電気力に似ています。図621-2減速は、他のダイナミクス機能の中で「ダンピング」と呼ばれている機能と同じ働きをします。パーティクルの速度に応じた抵抗力を発生させ、抵抗力と外力(重力等)が釣り合うと、パーティクルの速度は一定になります。図621-3重力は、中心点が無限遠にある引力なので、ワールド全体に(強さ、方向とも)同じ力が作用します。重力は、重力オブジェクトの「-Y軸」方向に働きます。図621-4回転は、パーティクルにZ軸周りの速度を追加します。したがって、軸の中心に近いパーティクル程速く回転することになります。タービュランス図621-5タービュランスは、ノイズ関数を使ってパーティクルにランダムな速度を追加します。ノイズ関数のスケールや周波数を変更することで、いろいろな動きを指定できます。4Dの場合は重力と全く同じ働きになります。風を適用したパーティクルの速度は、風速に関係なく無制限に大きくなります。風速を制限したい場合は、減速を追加して下さい。風は内部にタービュランス機能を含んでいます。