ホーム > チュートリアル > Maya のパーティクルとダイナミクス:グラスに水を注ぐ

チュートリアル

Maya のパーティクルとダイナミクス:グラスに水を注ぐ

制作:Mike Zugschwert

Web: http://www.mikezfx.com/

t047_top

FXアーティスト Mike Zugschwert氏によるチュートリアルでエフェクトアニメーションのヒント&テクニックを身につけましょう(Maya使用)

水のアニメーションを作成するためには、水をシミュレートするジオメトリが必要です。まず、グラスとボトルをモデリングしましょう。スケールに注意してください。私の場合、プリファレンスの設定カテゴリで[作業単位](Working unit):センチメートルに設定。現実世界のスケールで、すべてを大まかにモデリングします(図01)。

図01

図01

これでシーンにいくつかのパーティクルを追加できますが、まず、nParticleプリセットを利用しましょう。メニューから[nParticle]> [nParticleの作成](nParticles > Create nParticles)を選択、既定のパーティクル設定には5つのオプションがあります(図02)。

図02

図02

水を選択。続けて、同じメニューから[エミッタの作成](Create Emitter)を選択します。これで[全方向エミッタ]とnParticleオブジェクトがシーンに作成されます。既定では[全方向エミッタ]の[最大距離]は0です。この場合、パーティクルがすべて同じ位置に出現します。このままでは水のシミュレーションで問題が発生するでしょう。水のシミュレーションの駆動力によって、パーティクルは互いに離れて素早く放出されるからです。そこで、エミッタの[アトリビュート エディタ]で[距離/方向アトリビュート]の[最大距離]:2にセット、残りは後で調整します。また、[レート]:500にセットして、ボトルの中にエミッタを移動します(図03)。

図03

図03

直ちに変更する設定は、nucleusソルバの[サブステップ]アトリビュートです。既定では4になっていますが、このままではシミュレーションが不安定になるので、12まで増やしましょう。シミュレート中にパーティクルが爆発したり、衝突オブジェクトを通過する場合は、さらに増やしましょう。[地表プレーン]>[プレーンの使用](Ground Plane > Use Plane)オプションをオンにすると、パーティクルがグラスから無限にこぼれていくのを防ぎます。原点にジオメトリを作成しなかった場合、シーンに衝突(コライダ)用のプレーンを作成する必要があります(図04)。

図04

図04

最後に、パーティクルの衝突オブジェクトとしてジオメトリを追加する必要があります。ジオメトリを選択した状態で[nMesh]>[パッシブ コライダの作成](nMesh > Create Passive Collider)を適用。これでシーン内の選択した各オブジェクトに新しくnRigidオブジェクトが作成されます。[アトリビュート エディタ]の[nRigidShape]で[厚み] 、[バウンス]、[摩擦](thickness,、bounce、friction)のような衝突アトリビュートを調整できます。今回は既定値のままで上手く動作します。

それでは、シーンを再生してシミュレーション結果を見てみましょう。水プリセットは既定値でも良好ですが、まだいくつか改善の余地があります。

ヒント:水プリセットを使わない場合の最も重要な手順は、[液体シミュレーション]をオン、[自己衝突](Self Collide)をオフにすることです。[液体シミュレーション]をオンにすると、パーティクルに作用する引力と反発力を使って、各パーティクルが相互浸透する水の挙動を作成できます。[自己衝突]をオンにすると、流体シミュレーションを妨害するので、希望する流体の動きにならないでしょう。

[アトリビュート エディタ]の[nParticleShape]タブで[半径]を変更することから始めましょう。パーティクルが大きいほど、グラスをいっぱいにするのも簡単になりますが、ディテールも失われます。今回のスケールのシーンでは[半径]:0.15で上手く動作します。また、[半径スケールの入力](Radius Scale)を[ランダム化された ID](Randomized ID)に変更、[半径のスケールのランダム化](Radius Scale Randomize)を0.1に増やしましょう。これでパーティクルの半径がランダム化されるので、図05のように、パーティクルが表面に積み重なるのを防ぎます。

パーティクルをグラスにもう少し浸透させたいので、メッシュとグラスの間にギャップを残さないように塞ぎましょう。これを実行するには、[衝突の幅スケール](Collide Width Scale)を0.7にセットします。

[液体シミュレーション](Liquid Simulation)には[液体半径のスケール](Liquid Radius Scale)があります。これは、パーティクルが互いに浸透する度合いに影響します。滑らかなサーフェスにしておけば、パーティクルが絡み合うときにたくさん重ねることができます。既定値の1は高すぎるので、0.5まで下げましょう。パーティクルをより重ね合わせると、グラスをいっぱいにするのに、より多くのパーティクルが必要になります。

[粘度](viscosity)は液体の動きを少し変更します。ハチミツやシロップのような粘り気のある液体では高めに、水などは低めにします。また、エミッタの[レート]を140フレーム以降でオフにして、永遠に注ぎ続けないようにしましょう。最初のシミュレーションを確認して、タイミングの調整が必要になるかもしれません。最終的な私の設定は図06を参照してください。

図06

図06

高速な再生を実現するため、シミュレーションをキャッシュしましょう。[nParticles]を選択した状態で、[nCache]>[新規キャッシュの作成](nCache > Create New Cache)オプションボックスをチェックします。ここに他のオプションと同様にディレクトリをセットします。私の好みは、[フレームごとに 1 ファイル](One File Per Frame)です。このオプションは予期しないクラッシュが起こっても、キャッシュ全体が壊れるリスクを回避して、正常なキャッシュのみ拾えます。また、キャッシュした後で、[アトリビュート エディタ]のキャッシュタブの下にcache description infoパネルが表示されます。ここでキャッシュ作成時のアトリビュートをすべて確認できるので、各キャッシュの設定を追跡するのに役立ちます。

この300フレームのシミュレーションは17分かかりました。最終的なパーティクル数は34,750です。

ムービー1

ムービー1

最初のシミュレーションの見た目は悪くありません。しかし、注いでいるボトルがずっと同じ位置あるのはおかしいので、アニメーションを追加したいと思います。同時に、グラスがもう少しいっぱいになるように、パーティクルの数を150,000くらいに増やしましょう。これは、140フレームで毎秒25,000のレートになります。また、[液体半径のスケール](Liquid Radius Scale):0.7に変更してシミュレーションを実行、ルックを確認してください。

私は380フレームでシミュレーション実行して、3時間5分かかりました(お使いのシステムに依存します)。全体のパーティクル数は144,791です。

ムービー2

ムービー2

メッシュを作成可能な素晴らしいシミュレーションを準備できました。[修正]>[変換]>[nParticlesをポリゴンに](Modify > Convert > nParticles to Polygons)をクリック、シーンにメッシュを作成できたら、パーティクルの表示をオフにしてビューポートを高速化してください。

最初は画面に何も表示されないか、いくつかのメタボールが表示されるかもしれません(図07)。

図07

図07

原因は三角形サイズが大きすぎるためです。その値はシーンのスケールに依存します。図08の値は私のシーンで調整したものです。

図08

図08

[しきい値](Threshold)と[メタボールの半径スケール](Blobby Radius Scale)は、パーティクル間でメッシュがブレンドされる度合いに影響します。[しきい値]はパーティクルの密度を基準としてメッシュを塞ぎます。

[メッシュの三角形サイズ](Mesh Triangle Size)は、メッシュに生成されるポリゴンのサイズに影響します。生成されるボクセルグリッドが[三角形の最大解像度](Max Triangle Resolution)の値よりも大きいときは、自動的に[メッシュの三角形サイズ]が変更されます。たとえば、[メッシュの三角形サイズ]を100に設定したときに、メッシュの1軸に沿った全幅が100ポリゴンを超えると、[メッシュの三角形サイズ]は自動的に変更されます。シミュレーション中に三角形サイズを変更した場合、フレーム間でメッシュの飛び出しを引き起こすことがあります。私はそのような問題を避けるため、[メッシュの三角形サイズ]をかなり高い値にセットしておきます。

[モーション ストリーク](Motion Streak)は、移動する方向に基づいてパーティクルの形を引き伸ばします。これはモーションブラーの作成において便利な機能です。[メッシュのスムージング反復](Mesh Smoothing Iterations)は滑らかなメッシュの作成をサポートします。

ローポリメッシュでの作業できるように、[メッシュ方法]で[四角メッシュ]を選択、[3]キーでメッシュをスムーズにしてください。また、[頂点単位の速度](Velocity Per Vertex)に必ずチェックを入れて、モーションブラーのレンダリングに備えましょう。最後にシェーダをジオメトリに適用し、ライトとフロアプレーンを追加、レンダリングを開始します(図09、10)。

図09

図09

図10

図10

ムービー3

ムービー3

編集部からのヒント:

Maya のパーティクルやエフェクトをさらに学習したいなら、
書籍『Maya ビジュアルエフェクト』をお勧めします。


オリジナルURL(英語):
http://www.3dtotal.com/tutorial/2030

翻訳:STUDIO LIZZ(TK)
編集:3DTotal.jp

※このチュートリアルは eBook『FX-Particles&Dynamics in Maya』(※英語ダウンロードPDF)から抜粋、翻訳したものです。


PAGE TOPへ