3DCGはモデリングやテクスチャリングは楽しく感じられる作業ですが、物理演算を使って重力や風の動きなどリアルな表現を作るというのも3DCGの醍醐味の一つです。
X-Particlesなどハイクオリティな表現に向いているサードパーティ製のソフトウェアも用意されていますが、Cinema 4D単体でも申し分のないダイナミクス(力学)のツールが数多く用意されています。
今回の記事ではそんなダイナミクスの基本となる、リジッドボディ(Rigid Body)、ソフトボディ(Soft Body)そして衝突(Collider Body)のシミュレーションタグについてご紹介します。
Bulletタグ
ビューポートにオブジェクトを追加し、オブジェクトマネージャに表示されているオブジェクトを右クリックして「Bulletタグ」からリジッドボディ、ソフトボディ、衝突のタグを追加できます。ちなみにR25以前のCinema 4Dでは「シミュレーション」の中に格納されています。
シミュレーションタグが追加されたオブジェクトはダイナミクスが適用され、再生アイコンをクリックするとパラメータの設定に合わせてオブジェクトが動きます。
上の動画では立方体オブジェクトにリジッドボディを追加したもの。重力に合わせてオブジェクトが落ちていきます。
ダイナミクスを追加したオブジェクトはこのようにタイムラインと連動している部分もあるので、より長くダイナミクスの効果を確認するには「500F」などシーンの長さを変更すると良いでしょう。
なお、シーンを再生している間はカメラを動かして視点を変更したり、ダイナミクスを適用したオブジェクトそのものを動かすことも出来ます。
リジッドボディ、ソフトボディと衝突
Cinema 4Dのシミュレーションタグでは様々なタグが用意されていますが、こちらの記事では主に物体の衝突などに利用できるリジッドボディ、ソフトボディと衝突タグを紹介します。
リジッドボディ(Rigid Body)
リジッド(Rigid)とは「剛体」の事を指し、主に硬い物体のことを指します。本や石、コップやスマートフォンなど基本的に硬いオブジェクトに最適なシミュレーションタグです。
立方体にリジッドボディタグを追加してシミュレーションを行ったものが上の動画。硬い物体が落ちるような反動になっています。
ソフトボディ(Soft Body)
ソフト(Soft)の名前の通りボールやゼリー、風船など柔らかいオブジェクトに最適なシミュレーションタグです。
リジッドボディは分割数が少なくても問題なく動作しますが、ソフトボディの場合は分割数が多ければより柔らかい表現を行えるので、分割数を増やしておくことをおすすめします。
衝突(Collider Body)
衝突タグはリジッドボディまたはソフトボディタグを適用したオブジェクトに反応する衝突用のタグです。上の動画の例のように衝突タグが追加されていないと、リジッドまたはソフトボディタグを追加したオブジェクトは永遠に下に落ちていくので、追加しておきましょう。
パラメータの操作
シミュレーションタグをクリックすると属性マネージャの項目から各パラメータを操作できます。パラメータの種類が多いので、全ては説明できませんが、よく使うであろうパラメータを紹介します。
ダイナミクス(Dynamics)
ダイナミクスタブにある「トリガー(Trigger)」ではダイナミクスを作動させるタイミングを指定できます。
デフォルトでは「即座に」となっていますが、「衝突時」など特定の動作のタイミングでダイナミクスをオンにすることが出来ます。
衝突判定(Collision)
「タグの継承(Inherit Tag)」ではシミュレーションタグを追加したオブジェクトに子のオブジェクトがある場合、その子オブジェクトにもシミュレーションを反映させるかの設定になります。
デフォルトでは「子にも適用」になっているので、上の動画のように立方体のオブジェクトの下にある円柱にも立方体とは別に衝突による弾みが出ますが、これを「なし」にすると親オブジェクトと同じような弾みになります。
「形状(Shape)」は基本的に「自動」のままで問題ありませんが、チューブなどの穴にオブジェクトを通したい場合は「自動」だと穴だと認識されないので、その際は「可動メッシュ」に変更すると良いでしょう。
「反発(Bounce)」、「摩擦(Friction)」、「衝突ノイズ(Collision Noise)」ではオブジェクトが衝突時に発生する弾みを調整できます。
例えば反発の数値を「100%」にするとより弾み、摩擦の数値を下げると摩擦の少ないオブジェクトに変化します。
質量(Mass)
この項目ではオブジェクトの質量や密度を調整できます。デフォルトでは「使う:ワールド密度」となっており、オブジェクトのサイズに合わせて密度が変わります。
サイズの大きい立方体などは密度が大きく、小さい立方体を衝突させると、密度の大きい立方体は衝突時の反発が少ないです。
しかし、オブジェクトのサイズに関係なく密度を変更したい場合は「カスタム密度(Custom Density)」または「カスタム質量(Custom Mass)」に変更して、オブジェクトごとの密度を変更できます。
ソフトボディ(Soft Body)
主にソフトボディタグが適用されているオブジェクトで利用できるパラメータで、オブジェクトの衝突時の柔らかさなどの調整を行えます。
キャッシュ(Cache)
ダイナミクスは基本的に1フレームずつ演算が行われるのですが、ポリゴンが多いメッシュだと演算に時間がかかってしまい、リアルタイムで再生が出来ません。
そこで「キャッシュ」の項目にある「オブジェクトをベイク」をクリックすると、事前に演算を行いダイナミクスを固定することが出来ます。こちらはスプラインダイナミクスと同じ機能です。
ベイクされたダイナミクスはシミュレーションタグの代わりにメモリアイコンが表示されます。オブジェクトの位置やパラメータを変更した場合は再計算が必要なので、「すべてのキャッシュをクリア」をクリックして、再度「オブジェクトをベイク」をクリックしましょう。
重力の変更
ダイナミクスを使用するにあたって重要な要素の一つが重力です。シーン全体の重力を変更するには「Control(Command) + D」を使って「プロジェクト設定」の「ダイナミクス」の中にある「重力(Gravity)」から変更を行います。
デフォルトでは地球の重力である1Gの「1000cm」になっていますが、無重力であれば「0cm」、2Gなどであれば「2000cm」のように変更すると良いでしょう。
Cinema 4Dのダイナミクスを使えばキーフレームを使わずにアニメーションを作成したり、よりリアルな表現を行うことが出来るのでおすすめです。
今回は基本的な操作を紹介しましたが、また別の機会にこのリジッドボディやソフトボディ、衝突のシミュレーションタグを使ったシーンのチュートリアルを出す予定なので、ぜひチェックしてみてください!
(MIKIO)