MoGraphとダイナミクス

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

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

冨士 俊雄/ gtofuji@gmail.com
章番号 題名 内容、及び関連する章 作成日/注記
622 2_リジッドボディとソフトボディ リジッドボディ(剛体)の衝突、タグの継承、子にも適用、階層全体を衝突判定、個別エレメント、オフ、全て、形状、可動メッシュ、別オブジェクト、クローンの衝突、クローン全体をリジッドボディとみなす、エフェクタ、デフォーマ、PLA、リジッドボディの拘束、コネクタ、ソフトボディ(弾性体)、構造(引っぱり)、シアー(歪み)、折れにくさ(曲げ)、クローンをソフトボディとみなす、ポイント選択範囲を使ってソフトボディの一部を拘束する、コネクタ、XPressoを使ってソフトボディの一部を拘束する、速度、MoGraph選択範囲を使ってソフトボディの一部を拘束する、初期化、トレーサ、角度を固定、、フレーム当たりのステップ数、破断、頂点ウエイト、 2012.1.3
Previous Top Next

Step 1

リジッドボディ(剛体)の衝突

 「リジッドボディ」というのは、ダイナミクスの専門用語で「変形しないオブジェクト」を意味します。日本語では「剛体」と呼びます。

 一般的なリジッドボディは体積を持っていますが、CINEMA 4Dのダイナミクスでは「平面」や「ヌル」オブジェクト等の体積を持っていないオブジェクトでもリジッドボディの計算に含めることができます。ただし、「圧力」や「衝突」等いくつかの機能は使えなくなります。

 

 リジッドボディの衝突は比較的簡単に扱えますが、引っかかりやすい点について説明しておきます。

1. 衝突判定 -> タグの継承
 この値はデフォルトで「なし」になっていて、子オブジェクトは衝突しません。この値を「子にも適用」にすると、子オブジェクトが独立して衝突するようになります。また、この値を「階層全体を衝突判定」にすると、階層全体が塊として衝突するようになります。

図622-1

 

2. 衝突判定 -> 個別エレメント
 このパラメータは「タグの継承」と似ていますが、クローナーやパーティクルのようにオブジェクトを複製する働きを持ったオブジェクトに対して、ダイナミクスを適用する場合に使います。この値はデフォルトで「オフ」になっていて、この場合クローン全体が塊として衝突します。この値を「全て」にすると、各クローンが独立して衝突するようになります。

図622-2

 

3. 衝突判定 -> 形状
 この値はデフォルトで「自動」になっていて、オブジェクトを包む大きさの何種類かのプリミティブオブジェクトが衝突判定の計算に代用されるようになっています。これは、計算速度を速くするためで、ポリゴン1枚1枚の細かな形状は無視されます。また穴も無視されるので、トーラスなどではおかしな結果になります。このような場合は「可動メッシュ」に切り替えてください。

 ただし、ポリゴン数が多いと非常に重くなります。このような場合は、簡略化したダミーオブジェクトを作成し、この値を「別オブジェクト」に切り替え、そのオブジェクトを代用して下さい。

図622-3

 

 

Step 2

クローンの衝突

 ダイナミクスは、MoGraphオブジェクトが生成するクローンに対しても働きます。つまり、ダイナミクスを適用したオブジェクトを複製すると、全てのクローンに対してダイナミクスが働くようになります。この働きは、「パーティクル」や「ThinkingParticles」、「配列」、「インスタンス」等多くの機能に共通しますが、ここでは、最も強力な機能であるMoGraphに関してだけ説明します。

 

 MoGraphオブジェクトに「ダイナミクスボディ」タグを適用する方法は二つあります。

1. 複製されるオブジェクトに適用する
 この場合、オブジェクトごとに物性を変えることができます。また、「コネクタ」や「モーター」は必然的にオブジェクトごとに指定することになります。ただし、オブジェクト数が多い場合は設定が面倒になります。

2. MoGraphオブジェクトに適用する
 この場合、全てのクローンに対して同じ物性が適用されますが、設定は簡単です。ただし、ダイナミクスボディタグの「衝突判定 -> 個別エレメント」を、忘れずに「全て」に変更しておいて下さい。そうしないと、クローン全体が一個の塊として計算されてしまいます。

図622-4

 

 クローンに対してダイナミクスを適用すると、ダイナミクスの働きが支配的になり、イフェクタによる「位置」と「角度」の働きは消えてしまいます。ただし、イフェクタのそれ以外の機能(スケールやカラー等)は正常に働きます。また、次のような場合は、イフェクタによる位置と角度の情報がダイナミクスに影響を与えます。

1. ダイナミクスが働く前にイフェクタによって与えられた位置(角度)や速度(角速度)の値は、ダイナミクスの「初期位置」、「初期速度」として使われます(624章のステップ2「初速」を参照)。

2. ダイナミクスボディタグの「フォース -> 位置追従、角度追従」の値を大きくすると、イフェクタの働きが「一種の外力」としてダイナミクスの計算に含まれるようになります(624章のステップ3「キーフレームアニメーションとダイナミクスを合成する」を参照)。

 また、キーフレームアニメーションによる位置や角度の働きもイフェクタと同様に扱われます。

 

 

Step 3

クローン全体をリジッドボディとみなす

 ステップ2では、個々のクローンを独立して計算する場合について説明しました。これに対して、ダイナミクスボディタグの「衝突判定 -> 個別エレメント」を、「オフ」のままにしておくと、クローン全体が「一個の塊」として計算されます。

 こうすると、クローン一個一個はダイナミクスの計算から「解放」されることになり、その結果エフェクタの働きが戻ってきます。そして、エフェクタの働きによってクローンの塊が「変形」すると、それはダイナミクスの計算に影響を与えます。

図622-5

 

 同様に、通常のオブジェクトの場合でも、その形状をデフォーマやPLAで「変形」させると、それはダイナミクスの計算に影響を与えます。

図622-6

 

 つまり、CINEMA 4Dのダイナミクスにおける「リジッドボディ」というのは、私たちの日常生活における「剛体」とは少し異なっていて、柔らかく変形することもできるのです。ただし、その変形はエフェクタやデフォーマによってもたらされる変形であり、ダイナミクスの「ソフトボディ」機能による変形ではありません。その結果ダイナミクスは「騙されて」、柔らかく変形するオブジェクトをリジッドボディのまま扱うことになるのです。

 このような使い方は非常に重要です。なぜなら、デフォーマやエフェクタはソフトボディより遥かに軽く、簡単に扱えるからです。つまり、柔らかく変形するオブジェクトをダイナミクスで扱いたい場合、いきなりソフトボディを適用するのは得策ではありません。可能な限りデフォーマやエフェクタを使うように工夫してみて下さい。

 

 

Step 4

リジッドボディの拘束

 リジッドボディの動きを完全に止めたい場合は、ダイナミクスボディタグの「ダイナミクス -> ダイナミクス」をオフにします。

 また、リジッドボディの位置や角度の値の一部を拘束、制限したい場合は、「コネクタ」オブジェクトを使って他のダイナミクスオブジェクトにリンクします。ただし、この機能はStudioグレードでしか使えません。

 これらの機能の詳細については、624章を参照して下さい。

 

 

Step 5

ソフトボディ(弾性体)

 「ソフトボディ」というのは、ダイナミクスの専門用語で「変形するオブジェクト」を意味します。日本語では「弾性体」と呼びます。

 ソフトボディは、ポリゴンやスプラインを構成するポイントの間に「小さなバネ」を張り巡らし、ポイント間の距離や角度を変えることで表現します。したがって、ポイント数が多くなると、非常に重くなります。ソフトボディを使う時には、ポリゴン数を必要最小限にするよう気をつけて下さい。

 またソフトボディは、「多数のリジッドボディを小さなバネでリンクしたもの」と解釈することもできます。したがって、衝突や他のオブジェクトへのリンク等リジッドボディができることは全てできます。

 

 ソフトボディを構成する小さなバネには3種類あります。これは、ヘアやクロス、他のソフトのダイナミクス機能にも共通する重要な原理です。よく理解して下さい。

1. 構造(引っぱり)
 構造は、ポイント間に張られたバネで、二点間の距離を維持する働きをします。

 一般的に、オブジェクトの固さに一番影響するパラメータで、例えば、「鎖」は構造が「100%」、折れにくさが「0%」のソフトボディです。

図622-7

 

2. シアー(歪み)
 シアーは、四角ポリゴンの対角に張られたバネで、長方形が歪んで平行四辺形になるのを防ぐ働きをします。

 したがって、スプラインで作ったソフトボディやヘアにはこのバネがありません。一般的に、四角ポリゴンの部分が詰まっているオブジェクト(例えば「紙」)はシアーの値が大きく、抜けているオブジェクト(例えば「網」)はシアーの値が小さくなります。

図622-8

 

3. 折れにくさ(曲げ)
 折れにくさは、ポイントに置かれた回転バネで、そのポイントから伸びるエッジやスプラインの角度を維持する働きをします。

 一般的に、厚みのあるオブジェクト程折れにくさの値が大きくなります。また、「鎖」のように関節を持ち、自由に曲げられるようになっているオブジェクトはこの値が「0%」になります。

図622-9

 

 

Step 6

クローン全体をソフトボディとみなす

 ダイナミクスは、クローンをソフトボディにできます。これはMoGraphだけの機能で、他のパーティクル等が複製するオブジェクトは、リジッドボディーにはできますが、ソフトボディーにはできません。

図622-10

 ステップ9で説明するように、クローンのソフトボディは非常に重要な機能ですが、根本的な問題がいくつかあります。

1. クローンの間に隙間ができる。
 クローンのソフトボディにおいて、クローンの衝突は正しく計算されます。しかし、クローンの間には何も存在しないので、他のオブジェクトがそこをすり抜けてしまいます。

2. クローンの回転を制御できない。
 クローンのソフトボディにおいて、クローンは「ポイント上に置かれたオブジェクト」として計算されます。そして、ポイントには角度の情報がありません。したがって、例えばクローンの変形に合わせてクローンの向きを変える、といった簡単なことができません。


 クローンのソフトボディを使う場合は、このような問題があることをよく理解しておいて下さい。

 

 

Step 7

ポイント選択範囲を使ってソフトボディの一部を拘束する

 リジッドボディは変形しません。したがって、「一部を拘束する」という考え方は無意味です。なぜなら、一部を拘束するのも全体を拘束するのも同じことだからです。それに対して、ソフトボディは変形します。したがって、一部を拘束してもその他の部分は動く(変形する)ことができます。

 これがソフトボディの特質であり、「一部を拘束する」ということが、ソフトボディを扱う上で非常に重要になります。ところが、CINEMA 4Dのダイナミクスにはソフトボディの一部を簡単かつきれいに拘束する方法がありません。非常に困ったことなのですが、以下にソフトボディの一部を拘束する四つの方法と、その利点欠点について説明します。ケースバイケースで適切な方法を選択して下さい。


1. ポイント選択範囲を使うと、簡単にポリゴンやスプラインで作ったソフトボディの一部を拘束できます。ただし、この機能は非選択ポイントを「ワールド」に拘束するので、その部分を動かせなくなってしまいます。例えば、この機能を使って自動車の荷台に網を張ると、自動車を動かした時にその網は自動車に付いてきません。

 非常におかしな仕様で、ほとんどの場合この機能は使えないと考えた方がいいでしょう。ちなみに、「ヘアー」で同じことをすると、ワールドではなくオブジェクトに拘束されます。

図622-11

 

2. ソフトボディをオブジェクトに拘束したい場合、一番簡単なのは「コネクタ」を使ってソフトボディを別のオブジェクトにリンクする方法です。この場合もポイント選択範囲を使いますが、ダイナミクスボディタグではなく、コネクタに適用します。

 ただし、コネクタは拘束した点をきれいに固定できず、かなり「ぶよぶよ」します。これが問題にならない場合は、コネクタを使うといいでしょう。

図622-12

 コネクタについては、624章のステップ4「ダイナミクスが適用されたオブジェクトをリンクする」も参照してください。

 

 

Step 8

XPressoを使ってソフトボディの一部を拘束する

3. XPressoを使うと、ソフトボディの一部をきれいにオブジェクトに拘束できます。ただしこのXPressoを作るにはダイナミクスの内部構造を熟知している必要があり、マニュアルを読んでもわかりません。実際私も独力でこのXPressoを作ることはできませんでした。

 考え方としては、XPressoを使って親オブジェクトの「速度」の情報、及び各ポイントの「絶対位置」の情報を、ダイナミクスを適用した子オブジェクトに伝える、ということになります。この「速度情報を伝える」という部分が難しかったのですが、結果的にXPressoの構成はそんなに難しくないので、何も考えずにこのXPressoをそのままコピーして使って下さい。

図622-13

 

 

Step 9

MoGraph選択範囲を使ってソフトボディの一部を拘束する

4. MoGraph選択範囲を使うと、クローンで作ったソフトボディの一部を簡単かつきれいにオブジェクトに拘束できます。

図622-14

 

 この方法の問題点は、当然のことながら「外観がクローンである」ことです。したがって、外観をポリゴンにしたい場合は、XPressoを使ってクローンの変形情報をポリゴンに伝える必要があります。とは言っても、このXPressoは、単にクローンの位置情報をポイントに伝えるだけなので簡単です。もしうまく動作しない場合は、ダイナミクスのデータを初期化してみて下さい。

図622-15

 

 また、線状のクローンからスプラインを作りたい場合は、トレーサを使います。この方法については、623章のステップ1「スプラインのソフトボディ」を参照してください。

 

 クローンをソフトボディ化するという考え方は、一見すると「使い道のない裏技」のように感じられるかもしれません。しかし、私は「CINEMA 4Dでは、クローンのソフトボディが一番使える」と考えています。

 理由は簡単で、クローンのソフトボディには初めから「リジッドボディ」が含まれているからです。クローンのソフトボディにおいて、クローンの位置関係は変形しますが、クローンそのものは変形しないリジッドボディです。したがって、次のようなオブジェクトを簡単に作ることができます。

図622-16

 もし、同じオブジェクトをポリゴンのソフトボディで作ろうとすると、大量のコネクタやXPressoを使ってリジッドボディをリンクしなければなりません。そして、それは非常に面倒で、おそらくまともに動かないでしょう。

 ここで、クローンの脚が折れないように「角度を固定」という機能を使いました。ステップ6で説明したように、クローンの角度をコントロールするのは難しく、標準ではこれがほぼ唯一の機能です。

 また、ダイナミクスに難しい計算をやらせると、オブジェクトが簡単に「発振」し、ひどくなると「発散、破綻」します。このような場合は、まずプロジェクト設定を開き、「ダイナミクス -> 詳細 -> フレーム当たりのステップ数」の値を大きくしてみて下さい。

 

 クローンのソフトボディでは「破断」も扱えます。これは「クローンが連続していない」という弱点を逆手に取った機能で、ポリゴンやスプラインで作ったソフトボディではできません。

図622-17

 また、ソフトボディーの性質は「頂点ウエイト」タグを使って自由にコントロールできます。クローンは頂点ウエイトを持てませんが、「オブジェクト」モードでクローンを作成した場合は、参照するポリゴンの頂点ウエイトをそのまま利用できます。

 


Previous Top Next