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

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

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

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

図05

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

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

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

図06

高速な再生を実現するため、シミュレーションをキャッシュしましょう。[nParticles]を選択した状態で、[nCache]>[新規キャッシュの作成](nCache > Create New Cache)オプションボックスをチェックします。ここに他のオプションと同様にディレクトリをセットします。私の好みは、[フレームごとに 1 ファイル](One File Per Frame)です。このオプションは予期しないクラッシュが起こっても、キャッシュ全体が壊れるリスクを回避して、正常なキャッシュのみ拾えます。

また、キャッシュした後で、[アトリビュート エディタ]のキャッシュタブの下にcache description infoパネルが表示されます。ここでキャッシュ作成時のアトリビュートをすべて確認できるので、各キャッシュの設定を追跡するのに役立ちます。

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

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

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

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

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

図07

原因は三角形サイズが大きすぎるためです。その値はシーンのスケールに依存します。図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

図10

完成ムービー

編集部からのヒント:

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

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


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