レッスン 3: 水のサーフェスを作成する
 
 
 

レッスンのセットアップ

説明どおりにレッスンを進めるために、レッスンを開始する前に次の手順を実行します。

  1. Liquid_Simulation_3.mb という名前のシーン ファイルを開きます。

    このファイルは、Maya プロジェクトとして設定した GettingStarted ディレクトリ内にあります。

    GettingStarted/nParticles/Liquid_Simulation_3.mb

    このシーンには、作成済みのテクスチャ マッピングされたモデルが含まれています。ここに用意されている机、ピッチャー、グラスはすべてポリゴン メッシュです。ピッチャーのメッシュは、机から持ち上がって傾き、グラスに水が注がれてからまた机の上に戻るようにアニメートされています。

nParticle をポリゴン メッシュに変換する

nParticle オブジェクトをポリゴン メッシュに変換して、他のポリゴンと同じように扱うことができます。たとえば、nParticle 出力メッシュでポリゴンのスムース操作を行うと、液体シミュレーションの精度や全体的な外観を改善できます。ポリゴン スムージングにより、出力メッシュのポリゴンの数が増えて、全体的な外観がより滑らかになります。

このチュートリアル全体を通して各シミュレーションを再生すると、ピッチャーのアニメーションが開始するまでに Particle が落ち着くのに若干時間がかかっているのがわかります。これは、シミュレーション済み nParticle に初期状態が設定されているため、nParticle が均衡状態に達してから、フレーム 1 で nucleus ソルバが開始されるからです。 フレーム 1 から 30,まで、nParticle はこのフォースに反応し、シミュレーション冒頭から 30 フレームまでの間に均衡状態に達します。ピッチャーを机から持ち上げて nParticle と重力フォースの間の均衡を乱すといった nParticle に作用するフォースがまったくないことに注目してください。

シミュレーションの初期状態を設定し、nParticle が均衡状態に達してからシミュレーションが開始されるよう指定できます。

nParticle の初期状態を編集するには

  1. シミュレーションを再生し、フレーム 30 またはその近くで停止します。
  2. アウトライナ(Outliner) キーを押しながら nParticle_Water を選択します。
  3. nSolver > 初期状態(nSolver > Initial State)を選択してからカレントから設定(Set From Current)を選択します。

  4. シミュレーションを開始フレームまで巻き戻します。

nParticle オブジェクトをポリゴン メッシュに変換するには

  1. アウトライナ(Outliner)nParticle_Water を選択します。
  2. 修正 > 変換 > nParticle をポリゴンに(Modify > Convert > nParticle to Polygons)を選択します。

    PolySurface1 オブジェクトがアウトライナに、新しいpolySurfaceShape ノードがアトリビュート エディタ(Attribute Editor)に表示されます。

  3. 新しいポリゴン オブジェクトの名前をアウトライナで変更し、PolySurface1 をダブルクリックして Water_Mesh と入力します。

  4. アトリビュート エディタ(Attribute Editor)で、nParticle_WaterShape タブを選択します。
  5. 出力メッシュ(Output Mesh)セクションで メタボールの半径スケール(Blobby Radius Scale)を 3.5 に設定します。

    シーン ビューで nParticle オブジェクトに nParticle 出力メッシュを重ねて表示します。

  6. 出力メッシュセクションのメッシュ方法(Mesh Method)リストから四角(Quads)を選択します。

    四角を選択すると、nParticle は四角を基本にしたポリゴン メッシュに変換されます。 nParticle オブジェクトは、4 面体(Tetrahedra)立方体(Cubes)鋭角 4 面体(AcuteTetrahedra)では三角メッシュに変換されます。四角を基本にしたポリゴン メッシュは、三角を基本としたメッシュよりもポリゴン スムージングに対する反応が良くなります。

  7. 次のしきい値(Threshold)の値で試してみてください。 シーンをドリー、タンブルして問題領域に接近して観察できるようにします。
    • しきい値を 0.2 に設定します。

      この値では、nParticle 出力メッシュは nParticle オブジェクトの衝突の幅を超えて拡張し、ピッチャーのメッシュの内壁を貫通します。

    • しきい値を 1.0 に設定します。

      この値では、nParticle 出力メッシュは nParticle オブジェクトに食い込み、nParticle の周囲にありません。

    • しきい値をデフォルトの 6.0 に戻してチュートリアルを続けてください。

  8. スムージングをメッシュの四角のコーナーに適用するには、メッシュのスムージング反復(Mesh Smoothing Iterations)を 2 に設定します。

作成した nParticle シミュレーションをキャッシュする

nParticle が出力メッシュに変換されているため、シミュレーションの再生速度がかなり落ちていることにお気づきでしょう。これは、nParticle とそれにコネクトしたコリジョンの計算が追加されたためです。しかし、nCache 機能を使用すると、シミュレーションをキャッシュしてシーンを最高速度で再生できます。

nParticle シミュレーションをキャッシュするには

  1. シミュレーションをキャッシュする前に、アウトライナ(Outliner)で Water_Mesh オブジェクトを選択し、ディスプレイ > 非表示 > 選択項目の非表示(Display > Hide > Hide Selection)を選択して非表示にしておきます。
  2. アウトライナで nParticle_Water を選択します。
  3. nCache > 新規キャッシュの作成(nCache > Create New Cache) を選択します。

  4. nCache の作成オプション(Create nCache Options)ウィンドウが表示されます。
  5. キャッシュ ディレクトリ(Cache Directory)に、キャッシュを保存するフォルダを設定します。キャッシュ名(Cache name)LiquidSimulationCache に設定します。作成(Create)ボタンをクリックします。シーンの再生が自動的に開始されて、指定したディレクトリにフレームが格納されます。再生が完了したら、アニメーション コントロールの再生ボタンをクリックします。さきほどよりもシーンの再生速度が上がっているのがわかります。ただし、nParticle アトリビュートの設定を変更した場合、変更を表示するための新しいキャッシュを作成する必要があります。

このレッスンの次のセクションでは、キャッシュしたシミュレーションを利用してシミュレーションの特定の領域を最適化します。

nParticle 液体シミュレーションを仕上げる

液体シミュレーションを仕上げるには、モーション ストリーク(Motion Streak)アトリビュートを設定して水を注ぐアニメーション シーケンスの間、nParticle のモーションを最適化します。また、海洋シェーダを追加し、水のサーフェスに透明度と反射のプロパティを付加します。

モーション ストリーク(Motion Streak)を設定するには

  1. タイムライン(Timeline)でフレーム 119 に移動し、シーンのドリーやタンブルを行ってグラスに注がれる水の nParticle をクローズアップします。
  2. アウトライナ(Outliner)Water_Mesh オブジェクトを選択して表示し、それからディスプレイ > 表示 > 選択項目の表示(Display > Show >Show Selection)を選択します。

    このフレームでは、グラスに注がれる液滴のメッシュが真球状態に近く、ほとんど水滴のように見えているのがわかります。これでは、グラスに注ぐときに連続して流れる水の動作に見えません。

  3. メッシュを連続して流れるオブジェクトにするには、モーション ストリーク(Motion Streak)アトリビュートを設定します。
  4. アトリビュート エディタ(Attribute Editor)で、nParticle_WaterShape タブをクリックします。
  5. 出力メッシュ(Output Mesh)セクションでモーションストリークを 0.150 に設定します。

    出力メッシュが新しい設定で更新されます。

    メッシュが水らしく見えるようになります。最後の手順として、nParticle 出力メッシュに海洋シェーダを適用し、水の透明度と反射のプロパティを設定します。

メッシュに海洋シェーダを適用するには

  1. シーン ビューで Water_Mesh オブジェクトを選択します。
  2. ウィンドウ > レンダリング エディタ > ハイパーシェード(Window > Rendering Editors > Hypershade)を選択して、ハイパーシェード ウィンドウを開きます。

    ハイパーシェード ウィンドウが表示されます。

  3. サーフェス(Surface)リストで海洋シェーダ(Ocean Shader)を選択します。
  4. 作業領域(Work Area)タブで oceanShader を右クリックし、マーカ メニューからマテリアルを選択項目に割り当て(Assign Material to Selection)を選択します。

    nParticle 出力メッシュが白く表示されます。海洋シェーダのエフェクトを表示するには、シミュレーションのフレームをレンダーする必要があります。

  5. レンダリング(Rendering)メニュー セットで、レンダー > カレント フレームのレンダー(Render > Render Current Frame) を選択します。

    カレント フレームがレンダリング イメージとしてレンダー ビュー(Render View)に表示されます。

レッスンを終えて

このレッスンでは、以下について学習しました。