====== ガソリン爆発クイックスタート ======
このページでは、Phoenix FDでMaya用のガソリン爆発シミュレーションを作成するためのステップバイステップガイドを提供しています。
===== 前書き =====
このチュートリアルでは、Maya用のPhoenix FDにガソリンなどの燃焼促進剤を使用して激しい爆発を起こす方法を示します。ツールバーのプリセットを使用したり、あるいは手動で、このタイプのシミュレーションの詳細を習得します。
\\
このチュートリアルを終えると、独自にガス爆発シミュレーションを作成したり、シミュレーションの基本設定の編集の基礎を知ることができます。
\\
以前のクイックスタートのBasic Liquids QuickStartを確認していない場合は、このクイックスタートを完了する前に確認してください。
\\
このチュートリアルを進めるには、Phoenix FD for Mayaプラグインがインストールされている必要があります。YouTubeに投稿されたクイックスタートビデオと照らし合わせながら進めてください。
\\
{{ youtube>L_UwP61dqis?large }}
\\
\\
===== チュートリアルアセット =====
このチュートリアルで使用するファイルをダウンロードするには[[https://docs.chaosgroup.com/download/attachments/27430978/Barrels_start.ma?version=1&modificationDate=1490119955000&api=v2|ここ]]をクリックしてください。
\\
\\
===== 手順 =====
クイックプリセットを使用することから始め、次に手動でのシミュレーションのセットアップ方法を学びます。
==== Gasoline Explosion Preset(ガソリンの爆発) ====
\\
空のシーンから始めて、シミュレーションのソースとなる球を作成します。**半径(Radius)**を24に設定します。
\\
{{ :chaosgroup:phoenixfdmaya:01createsphere.png?600 |}}
\\
\\
球が選択された状態で、Phoenix FDシェルフから**Gasoline Explosion**プリセットをクリックします。これにより、球体をソースとしてシミュレーションコンテナが作成されます。
\\
{{ :chaosgroup:phoenixfdmaya:preset_presetbutton.png |}}
\\
\\
**Start** Simulationアイコンをクリックすると、Phoenixがガソリンの爆発をシミュレートし始めます。
\\
{{ :chaosgroup:phoenixfdmaya:startsim.png |}}
\\
\\
シミュレーション結果がはっきり見える十分なフレームまで進んだら、停止アイコンを使用してシミュレーションを停止します。見事にディティールのある爆発が生成できました。
\\
{{ :chaosgroup:phoenixfdmaya:stopsim.png |}}
\\
{{ :chaosgroup:phoenixfdmaya:preset_result.png |}}
\\
\\
\\
==== マニュアルでの炎のセットアップ ====
ワークフローをより詳しく見るために、このシミュレーションを手動で設定する方法を見てみましょう。simulatorを選択した状態で、シェルフ内の**Clear simulator cache**アイコンをクリックして、シーンからキャッシュを削除します。
\\
\\
{{ :chaosgroup:phoenixfdmaya:deletecache.png |}}
\\
\\
SimulatorとFire Sourceノードを選択して削除し、シーン内に球だけを残します。
\\
\\
PhoenixFDのシェルフから、**Create Phoenix FD Fluid Simulator**アイコンをクリックし、ビューポートをクリックドラッグして、球囲むようにボリュームの幅と奥行きを決めます。次に、再度クリックして高さを定義します。
\\
{{ :chaosgroup:phoenixfdmaya:simulatorbutton.png |}}
\\
{{ :chaosgroup:phoenixfdmaya:drawsimulator.png?600 |}}
\\
\\
**Simulator**を選択し、アトリビュートエディタで**Grid**セクションを開き、**Units**を**meter**に変更して、シミュレーションが大規模な爆発になるようにします。これにより、球は24メートルまたは約72フィートの幅になります。
\\
{{ :chaosgroup:phoenixfdmaya:manual_meterunit.png |}}
\\
\\
シミュレーションオブジェクトが適切な実世界のスケールに設定され、シミュレーションがその状況に合っていることが重要です。
\\
\\
シミュレーションのスケーリングを抑える為に**Scene Scale**を1.0に設定します。シミュレーションは約190x148x100メートルとかなり大きくなっていますが、このタイプのシミュレーションに適したサイズです。
\\
\\
球の中心をより中央にくるように移動します。
\\
{{ :chaosgroup:phoenixfdmaya:recentersphere.png?600 |}}
\\
\\
シミュレータのボリュームが設定されたので、次にソースを定義する必要があります。シェルフ内の**Create Fire / Smoke Source**アイコンをクリックし、シーンの片側に配置します。
\\
{{ :chaosgroup:phoenixfdmaya:manual_createfiresource.png?600 |}}
\\
{{ :chaosgroup:phoenixfdmaya:manual_createfiresourceviewport.png?600 |}}
\\
\\
球を選択してから、Fire SourceをShiftを押しながら選択し、アトリビュートエディタで**Add Selected Objects**をクリックします。これで球体を爆発のエミッタとして指定できました。
\\
\\
{{ :chaosgroup:phoenixfdmaya:manual_addsourceselect.png?600 |}}
\\
{{ :chaosgroup:phoenixfdmaya:manual_addsourceui.png |}}
\\
ソースノードは、それぞれのシミュレーション設定を制御します。それを選択した状態でアトリビュートエディタに移動し、**Temperature**と**Smoke**のオプションをオフにして **Fuel**をオンにします。
\\
\\
{{ :chaosgroup:phoenixfdmaya:manual_fluid_20discharge.png |}}
\\
**Discharge**アトリビュートは放出される流体の速度を制御します。この値を大きくすると、より多くの流体がシミュレーションに放出されます。爆発を起こしているので、短時間で大量の流体を放出する必要があります。そのために放出をアニメートさせます。フレーム1に移動して**Discharge**を2200にしてキーフレームを設定します。次のフレームに移動し、**Discharge**のキーフレームを0.0にします。
\\
{{ :chaosgroup:phoenixfdmaya:manual_dischargeframe1.png?400 |}}
\\
1フレーム目に設定されたキー
{{ :chaosgroup:phoenixfdmaya:manual_dischargeframe2.png?400 |}}
\\
2フレーム目に設定されたキー
\\
\\
Simulatorを選択し、アトリビュートエディタで**Fuel**を開き、**Enable Burning**をオンにします。
\\
{{ :chaosgroup:phoenixfdmaya:enableburning.png |}}
\\
\\
**Grid**を開き、**Total Cells**のカウントが3.53億を超えていることに着目してください。**Cell Size**を1.5に増やして、シミュレーションの全体的な解像度を下げて高速化します。これにより、**Total Cells**を約840,000に減らすことができました。
\\
{{ :chaosgroup:phoenixfdmaya:manual_reducecellsizebefore.png?300 |}}
前
{{ :chaosgroup:phoenixfdmaya:manual_reducecellsize.png?300 |}}
後
\\
\\
**Fuel**を開いてください。**Ignition Temperature**は、燃料が発火して燃焼する温度です。Phoenix FDはシミュレーションのデフォルト温度として300K(ケルビン)を使用しています。したがって、290など値をわずかに下回る値に設定すると、燃料がボリューム内で発火します。再びシミュレーションを開始すると、爆発が始まります。
\\
{{ :chaosgroup:phoenixfdmaya:manual_reduceignitiontemp.png |}}
\\
\\
この時点ではまだ正しく爆発しているように見えません。シミュレータボリュームのエッジで爆発がクリッピングされ、プレビューのクオリティが非常に低いです。
{{ :chaosgroup:phoenixfdmaya:manual_clippinglowpreview.png |}}
プレビューのクオリティを修正するには、**Preview**を展開し、セクションの下までスクロールします。**GPU Shade Preview**サブセクションの**Enable GPU Preview**をONにします。
\\
{{ :chaosgroup:phoenixfdmaya:manual_enablegpushade.png |}}
\\
\\
**Grid**の設定に戻り、**Adaptive Grid**を**Temperature / Liquid**に変更します。これにより、指定されたThresholdを超える流体の温度に応じてグリッドボリュームが自動的に拡張されます。**Threshold**を800に設定し、シミュレーションを開始します。
\\
{{ :chaosgroup:phoenixfdmaya:manual_adaptivegrid.png |}}{{ :chaosgroup:phoenixfdmaya:startsimagain.png?400 |}}
\\
\\
煙のクリッピングが発生した場合、**Adaptive Grid**を**Smoke**にして**Threshold**を0.02に設定します。
\\
{{ :chaosgroup:phoenixfdmaya:manual_adaptivegridallopen.png |}}
\\
\\
グリッドは必要に応じて拡張され、早めにクリッピングを防ぐことができます。しかし、シミュレーションは現在すべての方向に拡大しています。爆発が、地面が存在する可能性のある底面と相互作用できるように、拡張を制限することができます。
\\
\\
\\
シミュレーションを止め、最初のフレームに戻ります。**Boundary Conditions**の**Y**軸を**Jammed(-)**に設定します。これにより、爆発がボリュームの底面(地面を表す)と作用することが可能になります。
\\
{{ :chaosgroup:phoenixfdmaya:manual_gridjamy.png |}}
\\
\\
再びシミュレーションすると改善された結果を示しますが、その効果はあまりにも均一です。
\\
{{ :chaosgroup:phoenixfdmaya:manual_gridjamyresult.png?600 |}}
\\
\\
**Dynamics**を開き、**Conservation**セクションを見てください。**Quality**アトリビュートの値を増やすことで、爆発シミュレーションはもう少し広がり、うねりが良くなります。この値を80に設定します。値が大きいほど、シミュレーション時間が長くなりますので、あまり高く設定しすぎないように注意してください。
\\
**Uniform Density**をオンにすると、シミュレーションは流体の質量を無視します。これは煙や爆発に役立ちます。次に、**Steps Per Frame**を減らして、シミュレーション時間を短縮します。
\\
{{ :chaosgroup:phoenixfdmaya:dynamicsconservation.png |}}
\\
\\
シミュレーションを開始すると、均一性が少しばらつき始めますが、まだ十分ではありません。
\\
{{ :chaosgroup:phoenixfdmaya:manual_dynamicsconservationresults.png?600 |}}
\\
\\
次に、シミュレーションにノイズを追加します。Sourceオブジェクトを選択し、**Fluid Discharge**を開き、**Noise**の値を10に増やします。もう一度シミュレーションすると爆発の形がより崩れます。
\\
{{ :chaosgroup:phoenixfdmaya:manual_addnoise.png?500 |}}
{{ :chaosgroup:phoenixfdmaya:manual_addnoiseresult.png?500 |}}
\\
\\
現在の結果では、煙が多いです。シミュレーションを燃えるようなな外観にするために、煙を少し減らしてみましょう。**Fuel**を開き、**Smoke Amount**を0.4に減らしより明るい炎のためにより多くの燃焼を可能にします。スモークになる燃料の量を減らすには**Smoke Threshold**を1.0に上げます。
\\
最後に、**Propagation**の値を2に下げて、燃料がシミュレーションを伝播する速さを減らします。
\\
{{ :chaosgroup:phoenixfdmaya:manual_reducesmoke.png |}}
\\
\\
シミュレーションを再開すると、より良い結果が得られます。今のシミュレーションでは、あまりにも爆発しすぎです。
\\
{{ :chaosgroup:phoenixfdmaya:manual_reducesmokeresults.png?600 |}}
\\
\\
**Energy**を5に減らして爆発性を減らしてください。**Fuel Depletion**を0.8に減らし、燃料が燃える速度を遅くします。
\\
{{ :chaosgroup:phoenixfdmaya:manual_reduceexplosiveness.png |}}
\\
\\
シミュレーションを再スタートすると、結果は大規模な爆発によく似ています。
\\
{{ :chaosgroup:phoenixfdmaya:manual_reduceexplosivenessresult.png?600 |}}
\\
\\
これで一般的な爆発エフェクトを作れるようになりました。より高品質な結果を得るために解像度を上げましょう。**Grid**を開き、**Cell Size**に0.75と設定し爆発を再シミュレーションします。フレームあたりのシミュレーション時間の増加に注意してください。
\\
{{ :chaosgroup:phoenixfdmaya:manual_decreasecellsize.png |}}
{{ :chaosgroup:phoenixfdmaya:manual_decreasecellsizeresult.png |}}
\\
\\
次に、シミュレーションのレンダリング方法の改善に焦点を当てます。**Rendering**から、**Fire**サブセクションを開いてください。ルックの一部を制御する**Fire Opacity Mode**には3つのオプションがあることに注意してください。今回は**Use Own Opacity**を選択します。
\\
{{ :chaosgroup:phoenixfdmaya:manual_firerenderopacity.png |}}
\\
\\
ここのグラフは、炎の不透明度を制御しています。ダブルクリックしてカーブに新しいポイントを追加します。点を下にドラッグすると、炎の不透明度が下がり、内部が明らかになり、火が明るく見えるようになります。点を上にドラッグすると不透明度が上がり、内部構造の多くを隠すことができます。**Expand**ボタンをクリックすると、別のウィンドウにグラフのより大きなバージョンが表示されます。いくつかの新しいポイントを追加し、下のグラフに示すような波型のカーブを作成します。これにより、爆発に面白みが増します。
\\
{{ :chaosgroup:phoenixfdmaya:manual_firerendergraphexpanded.png?600 |}}
\\
\\
しかし、これは煙を間引いて表示したものです。**Smoke Opacity**を開き、**Simple Smoke Opacity**の値を0.9に設定します。これは、シミュレーションの段階でより厚い煙を生成します。
\\
{{ :chaosgroup:phoenixfdmaya:manual_smokerenderopacity.png?600 |}}
\\
\\
**Smoke Color**を開き**Constant Color**に濃い灰色を設定し深く、暗い煙を生成します。
\\
{{ :chaosgroup:phoenixfdmaya:manual_smokerendercolor.png?600 |}}
{{ :chaosgroup:phoenixfdmaya:smokerendercolorresult.png?600 |}}
\\
\\
**External Scatter Multiplier**を0.5に減らして、煙の中の光が散乱しないようにします。煙が少し暗くなることに気付くはずです。
\\
{{ :chaosgroup:phoenixfdmaya:manual_smokerendercolorexternalscatter.png?600 |}}
{{ :chaosgroup:phoenixfdmaya:manual_smokerendercolorexternalscatterresult.png?600 |}}
\\
\\
シミュレーションの炎はかなり明るいです。**Fire**を開き、**Opacity Multiplier**を0.3に設定すると炎はさらに明るくなります。
\\
{{ :chaosgroup:phoenixfdmaya:manual_fireopacity.png |}}
\\
\\
**Physically Based**の値を0.7などの値に下げると、より多く赤とオレンジの色が炎に追加されます。スライダは、物理ベースのブラックボディシェーダを使用して計算された値と、カーブで描いたグラデーションとのバランスをとります。
\\
\\
\\
**Fire Multiplier**を5.0に増やすと、爆発の中でより多くの炎が発生します。
\\
{{ :chaosgroup:phoenixfdmaya:manual_firemultiplier.png |}}
{{ :chaosgroup:phoenixfdmaya:manual_firemultiplierresult.png?600 |}}
\\
\\
次に、爆発のエリアがどれだけ速く冷却されるかを調整しましょう。**Dynamics**を開き、**Cooling**の値を0.3に増やします。この変更はシミュレーションの動作に影響するため、再度爆発をシミュレートする必要があります。
\\
{{ :chaosgroup:phoenixfdmaya:manual_cooling.png |}}
\\
\\
**Grid**の設定から、シミュレーションを高速化する為に**Cell Size**を1.5に増やし解像度を減らし、シミュレーションを再開します。
\\
{{ :chaosgroup:phoenixfdmaya:manual_increasecellsize.png |}}
\\
\\
新しい変化を見るために十分にシミュレーションさせてください。レンダリング設定で**V-Ray**を有効にし、フレームをレンダリングします。
\\
{{ :chaosgroup:phoenixfdmaya:vrayrenderer.png |}}
\\
{{ :chaosgroup:phoenixfdmaya:manual_render1defaultlights.png?600 |}}
\\
\\
このレンダリングでは、Mayaのデフォルトライトがシーンに影響を与えることが明らかになりました。レンダリング設定で、**Overrides**タブに移動し、**Lighting** を開き、**Default lights**をオフにします。
\\
{{ :chaosgroup:phoenixfdmaya:manual_disabledefaultlights.png |}}
\\
\\
もう一度レンダリングして、煙が炎のみで照らされることに注意してください。
\\
{{ :chaosgroup:phoenixfdmaya:manual_render2nodefaultlights.png?600 |}}
\\
\\
次に地面を追加しましょう。**Create**メニューから**V-Ray > Create V-RayPlane**を作成してください。ボリュームグリッドより下になるように少し下に移動します。再びレンダリングし、爆発によって地面を照らします。現在、地面への照明が多すぎます。
\\
{{ :chaosgroup:phoenixfdmaya:manual_addvrayplane.png?600 |}}
\\
{{ :chaosgroup:phoenixfdmaya:manual_render3planeadded.png?600 |}}
\\
爆発からの照明を減らすには、Simulatorを選択し、**Rendering**からで**Fire Lights**開きます。**Light Power on Scene**の値を0.4 に減らしてください。
\\
{{ :chaosgroup:phoenixfdmaya:manual_reducefirelights.png |}}
\\
{{ :chaosgroup:phoenixfdmaya:manual_render4lightreduced.png?600 |}}
\\
**Grid**セクションに移動し、**Cell Size**を0.75に戻してシミュレーションの解像度を上げ、シミュレーションを再開して、この爆発が高品質に計算されることを確認します。
\\
{{ :chaosgroup:phoenixfdmaya:finalresult.png?600 |}}
\\
\\
\\
==== 実際の例にシミュレーションセットアップを適用する ====
上記のチュートリアルアセットセクションで提供されているBarrels_start.maファイルを開きます。sunlightが当たったシーンに3つのドラム缶とcamera1というレンダリングカメラがあります。左端の最初のドラム缶を選択し、シェルフの**Gasoline Explosion**プリセットを選択します。**Cell size**を3.0に設定すると、シミュレーションがより早くなります。
\\
{{ :chaosgroup:phoenixfdmaya:barrels_cellsize3.png |}}
\\
\\
シミュレーションを開始するとドラム缶が爆発!
\\
{{ :chaosgroup:phoenixfdmaya:barrels_1preset.png?600 |}}
\\
\\
他のドラム缶も爆発させましょう。シミュレーションを止め、パース ビューで見てください。Sourceロケータオブジェクトを選択し、Ctrl + Dキーを押して複製し、少し移動して元のオブジェクトと重ならないようにします。右端のドラム缶を選択し、複製したSourceをシフト選択して、この新しいソースに**Add Selected Objects**をクリックします。
\\
{{ :chaosgroup:phoenixfdmaya:barrels_secondsourceviewport.png?600 |}}
\\
ビューポートでの選択
{{ :chaosgroup:phoenixfdmaya:barrels_secondsourceui.png |}}
\\
2つ目のソースにアトリビュートエディタでオブジェクトを追加
\\
今シムを始めると、両方のドラム缶がまったく同じ時間に爆発し始めます。最初の爆発がこの2つ目の爆発を引き起こすかのように見せるために、2つ目のドラム缶の爆発をずらします。
\\
{{ :chaosgroup:phoenixfdmaya:barrels_2barrelsync.png?600 |}}
\\
\\
2つ目のソースを選択し、5フレーム目の**Discharge**のキーフレームを0.0に設定します。6フレーム目で、**Discharge**に3000とキーフレームを設定します。フレーム7で、もう一度**Discharge**を0.0に戻します。シミュレーションを実行すると、最初の爆発が2回目の爆発を引き起こすことがわかります。
\\
{{ :chaosgroup:phoenixfdmaya:barrels_2barreloffset.png?600 |}}
\\
\\
今度は、3つ目のドラム缶を爆発に追加します。シミュレーションを止めましょう。2番目のソースをCtrl + Dで複製し、1フレーム目に移動します。中央のドラム缶を選択し、3番目のソースをShiftを押しながら選択し、**Add Selected Objects**をクリックします。
\\
{{ :chaosgroup:phoenixfdmaya:barrels_thirdsourceviewport.png?600 |}}
\\
\\
3つ目のドラム缶は**Discharge**が既に0.0に設定されていることに注意してください。Mayaではオブジェクトを単純に複製するとキーフレームは複製されません。
\\
{{ :chaosgroup:phoenixfdmaya:barrels_thirdsourcenoinitialdischarge.png?600 |}}
\\
\\
40フレーム目に移動し、3番目のソースの**Discharge**を0.0にします。41フレーム目で3000を入力し、42フレーム目で**Discharge**を0.0に戻します。シミュレーションを開始して最初の2つのドラム缶の爆発が収まり始めると再び3つ目の爆発が起こる様子を見ることができます。
\\
{{ :chaosgroup:phoenixfdmaya:barrels_3barreloffset.png?600 |}}
\\
\\
フレームをレンダリングして結果を確認してみましょう。
\\
{{ :chaosgroup:phoenixfdmaya:barrels_initialrender_frame55.png?600 |}}
\\
\\
Simulatorを選択し、**Cell Size**を1.5に戻してシミュレーションを再開し、より詳細なシミュレーションを行います。
\\
{{ :chaosgroup:phoenixfdmaya:barrels_3barrelcellsize.png |}}
\\
{{ :chaosgroup:phoenixfdmaya:barrels_3barrelhighres.png?600 |}}
\\
最終的にレンダリングされたシーンのルックは次のとおりです。
{{ :chaosgroup:phoenixfdmaya:realworldexamplefinalresult.png?600 |}}