パーティクル

Cinema 4Dのパーティクル機能を使うと、海に潜んでいるサメや宇宙船の艦隊、タバコの煙などを表現できます。パーティクルの操作は非常に簡単でしかも直感的です。

Cinema 4Dのパーティクルシステムは、パーティクルを発射する「エミッタ」と、その動きをコントロールする「モディファイア」によって構成されていますモディファイアフィールドフォースを使うと、パーティクルが飛ぶ経路を回転させたり、反射させたり、散乱させたりできます。

このように簡単です:

  1. エミッタを作成します(シミュレート/パーティクル/エミッタ)。
  2. アニメーションツールバーの「再生」ボタンを押すと、デフォルトのパーティクルが発射され、エディタビューに表示されます(ここで発射されるのは、パーティクルの位置を表す白い線です)。
  3. オブジェクトを何か作成し、エミッタの中に入れて下さい(子オブジェクトにする)。例えば小さな球体などがいいでしょう。そして属性マネージャで「エディタにオブジェクトを表示」オプションを選択してください。すると、子オブジェクトがパーティクルの数だけ複製され、飛んでいきます。

パーティクルというのは、ランダムにオブジェクトを複製し、動かす機能です。Cinema 4Dはどんなオブジェクトでもパーティクルにできます。単純な球体だけでなく、鳥や自動車などの階層化された複雑なオブジェクトでも使えます(ただし、パーティクル自身やデフォーマはパーティクルにできません)。

ライトであってもパーティクルにできます。例えば、ライトに可視照明を指定し、パーティクルにすると、炎や煙を簡単に表現できます。そしてパーティクル化されたライトであっても、正しく周囲を照明し影を落とします。

また、パーティクル化するオブジェクトをアニメートすることもできます。例えば、羽ばたく鳥や泳ぐ魚をパーティクルにすれば、簡単にそれらの群れを作成できます。

複数のオブジェクトを同時にパーティクル化することもできます(つまり、鳥の群れの中に、何種類かの違った鳥を含めることができます)。この場合、単に複数のオブジェクトをエミッタの中に入れて下さい。最初のパーティクルには一番上にあるオブジェクトが、2番目のパーティクルには2番目のオブジェクトが使われ、順にくり返されます。最後のオブジェクトの次には最初のオブジェクトが使われます。

また、パーティクルをメタボールの種に使うこともできます。これを使うと、動く液体を簡単に表現できます。

エミッタのパーティクルをメタボールに溶合させる場合、エミッタはメタボールの子オブジェクトにします。

エミッタから発射されたパーティクルは、基本的に一定の速度で直進します。しかし、モディファイアの中に入ると、パーティクルの速度や方向は指定された条件で変化します。各モディファイアは、デフォルトではオブジェクト座標のZ軸に沿って働きます(例えば、「風」モディファイアの風は、原点からZ方向に向かって吹きます)。モディファイアのサイズや向きは自由に変更可能で、複数のモディファイアを同じ空間に重ねることもできます。例えば、風モディファイに「タービュランス」モディファイアを重ねると、リアルに流れる煙を表現できます。

エミッタやモディファイアに含まれるほとんど全てのパラメータは、タイムラインでパラメータトラックを設定することにより、アニメートできます。例えば、風モディファイアの強さをアニメートすると、煙の動きをよりリアルにできるでしょう。

パーティクルは、タイムスライダを1フレームずつ確実に動かした場合にだけ正しく計算されます。もしタイムスライダを左に逆行させたり、右方向に速く動かすと、パーティクルの位置を正しく計算できず、おかしな動きになります。このような問題が起こるのは、Cinema 4Dが前のフレームでのパーティクルの位置を基準として、現在のフレームでの位置を計算するからです。したがって、エミッタやモディファイアのパラメータを変更した場合は、必ずタイムスライダを発射時間まで戻し、1フレームずつ確実に動かして下さい。

エディタビューでアニメーションをプレビュする時に、タイムスライダを1フレームずつ確実に動かすには、「アニメーション / フレームレート / 全てのフレーム」オプションを選択しておいて下さい。またはアニメーションツールバーのオプションのアイコンをクリックして「フレームレート / 全てのフレーム」を選択しておいて下さい。タイムラインアニメーションコントロールで正確な表示を得るためには、アニメーション全体を通じてひとつひとつ作業を行い、全てのフレームに対応する必要があります。ただし、レンダリング時には必ず1フレームずつ計算されるので、正しくパーティクルが計算されます。

ライトをパーティクル化する場合は、必要がないかぎり「光を放射しない」オプションを選択するか、「影のタイプ」をなしに指定して下さい。パーティクル化したライトに、周囲を照明させ、影を落とさせることは可能ですが、数が多くなるとレンダリングが非常に遅くなります。

エミッタやデフォーマは、パーティクルにできません。この章の終わりに、ライトをパーティクル化する方法と、パーティクルをメタボールにする方法が説明されています。

パーティクルのベイク

ヒント:動的パーティクル(ダイナミクスボディタグを持つエミッタの子オブジェクトなど)は、この機能を使用してベイクすることはできません。前述のタグのキャッシュタブには同様のベイク機能が含まれています。

場合によっては、パーティクルの流れをキーフレームにベイクする必要があります。なぜパーティクルをベイクする必要があるのでしょうか?

一般的にパーティクルの現在位置を求めるには、エミッタから発射され、各モディファイアから影響を受ける過程を、全てのフレームで積み重ねて計算する必要があります。つまり、あるフレームでのパーティクルの位置を計算するには、前のフレームでのそのパーティクルの位置を知る必要があり、それを最初のフレームまでくり返す必要があるのです。しかし、次のような場合には問題が生じます。

最初の問題は、Team Renderを使ったネットワークレンダリングで生じます。NETは、レンダリング作業を複数のコンピュータに分散することで作業を効率化します。しかしコンピュータネットワークには、複数の種類のCPU(例えば、AMD、Pentiumなど)や、OSが含まれている可能性があります。そして異なったCPUやOSでは、浮動小数点計算の精度がわずかに異なります。つまり、長いフレームをレンダリングさせると、各コンピュータが計算したパーティクルの位置にずれが生じるのです。そして、それらの結果をつなぎ合わせたムービーを再生すると、パーティクルがあるフレームでジャンプして見えるはずです。このような問題を解決するには、ネットワークレンダリングする前にパーティクルをベイクする必要があります。

次の問題は、一つのシーンで複数の独立したパーティクルを扱いたい場合に生じます。Cinema 4Dでは、仕様上全てのモディファイアが全てのパーティクルに働きます。これを区別する方法はありません。もし、あるパーティクルの流れが、あるモディファイアの影響を受けないようにしたい場合は、モディファイアを追加する前にパーティクルをベイクして下さい。ベイクされたパーティクルはモディファイの影響を受けません。

パーティクルの動きを現在の状態でベイクさせた場合、位置、回転、サイズなどは、(タイムラインなどを気にすることなく)アニメーションの各フレームがベイクされ、Team Renderでパーティクルを正しくレンダリングできるようになります。

パーティクルをベイクするには:

メインメニューで、エミッタを選択してシミュレート / パーティクル / パーティクルをベイクを選択します。

パーティクルをベイクするには多量のメモリが必要です(数百MBになる場合もあります)。なぜなら、発生する全てのパーティクルについて、指定された時間にわたって、指定された間隔で、位置、スケール、角度などの情報を記憶する必要があるからです。パーティクルをベイクした情報がどのぐらいのメモリを消費しているかを調べるには、エミッタを選択し、オブジェクト / ファンクション / 情報(オブジェクト)を選択して下さい。

使用例

ライトを使ったパーティクルアニメーション

この例では彗星の尾を作成します。

ライトオブジェクを作成し、属性マネージャで次に指示されているパラメータの値を変えて下さい。これ以外のパラメータはデフォルトのままで構いません。

一般 ページ

可視照明 ページ

次に、シミュレート / パーティクル / エミッタでエミッタを作成し、属性マネージャで次に指示されているパラメータの値を変えて下さい。(これ以外のパラメータはデフォルトのままで構いません):

パーティクル ページ

エミッタ ページ

最後に、オブジェクトマネージャでライトをドラッグし、エミッタにドロップします。この状態で、タイムスライダを動かしてエディタビューをレンダリングしてみてください。また、彗星の尾の部分にグラデーションをかけることもできます。例えば、ライトの色が時間の経過にしたがって「黄色」から「オレンジ」、「黒」と変化するようにアニメートすると、その変化が彗星の尾のグラデーションになります。また、モディファイアを1~2個追加してもかまいません。

メタパーティクル

Cinema 4Dでは、パーティクルをメタボールにできます。エミッタ(エミッタの子を含む)はメタボールオブジェクトの子である必要があります。

作業の手順は以下の通りです。前のページの例と同じように、指示されたパラメータだけ変更して下さい。これ以外のパラメータはデフォルトのままで構いません。まず作成 / モデリング / メタボールを選択しメタボールを作成します。そして、次のパラメータを変更します。

オブジェクト ページ

次にシミュレート / パーティクル / エミッタを選択し、エミッタを作成します。そして、次のパラメータを変更します:

パーティクル ページ

次に、作成 / オブジェクト / 球体を選択し、球体を作成します。そして属性マネージャで、球体の半径を35cmに指定して下さい。最後にオブジェクトマネージャで、球体をエミッタにドラッグ&ドロップします。さらに、エミッタをメタボールにドラッグ&ドロップします。

この状態でタイムスライダを動かすと、メタパーティクルがエディタビューに表示されるはずです。これをレンダリングし、他のパラメータもいろいろと変更してみてください。