MoGraphとダイナミクス

レベル/ 対象者:中級/ MoGraphをある程度使える人
対象ソフトウエア、プラグイン:CINEMA 4D R12 Broadcast、Studio

MoGraphを動かすためのもう一つの方法。

冨士 俊雄/ gtofuji@gmail.com
章番号 題名 内容、及び関連する章 作成日/注記
623 3_スプラインとその他の機能 スプラインのソフトボディ、サイズの増分、フレーム当たりのステップ数、トレーサ、コネクタ、ソフトボディを膨らませる、圧力、ソフトボディの体積を一定に保つ、体積を保持、ジグルを使って簡単にソフトボディを表現する、衝突を使って簡単に変形を表現する、解析、サイズ、形状を復元、塑性変形、 2012.1.8
Previous Top Next

Step 1

スプラインのソフトボディ

 スプラインのソフトボディを作るのは非常に面倒です。しかし、CINEMA 4Dにおいてスプラインは非常に重要なオブジェクトなので、この問題を避けて通るわけにはいきません。まずスプラインのダイナミクスが難しい理由を考え、一つ一つ対策していきます。

 

1. スプラインには体積がないので、衝突を計算するのが難しい。

 原理的な問題です。ダイナミクスは、「スプライン対スプライン」や「スプライン対ポリゴン」の衝突を計算できますが、スプラインは必ず「ソフトボディ」に変換しておく必要があります。リジッドボディのスプラインは衝突しません。

 また、リジッドボディのポリゴンはうまく計算できず、スプラインが突き抜けてしまいます。この場合は、スプラインの「分割数」、ダイナミクスボディタグの「衝突判定 -> サイズの増分」、プロジェクト設定の「ダイナミクス -> 詳細 -> フレーム当たりのステップ数」の値を調整して対処します。

図623-1

 またクローンをスプライン化する場合、クローンには体積があるので問題なく衝突を計算できますが、小さいオブジェクトだとクローンの間をすり抜けてしまうという問題が発生します。


2. スプラインの分割数を自由に設定できない

 これも原理的な問題です。通常スプラインの分割数は、「見た目のスムーズさ」を調整するために使われる簡単なパラメータです。ところがダイナミクスは、この値によって分割されたスプラインの変形を計算するため、この値の大小が非常に重要になります。具体的には、見た目にスムーズになるようスプラインを細かく分割すると、計算が非常に重くなり、しかも破綻します。

 この問題を解決するには、ダイナミクスの計算には粗いスプラインを使い、その形状を「トレーサ」で複製し、オブジェクトの表示には細かく分割したトレーサを使う、という面倒な作業を追加する必要があります。しかも、トレーサを使うと必ず1フレームの遅延が発生します。

図623-2

 また、クローンのソフトボディをスプライン化する場合もトレーサを使う必要があります。


3. スプラインに他のオブジェクトをリンクするのが難しい

 スプラインは、現実世界の「ヒモ」に相当するので、どうしても「何かをつなぐ」ケースが多くなります。ダイナミクスにおいて、オブジェクトをリンクするために用意されているオブジェクトは「コネクタ」ですが、計算が粗く本当に簡単なケースしか扱えません。

図623-3

 図623-3を見ると、このような簡単なケースでさえ「handle」オブジェクトを強く動かした時にコネクタがずれて、破綻していることがわかります。

 

 ところがクローンのソフトボディを使うと、より複雑なケースでも簡単かつ正確に表現できます。

図623-4


 というわけで、スプラインのソフトボディに関しては、簡単なケースには「スプラインのソフトボディ」を使い、複雑なケースでは「クローンのソフトボディ」を使うことを私はお勧めします。

 クローンのソフトボディを使う方法は、一見複雑で面倒に感じるかもしれませんが、スプラインのソフトボディを使ったとしても結局トレーサで複製する必要があります。また、「接続部分」には何らかのオブジェクトを置いて体裁を整える必要があります。であれば、最初からリジッドボディで接続部分が完成しているクローンのソフトボディを使う方が結果的には単純で扱いやすいと思います。

 そして、もしどうしてもソフトボディをうまくリンクできない場合は、早めに掲示板等に質問して下さい。ソフトボディを扱うのはそのぐらい難しいのです。

 

 

Step 2

ソフトボディを膨らませる

 ソフトボディには、「圧力」というパラメータがあります。圧力を使うと、オブジェクトを風船のように膨らませることができます。

 この機能は、オブジェクトの中に封入されている「気体」を表現するためにあります。一般的に気体の体積は、圧力が変化すると自由に変ります。なお、この機能は「閉じた立体」にしか使えません。

図623-5

 

 

Step 3

ソフトボディの体積を一定に保つ

 ソフトボディには、「体積を保持」というパラメータがあります。体積を保持を使うと、オブジェクトの体積を一定に保つことができます。

 この機能は、オブジェクトの中に封入されている「液体」を表現するためにあります。一般的に液体の体積は、圧力が変化しても変りません。なお、この機能は「閉じた立体」にしか使えません。

図623-6

 

 

Step 4

ジグルを使って簡単にソフトボディを表現する

 「ジグル」は、ソフトボディ的な変形機能を持ったデフォーマです。衝突や正確なダイナミクス計算はできませんが、その分動作が軽く、簡単に使えます。また、「場」を使って動かすこともできます。

 例えば、キャラクターアニメーションに使う小物オブジェクトに柔らかさを与えたい場合には、ソフトボディよりもジグルを使った方がいいでしょう。

図623-7

 ただし、ジグルはスプラインを扱えません。

 

 

Step 5

衝突を使って簡単に変形を表現する

 「衝突」は、ソフトボディ的な変形機能を持ったデフォーマです。正確なダイナミクス計算はできませんが、その分動作が軽く、簡単に使えます。

 例えば、「何かを包むオブジェクト」を作りたい場合に、「衝突」は最適です。まず、内部のオブジェクトと包むオブジェクトの位置関係を、「衝突対象 -> 解析」で指定します。また、内部のオブジェクトと包むオブジェクトの間に「隙間」を空けたい場合は、「詳細 -> サイズ」の値を大きくして下さい。

図623-8

 

 また、衝突の「形状を復元」の値を0にすると、変形を固定できます。専門用語では「塑性変形」と言うのですが、この機能を使うと「何かが通った跡」を表現できます。この機能は、ダイナミクスのソフトボディにはありません。

図623-9

 


Previous Top Next