CINEMA 4D Dynamics ミニチュートリアル

 CINEMA 4D Dynamicsは、ご承知のように物理シミュレーションを行なうプラグインです。リジッドボディ(剛体)からバネ、ソフトボディ、クロス(布)までカバーできますが、その構成はほかの3DCGソフトのとはかなり趣が異なるので、ある程度の習熟が必要です。ここでは、そのためのポイントをいくつか具体的に示します。

構成上の特徴

 ひとつの特徴は、ゴムマリのようなものとクロスが、同じソフトボディとして扱われることです。違いはばね構成ですが、クロスで必ずしもクロスのばね構成を使うわけではなく、いわゆるソフトボディでもクロスのばね構成を使ったほうがいいときもあり、ばね構成(Structural、Shear、Flexionなど)の使用法は、柔軟に考えることが必要でしょう。もちろんクロスとしてのオプション(Relax)もありますが、二次的な設定となります。

Dynamics vs. アニメーション

 みなさん、Dynamicsに付属のチュートリアルは、例としては面白いけれど、ほとんどがアニメーションをしたほうが早そうだと感じませんでしたか? あのチュートリアルは説明のため、ということもありますが、実際に、アニメーションをしたほうが簡単にできるということは、おそらく少なからずあるでしょう。
 もちろん、アニメーションのほうが簡単なのに、無理してDynamicsを使う必要はないですが、設定を変えやすい、数を増やすのが簡単など、メリットのあるものを見定めることも必要でしょう。

落下する石

 これは、設定を変えやすいこともありますが、数を容易に増やせるというメリットの例です。

 落下するたくさんのポリゴン石。それぞれの石とポリゴン崖に剛体のタグをつけます。衝突検知は、石はEllipsoid、崖はFullです。Solverオブジェクトでは、計算法はRunge-Kutta、またEnergy Loss、Epsは小さくします。
 当然、数を増やしてシミュレーションをするのは、それほど手間はかかりません。設定の変更は、各石のパラメータを変えるのは数が多いと大変なので、SolverオブジェクトのEnergy Lossやドラッグで調節するとよいかもしれません。

 ほかには、舞い落ちる落葉や桜、崩れるレンガ壁、ビンの中のたくさんのアメ、物が乱雑に散らばっている部屋、などいろいろ考えられます。

 

Dynamics+アニメーション

 この二つは、必ずしもライバルというわけではありません。ここでは、物を投げるところを例にしてそれを説明します。

 左の図では、物を投げていますが、すべてDynamicsで処理しようとすると、キャラクターとの衝突も考えなくてはいけなくなり、難しいものとなります。また、タイムラインのTime Curve[タイム曲線]を使えば、落下などの等加速度運動もできるのですが、手で持っているときは違うわけで、部分的に等加速度にするのは、案外やっかいです。
 そこで、AからBはアニメーションで、BからCはDynamicsで処理すると、ずっと簡単なことになります。 物を手の動きに従わせるには、専用のプラグインもありますが、手にダミーのヌルオブジェクトをつけておき、Transfer[転写]で同じ位置にして、キーを打っていく方法が簡単です。

 次に、BからCについては、物についてはキーは作らず、Dynamicsの処理に任せます。Solverオブジェクトで、StartをBのフレームにします。
 そこで、物につけた剛体のタグで、AからBでのスピードとだいたい同じものを、初期速度に設定して、重力や床オブジェクトとともに、Solverオブジェクトに入れます。物と床オブジェクトとは、衝突の設定をしておきます。
 リアルさを増すためには、物に初期回転を加えてもいいかもしれません。
 

 

ソフトボディの設定

 バネ構成が、いわゆるソフトボディとクロスで入れ代わるような例です。

 右のように、つるされたカーテンでは、ソフトボディのタグで設定するばねは、Structuralだけでも大丈夫なケースが多いです。最上部のポイントだけ、質量をゼロにすると、固定されます。Structuralはポリゴンの辺にばねがあるだけですが、上部が固定されたカーテンでは、それだけで動きが安定するからです。ここで、Clothingタブの設定で、Relaxにチェックを入れ、クロスらしくさらりとした動きにします。
 風になびくくらいですと、Structuralで十分ですが、たくしあげたりなど、さらに複雑な動きをさせるとなると、Flexionばねも加えないと自然な変形にならないかもしれません。

 左は、いわゆるソフトボディですが、形を安定にさせるためには、クロスのばね、つまりStructural、Shear、Flexionの三種を使います。ただし、Relaxにはチェックを入れません。
 また、三角ポリゴンはなるべく避けたほうが、形が安定します。たとえば、球プリミティブからポリゴン球を作るとして、タイプがHexahedron[六面体]のものから作ったほうが、四角ポリゴンだけになり、ソフトボディとしての形は安定します。

 

 このように、クロスばねは、単に三種のバネを同時に使うということで、必ずしもクロスだけに使うとは限りませんし、クロスでもクロスばねを使わなくてもすむことがあります。

 

デフォーマとの連携

 現在のDynamicsの仕様では、 デフォーマの変形に対して、衝突検知はできません。これはダミーオブジェクトを使うか、形を固定してしまうことで解決できますが、とくに後者ではデフォーマのメリットが活かせなくなります。
 ボーンの場合は、そのうえオブジェクト階層がからんできますので、さらに複雑にはなりますが、適切なダミーオブジェクトを使うことによって、この問題を解決することができます。

 ここでは例として、キャラクター(の腕)とソフトボディ(タオル)との衝突を考えます。まずボーン・チェーンと同じ階層構造のダミーオブジェクトを作ります(A)。ここで注意することは、ダミーオブジェクトの座標軸をボーンのそれとまったく同じように設定することです。またオブジェクト階層での回転は、親の座標軸をもとにして計算されますから、たとえ腕だけの動きでも、最上位のボーン(ふつう腰)から階層をつくります(B)。もっとも簡単な作成方法は、ボーン階層の最上位で、Current State to Object[現在の状態をコピー]を施すことです。


  ダミーオブジェクトに剛体のタグ(質量0、Full衝突)、タオルにソフトボディのタグ(Clothばね、Full衝突)をつけ、SloverオブジェクトのEpsなどを調節して、重力で腕に落ちるようにします(C)。
 で、ボーンに対してキーフレームを作り、アニメーションを作ったら、ダミーオブジェクトも同じように動くようにします。これは専用のプラグインやエクスプレッションでもできますが、ここではTransfer[転写]コマンドで、ダミーオブジェクトの回転をそれぞれのボーンに合わせ、同じようにキーフレームを作ります。
 このようにして、ボーンの変形にあわせて、衝突が計算できるようになります(D)。


By H. Ikeda