====== 泡(Foam) と 飛沫(Splashes) ====== \\ \\ ===== 概要 ===== このページでは、液体(Liquid)シミュレーションに泡や飛沫を追加するためのチュートリアルを紹介しています。 {{ :chaosgroup:phoenixfdmaya:render_image.jpg |}} \\ ===== 手順 =====a 可能であれば、エミッタを現実世界と同じスケールで構築してください。Phoenix FDは現実をシミュレートしてエフェクトを作成するため、実世界の単位で作業すると作業がはるかに簡単になります。 \\ \\ このチュートリアルを行うには、シンプルなLiquidシミュレーションをまず作成する必要があります。 ---- Simulatorノードを選択した状態で、**Foam**タブに移動し、**Enable Foam**をONします。Particle Shaderを生成するかどうかを確認するメッセージボックスが表示されます。**[Yes]**を選択します。 {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_01.png |}} \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_02.png |}} \\ \\ アウトライナーには新しくシェーダ、セット、セット内のパーティクルグループの3つのアイテムが現れました。 \\ \\ \\ シェーダノードの名前を**phx_foam_shader_01**に変更します。シェーダはフォームパーティクルのシェーディングパラメータを含んでいます。パーティクルのレンダリングモードを選択したり、サイズや数を調整したり、モーションブラーを有効/無効にすることができます。 \\ \\ \\ セットの名前を**phx_foam_set**に変更します。このセットは、レンダリング時にシェーダがシェーディングを担当するパーティクルグループを指定するために使用されます。場合によっては、同じシェーダの影響を受ける複数のパーティクルグループや、同じパーティクルグループに影響を及ぼす複数のシェーダを持つことができます。 \\ \\ phx_foam_setを展開し、内部のノードの名前を**pg_foam**に変更します。シミュレーションでは、パーティクルグループをパーティクルの参照として考えることができます。 \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_03.png |}} \\ \\ Phoenix FDシミュレーターが出力できるパーティクルには、Liquid、Foam、Splash、Mist、Dragの5つのグループがあります。 \\ \\ Foam、Splash、およびMistパーティクルは、パーティクルシステムセットのパーティクルを参照するカスタムPhoenix FD Particle Shaderを使用してレンダリングされます。 \\ \\ ---- Simulatorノードの**Foam**タブで、**Foam Amount**を1に減らします。このパラメータは、指定されたボクセルが条件を満たすときに生成されるFoamパーティクルの数を1秒あたり千単位で指定します。 \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_04.png |}} \\ \\ **Birth Threshold**を2に下げます。 \\ \\ **Birth Threshold**は、LiquidがFoamを発生するのに十分に乱れていると考えられる速度のしきい値を指定します。Foamは下の3つの状況下でのみ発生します。 - Liquidが乱れて移動している時 - SplashパーティクルがLiquidに衝突する時 - エミッターがシミュレーションにFoamパーティクルを加えている時 \\ \\ **Outside Life**パラメータには、パーティクルがシミュレーショングリッドの外側で残る秒数を指定します。 \\ \\ **Size**パラメータはFoamパーティクルのサイズを制御します。Particle Shaderを使用してレンダリング時にこれらの値をオーバーライドすることは可能ですが、**B2B(bubble to bubble)Interaction**はそれらに依存しているため、適切な値に設定することをお勧めします。 \\ \\ **B2B Interaction**は、気泡間の内部相互作用を制御します。このオプションは気泡にボリュームが必要な場合に使用します。この距離の間にある気泡を強制的にくっつけます。炭酸飲料やビールのシミュレーションを行うときに非常に便利です。シェルフのBeerプリセットには、非常に具体的な**B2B Interaction**の設定がいくつかあります。 \\ \\ **Variation Small / Large**パラメーターは、**Size**パラメーターに関連して気泡がどれくらい小さいか大きいかを指定します。 0は、すべての気泡が常に少なくともsize パラメーターで指定したサイズになることを意味します。 1は、最も小さい/大きい泡がSizeの値の2倍小さい/大きいことを意味します。 \\ \\ **Distribution**は、最も小さい気泡の数が最も大きな気泡の数を超える回数を指定します。 \\ \\ ---- シミュレーションを開始して結果を確認します。 \\ \\ シミュレータの**[Preview] - > [Particle Preview]**タブに移動して、**[Show Selected System]**をオフにして、Liquidのパーティクルのプレビューを無効にすることができます。これにより、特定のパーティクルタイプを分離し、その動作のトラブルシューティングをすることができます。 \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_05.png |}} \\ \\ ---- **Splash/Mist**タブに移動し、**[Enable Splash/Mist]**をオンにします。新しいParticle Shaderを生成するかどうかを尋ねるメッセージが表示されたら、[Yes]を選択します。 \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_06.png |}} \\ \\ 生成されたノードの名前を**phx_splash_shader_01**、**phx_splash_set**、および**pg_splash**に変更します。 \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_07.png |}} \\ \\ 設定をデフォルト値のままにします。 \\ \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_14.png |}} \\ Phienix FDでのSplash(飛沫)のコンセプトは、Foamよりも少し複雑です。簡単に言えば、Liquidの表面が変形すると、splashが発生します。\\ **Birth Threshold**パラメータの値が低いほど、Liquidの表面とする部分が多くなり、Splashが発生します。 \\ \\ SplashパーティクルはLiquidから生成されます。つまり、Liquidが消失したところにSplashパーティクルが生成されます。次に、スプラッシュパーティクルが水の本体に戻ってくると、それをLiquidに変換します(**Affect Liquid**パラメーターによって制御されます)。 \\ \\ **Splash Amount**は、1つのLiquidパーティクルの体積に等しい数のSplashパーティクルを決定します。この値はパーティクルサイズにも影響します。値を大きくするとSplashパーティクルのサイズが小さくなります。 \\ \\ Splashパーティクルは、Liquidの表面に当たったときにFoamを生成することもあります。**Foam on Hit**パラメータはこの動作を制御します。 \\ \\ 最後に、Splashパーティクルは空中でMistパーティクルに分割されます。その間、Splashパーティクルは常にMistパーティクルを生成し、Splashの体積を減少させます。**Split to Mist**パラメータは、SplashパーティクルがMistに変換される速度を制御します。 \\ \\ ===== Mist(霧)シェーダーのセットアップ ===== チェックボックスには**[Enable Splash/Mist]**と表示されていますが、実際にはSplashのParticle Shaderだけが自動的に生成されます。ミストをレンダリングする場合は、次の手順を実行します。 \\ \\ まず、Phoenix FDメニューから新しい**Particle Shader**を作成します。 \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_08.png |}} \\ \\ **Mode**を**Point**に設定します。 \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_12.png |}} \\ \\ シェーダノードの名前を**phx_mist_shader_01**に変更し、生成されたセットを**phx_mist_set**に変更します。 \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_09.png |}} \\ \\ この時はまだセットの中が空であることに注意してください。パーティクルグループを手動でセットに追加し、シミュレータノードをシェーダに接続する必要があります。 \\ \\ ---- シミュレータを選択し、MistシェーダをShift選択して、Mistシェーダのアトリビュートエディタウィンドウで**[ Set Selected Object ]**ボタンをクリックします。 \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_10.png |}} ---- Simulatorを選択した状態で、ウィンドウ - > ノードエディタに移動します。シミュレータの入力/出力接続をグラフ化し、「PG_ ... _Mist」というノードを見つけます。そのノードをマウスのミドルボタンでphx_mist_setにドラッグするとMistシェーダーはそれを認識します。 \\ 次に、それを**pg_mist**に名前を変更して、一貫性を保ちます。 \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_11.png |}} \\ ---- phx_mist_shader以外のすべてのPhoenix FDノードを非表示にします。 \\ \\ レンダリングを開始するとポイントとしてレンダリングされたMistパーティクルを見ることができます。 {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_result.png |}} \\ \\ ---- これで、Foam、Splashes、Mistで作業中のパーティクルをセットアップできたはずです。SimulatorのプロパティとParticle Shaderのアトリビュートを使ってシミュレーションを開始することで、すべてがどのように結びついているかをよく理解できます。 \\ \\ {{ :chaosgroup:phoenixfdmaya:addingfaamandsplashes_13.png |}} \\