CINEMA 4D Dynamicsは、ご承知のように物理シミュレーションを行なうプラグインです。リジッドボディ(剛体)からバネ、ソフトボディ、クロス(布)までカバーできますが、その構成はほかの3DCGソフトのとはかなり趣が異なるので、ある程度の習熟が必要です。ここでは、そのためのポイントをいくつか具体的に示します。 構成上の特徴 ひとつの特徴は、ゴムマリのようなものとクロスが、同じソフトボディとして扱われることです。違いはばね構成ですが、クロスで必ずしもクロスのばね構成を使うわけではなく、いわゆるソフトボディでもクロスのばね構成を使ったほうがいいときもあり、ばね構成(Structural、Shear、Flexionなど)の使用法は、柔軟に考えることが必要でしょう。もちろんクロスとしてのオプション(Relax)もありますが、二次的な設定となります。 Dynamics vs. アニメーション みなさん、Dynamicsに付属のチュートリアルは、例としては面白いけれど、ほとんどがアニメーションをしたほうが早そうだと感じませんでしたか?
あのチュートリアルは説明のため、ということもありますが、実際に、アニメーションをしたほうが簡単にできるということは、おそらく少なからずあるでしょう。 落下する石 これは、設定を変えやすいこともありますが、数を容易に増やせるというメリットの例です。 |
||||
落下するたくさんのポリゴン石。それぞれの石とポリゴン崖に剛体のタグをつけます。衝突検知は、石はEllipsoid、崖はFullです。Solverオブジェクトでは、計算法はRunge-Kutta、またEnergy
Loss、Epsは小さくします。 ほかには、舞い落ちる落葉や桜、崩れるレンガ壁、ビンの中のたくさんのアメ、物が乱雑に散らばっている部屋、などいろいろ考えられます。 |
||||
Dynamics+アニメーション この二つは、必ずしもライバルというわけではありません。ここでは、物を投げるところを例にしてそれを説明します。 |
||||
左の図では、物を投げていますが、すべてDynamicsで処理しようとすると、キャラクターとの衝突も考えなくてはいけなくなり、難しいものとなります。また、タイムラインのTime
Curve[タイム曲線]を使えば、落下などの等加速度運動もできるのですが、手で持っているときは違うわけで、部分的に等加速度にするのは、案外やっかいです。 |
||||
次に、BからCについては、物についてはキーは作らず、Dynamicsの処理に任せます。Solverオブジェクトで、StartをBのフレームにします。 そこで、物につけた剛体のタグで、AからBでのスピードとだいたい同じものを、初期速度に設定して、重力や床オブジェクトとともに、Solverオブジェクトに入れます。物と床オブジェクトとは、衝突の設定をしておきます。 リアルさを増すためには、物に初期回転を加えてもいいかもしれません。 |
||||
ソフトボディの設定 バネ構成が、いわゆるソフトボディとクロスで入れ代わるような例です。 |
||||
右のように、つるされたカーテンでは、ソフトボディのタグで設定するばねは、Structuralだけでも大丈夫なケースが多いです。最上部のポイントだけ、質量をゼロにすると、固定されます。Structuralはポリゴンの辺にばねがあるだけですが、上部が固定されたカーテンでは、それだけで動きが安定するからです。ここで、Clothingタブの設定で、Relaxにチェックを入れ、クロスらしくさらりとした動きにします。 風になびくくらいですと、Structuralで十分ですが、たくしあげたりなど、さらに複雑な動きをさせるとなると、Flexionばねも加えないと自然な変形にならないかもしれません。 |
||||
左は、いわゆるソフトボディですが、形を安定にさせるためには、クロスのばね、つまりStructural、Shear、Flexionの三種を使います。ただし、Relaxにはチェックを入れません。
|
||||
このように、クロスばねは、単に三種のバネを同時に使うということで、必ずしもクロスだけに使うとは限りませんし、クロスでもクロスばねを使わなくてもすむことがあります。 |
||||
デフォーマとの連携 現在のDynamicsの仕様では、 デフォーマの変形に対して、衝突検知はできません。これはダミーオブジェクトを使うか、形を固定してしまうことで解決できますが、とくに後者ではデフォーマのメリットが活かせなくなります。 ここでは例として、キャラクター(の腕)とソフトボディ(タオル)との衝突を考えます。まずボーン・チェーンと同じ階層構造のダミーオブジェクトを作ります(A)。ここで注意することは、ダミーオブジェクトの座標軸をボーンのそれとまったく同じように設定することです。またオブジェクト階層での回転は、親の座標軸をもとにして計算されますから、たとえ腕だけの動きでも、最上位のボーン(ふつう腰)から階層をつくります(B)。もっとも簡単な作成方法は、ボーン階層の最上位で、Current
State to Object[現在の状態をコピー]を施すことです。 |
||||
|
||||
By H. Ikeda |