火山の噴火をVFXで作成する

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

火山は、地殻内のクレーターで、マグマや溶解したガスからの内部圧力によって溶岩や煙を噴出します。ゲームでは、プレイヤーが溶岩や溶岩の危険と貴重な資源、ボスバトルアリーナ、または火山が周期的に噴火することで動的に変化する環境の危険をバランスさせなければならない挑戦的なゲームプレイエリアに火山が含まれることがよくあります。

Volcano Island - Start .rbxlファイルを出発点として、Volcano Island - Completeを参照し、このチュートリアルでは、環境を火山の噴火に変える方法を示します。リアルな物理的挙動を表すカスタムライティングとVFXオブジェクトを含む、以下のガイダンスがあります。

  • 参照資料を個々のコンポーネントに分解し、明確な視覚的および行動的特性を持たせる。
  • 表面の波紋を設定して、熱い流体が表面に上昇し、カルデラの表面を乱す様子を模倣する。
  • 溶岩がカルデラから飛び散り、さまざまなタイプの溶岩の粘度状態を模倣する。
  • 煙の噴煙を設定して、プレイヤーの注意を引く厳しい不純物が空に上昇する様子を模倣する。
このチュートリアルを完了するために使用できる開始火山の地形。
Volcano Island - Start
このチュートリアルの終わりに作成するVFXオブジェクトを持つ完全な火山。
Volcano Island - Complete

参照を分解する

信頼性のある火山を作成するためには、デザインプロセスで実際の火山の噴火を参照することが重要です。これにより、主題を明確な視覚的および行動的特性を持つ個々のコンポーネントに分解できます。たとえば、サンプルのVolcano Island - Completeゲームは、カルデラとその周囲の地形に関連するすべてのテクスチャとVFXデザインの決定を通知するためにアイスランドの火山の噴火を参照しています。

アイスランドの火山の噴火の遠景。

火山が噴火している様子を個々のコンポーネントに分解することは、さまざまなVFXオブジェクトを利用してそれらの実世界の対応物を模倣する方法を計画するのに役立ちます。このチュートリアルでは、サンプル火山を5つのユニークなコンポーネントに分解します。

  • 表面の波紋 – カルデラの表面にある小さな溶岩の波。
  • 火の粉 – カルデラから空に上昇する小さく軽い溶岩の破片。
  • 溶岩の飛沫 – 火山内部の圧力によってカルデラから噴出する薄い溶岩。
  • 溶岩の流れ – カルデラから流れ出る粘性のある溶岩。
  • 煙の噴煙 – カルデラから空に上昇する温かい、膨らんだガス。
すべての5つのコンポーネントが強調表示された火山の噴火の参照。
参照画像と最終結果を比較するために同じ5つのコンポーネントが強調表示されたサンプルの火山の噴火。

次のセクションでは、これらの各コンポーネントを再現するために使用できるさまざまなデザイン決定と技術の詳細な分析を提供します。これらの決定を確認し、さまざまなライティング、ParticleEmitter、およびBeamプロパティを実験することで、ライティングとVFXを利用して自分のゲームのユニークな環境要件を解決する方法を学びます。

ライティングを設定する

環境要素をゲーム内の興味のポイントにするためには、全体の環境に対してコントラストを高めて、プレイヤーが探索すべき何かとして際立たせることが重要です。たとえば、プレイヤーをカルデラに引き込むために、火山の溶岩が他の暗い環境の中で唯一の光源として輝いて見えるようにライティングソースを設定できます。

Studioは、この技術に使用できる2つの高レベルのライティングソースを提供します。

  • グローバルライティング - 屋外環境全体のライティングを生成します。
  • ローカルライティング - ゲーム内で配置した場所の周囲のライティングを生成します。

このチュートリアルのこのセクションでは、火山の噴火をシーン内で最も重要な興味のポイントにするために、両方のタイプのライティングソースを利用する方法を教え、環境ストーリーテリングのためにドラマチックな効果を作成します。たとえば、カスタムライティングなしの同じ最終火山が、他の明るい環境の中で目立たない危険のように感じられる一方で、カスタムライティングのある火山は、暗く憂鬱な環境の中で危険な存在のように感じられます。

デフォルトの光源を持つサンプルの火山の噴火の完全版。
デフォルトの光源あり
カスタム光源を持つサンプルの火山の噴火の完全版。
カスタム光源あり

ローカルライティング

ローカルライティングは、ゲーム内のローカル光源からの光です。たとえば、SpotLightSurfaceLight、およびPointLightオブジェクトなどです。ローカルライティングは、火山に追加することが重要です。なぜなら、ParticleEmitterBeamのテクスチャに明るさを適用できますが、カルデラとその流れる溶岩が実際の世界で環境を照らす方法をリアルにシミュレートするために、峡谷全体に十分な光を満たすことはできないからです。

ローカルライティングなしのサンプルの火山の噴火の完全版。
ローカルライティングなし
ローカルライティングを持つサンプルの火山の噴火の完全版。
ローカルライティングあり

このチュートリアルでは、ローカルライティングをグローバルライティングの前に設定することが役立ちます。なぜなら、ローカル光源がないと、VFXオブジェクトを設定するための3D空間を見ることができないからです。しかし、一般的なワークフローでは、VFXオブジェクトに対する変更の効果を見るために、ローカルとグローバルライティングの両方を同時に反復する必要があるため、自分のゲームのデザイン要件に柔軟であることが重要です。

サンプルのVolcano Island - Completeプレースファイルの火山のローカルライティングを再現するには:

  1. Explorerウィンドウで、すべてのローカル光源オブジェクトを含むフォルダーWorkspaceに作成し、フォルダーの名前をLocalLightingに変更します。

  2. LocalLightingフォルダーに3つのブロックパーツを挿入し、それぞれの名前をLightCalderaLightMagmaLightOutflowに変更します。

  3. パーツを火山全体を照らす位置に移動します。

    1. LightCalderaをカルデラと崖の間の中心に移動します。
    2. LightMagmaをカルデラと溶岩流出の間の亀裂の中心に移動します。
    3. LightOutflowを流出が2つの流れに分かれる少し上に移動します。
    火山の谷全体に配置された3つのブロックパーツの前面ビュー。
  4. 各パーツにPointlightを挿入します。

    3つのブロックパーツにポイントライトの視覚的補助がある火山の前面ビュー。
  5. LightCalderaPointLightを選択し、Propertiesウィンドウで、

    1. Brightness15に設定して光源を明るくします。
    2. Color255, 85, 0に設定して光を暗いオレンジ色にします。
    3. Range60に設定してカルデラエリア全体を照らします。
    カルデラに最も近いブロックパーツがオレンジの光を放つ火山の前面ビュー。
  6. LightMagmaLightOutflowPointLightを選択し、Propertiesウィンドウで、

    1. Brightness2に設定して光源を少し明るくします。
    2. Color255, 81, 0に設定して光をオレンジ色にします。
    3. Range50に設定して亀裂と流出エリアを照らします。
    オレンジの光を放つ3つのブロックパーツがある火山の前面ビュー。
  7. Explorerウィンドウで、LocalLightingフォルダー内のすべてのブロックパーツを選択し、PropertiesウィンドウでTransparency1に設定してブロックを見えなくします。

    火山の谷全体にオレンジの光がある火山の前面ビュー。

グローバルライティング

グローバルライティングは、ゲーム内の太陽または月からの光です。Lightingサービスとその子のポストプロセッシング効果オブジェクトのいくつかの主要なデフォルトプロパティを調整することで、グローバルライトがプレイヤーにどのように表示されるか、またゲーム内に配置した他のオブジェクト(ParticleEmitterBeamのテクスチャを含む)とどのように相互作用するかを劇的に変えることができます。

たとえば、チュートリアルの後半で流れる溶岩効果を生成するBeamテクスチャが輝くようにするには、BloomEffectプロパティを設定して、明るい光を見ているカメラのようにライティングを誇張する必要があります。同様に、夜間によりリアルな色をシミュレートするには、効果のプロパティを調整して全体の環境を脱色する必要があります。

ブルームなしのサンプルの火山の噴火の完全版。
ブルームなし
ブルームありのサンプルの火山の噴火の完全版。
ブルームあり

サンプルのVolcano Island - Completeプレースファイルのグローバルライティングを再現するには:

  1. Explorerウィンドウで、Lightingサービスを選択し、Propertiesウィンドウで、

    1. Ambient133, 152, 176に設定して、屋外環境全体に明るい灰色の色合いを設定します。
    2. Brightness2に設定して、グローバル光源を少し暗くします。
    3. ColorShift_Top207, 178, 72に設定して、グローバル光源に面する表面から反射する光に黄色の色合いを設定します。
    4. LightingStyleRealisticに設定して、Robloxの最も高度なライティング技術を利用します。
    5. ClockTime4.3に設定して、午前4時15分頃の時間を設定します。
    6. GeographicLatitude199に設定して、月の位置を変更します。
    7. ExposureCompensation-1に設定して、月からの露出を半分にします。
    暗くなった屋外ライティングの火山の前面ビュー。
  2. Explorerウィンドウで、LightingサービスのBloom子を選択し、Propertiesウィンドウで、

    1. Intensity0.75に設定して、環境内のすべての色を少し暗くします。
    2. Size80に設定して、より広いブルーム効果を作成します。
    3. Threshold0.85に設定して、環境内のより多くの色が輝くようにします。
    暗くなった屋外ライティングとオレンジ色に輝くローカルライティングの火山の前面ビュー。
  3. Explorerウィンドウで、LightingサービスにColorCorrectionオブジェクトを挿入し、Propertiesウィンドウで、

    1. Brightness0.017に設定して、ピクセルの色をわずかにシフトします。
    2. Contrast0.25に設定して、環境内の明るい色と暗い色の間にシャープなコントラストを作ります。
    3. Saturation-0.15に設定して、環境内の色を脱色します。
    4. TintColor255, 214, 143に設定して、ピクセルに明るい黄色の色合いを付けます。
    真っ黒な屋外ライティングとオレンジ色に輝くローカルライティングの火山の前面ビュー。
  4. OPTIONAL
    空に雲を挿入して間接光を提供します。

    1. Explorerウィンドウで、TerrainサービスにCloudsオブジェクトを挿入します。
    2. Cloudsオブジェクトを選択し、Propertiesウィンドウで、
      1. Cover1に設定して、空に完全な雲の覆いを提供します。
      2. Density0.08に設定して、雲の覆いを薄くします。
      3. Color136, 143, 152に設定して、雲の覆いに明るい灰色の色合いを設定します。
    真っ黒な屋外ライティング、灰色の雲、オレンジ色に輝くローカルライティングの火山の前面ビュー。

火山を設定する

ローカルライティングとグローバルライティングの設定が完了したので、実際の火山とその周囲の地形に関連するすべてのVFXオブジェクトを設定する時が来ました。サンプルのVolcano Island .rbxlファイル内で最終環境を正確に再現するこれらの指示に従うと、各ステップが環境にキャラクター、動き、明るさを追加するためにどのように連携しているかを観察できます。

表面の波紋

表面の波紋は、内部のマグマと圧力のかかったガスが地殻の下から上昇する結果として、カルデラの表面を流れる小さな溶岩の波です。この視覚現象は、対流の実世界の物理プロセス、つまり熱い流体が表面に上昇する際の流体内の動きを伝え、シーンのリアリズムを高めます。

表面の波紋は、プレイヤーに火山の噴火の状態に関する貴重な洞察を提供します。たとえば、マグマとガスが上昇する力が十分で、カルデラの上の溶岩の状態を乱している場合、プレイヤーは火山が沸騰するマグマで活発に噴火していると推測できるため、このゲームプレイエリアの周りで注意を払うべきです。

表面の波紋がないカルデラの上からの俯瞰図。
表面の波紋なし
表面の波紋あり

このプロセスを示すために、サンプルではカルデラの基部の少し下にParticleEmitterオブジェクトを使用して、暗い背景の上でゆっくりと拡大し収縮する平らで明るい粒子を放出します。これにより、粒子が自然の中で要素が動くリアルな方法に似た形で、滑らかで継続的に溶岩が攪拌される挙動を模倣できます。

攪拌された溶岩から生じる表面の波紋を表す2Dテクスチャ。
Foam Ripples Texture = rbxassetid://16811365086

サンプルのVolcano Island - Completeプレースファイルのカルデラの上に表面の波紋を再現するには:

  1. Explorerウィンドウで、すべてのカルデラオブジェクトを含むフォルダーWorkspaceに作成し、フォルダーの名前をCalderaに変更します。

  2. 表面の波紋のための高コントラストの背景を提供するバックドロップを作成します。

    1. Calderaフォルダーにブロックパーツを挿入し、名前をBackdropに変更します。

    2. Backdropをカルデラの全表面積を少し超えるように配置し、スケールします。このパーツは、カルデラのローカル光源に近いため、光っているように見えます。

      光っている黄色のブロックパーツが強調表示されたカルデラの上からの俯瞰図。
  3. Backdropを選択し、Propertiesウィンドウで、

    1. Color0, 0, 0に設定してブロックを黒にします。

    2. MaterialFoilに設定してバックドロップにテクスチャを提供します。

      粗いテクスチャの黒いブロックパーツがあるカルデラの上からの俯瞰図。
  4. 波紋効果を作成します。

    1. Backdropを複製し、名前をMagmaRipplesに変更し、カルデラの表面積に少し縮小します。
    2. MagmaRipplesを選択し、PropertiesウィンドウでTransparency1に設定してブロックを見えなくします。
    3. MagmaRipplesParticleEmitterを挿入し、エミッタの名前をRipplesに変更します。
    4. Ripplesを選択し、Propertiesウィンドウで、
      1. Texturerbxassetid://16829556885に設定して泡の波紋のような粒子を描画します。

      2. OrientationVelocityPerpendicularに設定して、粒子を移動方向に対して垂直に放出します。

      3. Colorを、粒子が茶色から明るい赤、次にマルーンに変わる色のシーケンスに設定します。

        1. Colorプロパティをクリックし、**⋯**ボタンをクリックします。色のシーケンスポップアップが表示されます。
        Colorプロパティのエリプシスボタンが強調表示されたStudioのPropertiesウィンドウのクローズアップ。

        色のシーケンスの下の軸の各三角形は、粒子のライフタイムのその時点でのプロパティの色の値を決定するキーポイントです。

        1. 色のシーケンス全体で次の時間と値のプロパティを設定します:
        • Time = 0, RGB Value = 130, 53, 2
        • Time = 0.5, RGB Value = 224, 37, 0
        • Time = 1, RGB Value = 147, 5, 0
      4. Sizeを、粒子がライフタイムの中間に向かってサイズが増加し、元のサイズに戻る小さな変動を持つ数値シーケンスに設定します。

        1. Sizeプロパティをクリックし、**⋯**ボタンをクリックします。数値シーケンスポップアップが表示されます。デフォルトでは、グラフは直線で、画像は左から右に同じサイズのままです。
        Size数値シーケンスグラフのクローズアップ。

        数値シーケンスの開始と終了の各四角は、左から右にテクスチャのその時点でのプロパティのサイズの値を決定するキーポイントです。

        1. 数値シーケンス全体で次の時間と値のプロパティを設定します:

        • Time = 0, Value = 4.81, Envelope = 0.438
        • Time = 0.341, Value = 8.75, Envelope = 0.48
        • Time = 0.497, Value = 9.38, Envelope = 0.5
        • Time = 0.644, Value = 8.75, Envelope = 0.48
        • Time = 1, Value = 4.81, Envelope = 0.438
      5. Transparencyを、粒子が透明から始まり、ライフタイムの中間で不透明になり、ライフタイムの終わりで再び透明になる数値シーケンスに設定します。

        1. Transparencyプロパティをクリックし、**⋯**ボタンをクリックします。

        2. 数値シーケンス全体で次の時間と値のプロパティを設定します:

        • Time = 0, Value = 1, Envelope = 0
        • Time = 0.3, Value = 0.387, Envelope = 0.0375
        • Time = 0.5, Value = 0.269, Envelope = 0.0812
        • Time = 0.7, Value = 0.381, Envelope = 0.05
        • Time = 0, Value = 1, Envelope = 0
      6. ZOffset-2に設定して、テクスチャをカルデラから少し離れた位置にオフセットします。

      7. Lifetime5, 8に設定して、各粒子のライフタイムを5秒から8秒の間でランダムに設定します。

      8. Rate12に設定して、1秒あたり12粒子を放出します。

      9. Rotation-360, 360に設定して、各粒子を円の中でランダムに向けます。

      10. Speed0.01に設定して、各粒子を1秒あたり0.1スタッド放出します。

      11. LightEmission1に設定して、粒子を大幅に明るくします。

      12. LightInfluence0に設定して、環境光が粒子の色に影響を与えないようにします。

      13. Brightness15に設定して、エミッタから放出される光をスケールします。

火の粉

火の粉は、カルデラから噴出し、上昇する際に熱を急速に放出する小さく軽い溶岩の破片です。表面の波紋と同様に、火の粉は地殻の下の内部圧力が上昇していることを示し、熱い要素が溶岩の表面張力を破って圧力を解放しています。

サンプルでは、動きのブラーがテクスチャに焼き付けられた粒子を放出するためにParticleEmitterオブジェクトを使用してこのプロセスを模倣します。粒子が上昇し、ライフタイムの終わりに達すると、エミッタは粒子を1:1の比率に圧縮して円に再形成します。この技術により、粒子がカルデラから急速に移動し、空に消散する際に遅くなるように見えます。

カルデラから噴出する火の粉を表す2Dテクスチャ。
Embers Texture = rbxassetid://17581858560

さらに、粒子が上昇するにつれて、色、透明度、サイズが変化して温度の変化を反映します。たとえば、粒子はライフタイムの初めに大きな茶色の粒子として始まり、すぐに小さなオレンジ色、次にマルーン色の粒子に変わります。この戦略は、峡谷全体のライティングを微妙に反映し、プレイヤーの環境への没入感を高めるという利点もあります。

サンプルのVolcano Island - Completeプレースファイルのカルデラの表面から輝く火の粉を再現するには:

  1. Calderaフォルダーにシリンダーパーツを挿入し、名前をGlowingEmbersに変更します。

  2. GlowingEmbersを表面の波紋の上に配置し、カルデラの内部を満たすまでスケールします。このパーツは、カルデラのローカル光源に近いため、光っているように見えます。

    光っている黄色のシリンダーパーツがあるカルデラの前面ビュー。
  3. GlowingEmbersを選択し、PropertiesウィンドウでTransparency1に設定してシリンダーを見えなくします。

  4. GlowingEmbersParticleEmitterを挿入し、エミッタの名前をEmbersに変更します。

  5. Embersを選択し、Propertiesウィンドウで、

    1. Texturerbxassetid://17581858560に設定して、横に長い楕円のような粒子を描画します。
    2. OrientationVelocityParallelに設定して、粒子を移動方向に平行に放出します。
    3. Colorを、粒子が茶色からオレンジ色、次にマルーン色に変わる色のシーケンスに設定します。
    • Time = 0, RGB Value = 130, 53, 2
    • Time = 0.5, RGB Value = 224, 82, 0
    • Time = 1, RGB Value = 147, 5, 0
    1. Sizeを、粒子がライフタイムを通じてゆっくりとサイズが減少する数値シーケンスに設定します。
    • Time = 0, Value = 0.313, Envelope = 0.1
    • Time = 1, Value = 0, Envelope = 0
    1. Squashを、粒子がライフタイムの中間でわずかに伸びる数値シーケンスに設定します。
    • Time = 0, Value = -3, Envelope = 0
    • Time = 0.323, Value = -0.188, Envelope = 0
    • Time = 1, Value = -0.5, Envelope = 0
    1. Transparencyを、粒子が上昇する際にランダムに不透明度を変化させる数値シーケンスに設定します。実際の値は重要ではなく、ライフタイムの間に多く変化することが重要です。
    1. ZOffset1に設定して、テクスチャをカルデラから少し離れた位置にオフセットします。
    2. Lifetime1, 5に設定して、各粒子のライフタイムを1秒から5秒の間でランダムに設定します。
    3. Speed5, 8に設定して、各粒子を5から8スタッド毎秒でランダムに放出します。
    4. SpreadAngle180, 180に設定して、粒子をXおよびZ軸に沿った角度で放出します。
    5. Acceleration0, 10, 0に設定して、上向きの力をシミュレートし、粒子を空に引き上げます。
    6. Drag0.8に設定して、粒子が指数的に減速します。
    7. LightEmission1に設定して、粒子を大幅に明るくします。
    8. LightInfluence0に設定して、環境光が粒子の色に影響を与えないようにします。
    9. Brightness20に設定して、エミッタから放出される光をスケールします。

溶岩の飛沫

溶岩の飛沫は、内部のマグマと圧力のかかったガスが溶岩の表面張力を破るのに十分な力を加え、火山から上に噴出する薄い溶岩のバーストです。この火山のコアコンポーネントは、火山がもはや休止状態ではなく、活発に噴火していることを判断するための最も一般的な兆候の1つです。

サンプルでは、2つのParticleEmitterオブジェクトを使用して、各粒子のテクスチャをライフタイムにわたってアニメーション化するためにフリップブックを利用しています。最初の粒子エミッタは、重くて濃厚な飛沫のように見える粒子を放出し、ゆっくりと上昇して火山に戻ります。対照的に、2番目の粒子エミッタは、軽くて薄いウェブ状の飛沫のように見える粒子を放出し、急速に上昇して火山に戻ります。

濃厚な飛沫テクスチャを表す2Dテクスチャ。
Dense Splash Texture = rbxassetid:/17363669906
ウェブ状の飛沫テクスチャを表す2Dテクスチャ。
Webby Splash Texture = rbxassetid://17363668312

各粒子エミッタは、64フレームにわたってテクスチャをアニメーション化し、滑らかで生き生きとした物理的挙動を模倣します。1つの粒子エミッタだけを使用することもできますが、アニメーションの繰り返しが明らかになり、プレイヤーの没入感を損なうことになります。2つの粒子がわずかに異なるカスタムプロパティでフリップブックをアニメーション化すると、繰り返しを見つけるのがはるかに難しくなります。

サンプルでは、さらに軽いウェブ状の飛沫を表すために、粒子を放出するParticleEmitterオブジェクトも提供しています。この技術は、空間を動的な動きで満たし、フリップブックアニメーションの繰り返しをさらに隠します。さらに、ゲームにCreating Waterfallsからの滝が含まれている場合、異なるゲームプレイエリアのために同じテクスチャを2回再利用でき、メモリを節約し、低スペックデバイスでのパフォーマンスを向上させることができます。

エアレーテッドスプラッシュを表す2Dテクスチャ。
Webby Texture = rbxassetid://17082061238

サンプルのVolcano Island - Completeプレースファイルのカルデラの表面からの溶岩の飛沫を再現するには:

  1. Calderaフォルダーにシリンダーパーツを挿入し、名前をSplashingLavaに変更します。

  2. SplashingLavaを表面の波紋の上に配置し、溶岩が飛び散る中間のカルデラをカバーするまでスケールします。このパーツは、カルデラのローカル光源に近いため、光っているように見えます。

    光っている黄色のシリンダーパーツがあるカルデラの前面ビュー。
  3. SplashingLavaを選択し、PropertiesウィンドウでTransparency1に設定してシリンダーを見えなくします。

  4. SplashingLavaParticleEmitterを挿入し、エミッタの名前をWebbySplashesに変更します。

  5. WebbySplashesを選択し、Propertiesウィンドウで、

    1. Texturerbxassetid://17363668312に設定して、ウェブ状の飛沫のように見える粒子を描画します。
    2. OrientationFacingCameraWorldUpに設定して、カメラに向かって粒子を放出しますが、垂直の上向きのワールドY軸でのみ回転します。
    3. Color255, 152, 79に設定して、粒子を明るいオレンジ色に染めます。
    4. Sizeを、粒子がライフタイムを通じてサイズが増加する数値シーケンスに設定します。
    • Time = 0, Value = 4.31, Envelope = 0.762
    • Time = 1, Value = 6.2, Envelope = 0.875
    1. Squashを、粒子がライフタイムを通じてわずかに伸びる数値シーケンスに設定します。
    • Time = 0, Value = -0.075, Envelope = 0.263
    • Time = 1, Value = -0.413, Envelope = 0.412
    1. ZOffset1に設定して、テクスチャをカルデラから少し離れた位置にオフセットします。
    2. Lifetime1.5, 2に設定して、各粒子のライフタイムを1.5秒から2秒の間でランダムに設定します。
    3. Rate0.37に設定して、約3秒ごとに粒子を放出します。
    4. RotSpeed-20, 20に設定して、各粒子を-20から20度毎秒でランダムに放出します。
    5. Speed2に設定して、各粒子を2スタッド毎秒で放出します。
    6. SpreadAngle5, 5に設定して、粒子をXおよびZ軸に沿った小さな角度で放出します。
    7. FlipbookLayoutGrid8x8に設定して、64フレームの期間でテクスチャをアニメーション化します。
    8. FlipbookModeOneshotに設定して、アニメーションがライフタイム中に1回だけ再生されるようにします。
    9. Drag0.5に設定して、粒子が指数的に減速します。
    10. LightEmission0.1に設定して、粒子をわずかに明るくします。
    11. LightInfluence0.25に設定して、環境光が粒子の色に与える影響を大幅に減少させます。
  6. DenseSplashesを複製し、Propertiesウィンドウで次のプロパティを変更して追加の溶岩の飛沫にバリエーションを提供します。

    1. NameDenseSplashesに設定します。
    2. Texturerbxassetid://17363669906に設定して、濃厚な飛沫のように見える粒子を描画します。
    3. Sizeを、粒子がライフタイムを通じてサイズが増加する数値シーケンスに設定します。
    • Time = 0, Value = 5.75, Envelope = 0.762
    • Time = 1, Value = 7.37, Envelope = 0.875
    1. Squashを、粒子がライフタイムを通じてわずかに伸びる数値シーケンスに設定します。
    • Time = 0, Value = 0, Envelope = 0.225
    • Time = 1, Value = -0.262, Envelope = 0.15
    1. Rate0.289に設定して、ほぼ毎秒1粒子を放出します。
  7. カルデラに追加の飛沫を満たします。

    1. SplashingLavaParticleEmitterを挿入し、エミッタの名前をSplashFillに変更します。

    2. SplashFillを選択し、Propertiesウィンドウで、

      1. Texturerbxassetid://17082061238に設定して、軽いウェブ状の飛沫のように見える粒子を描画します。
      2. OrientationFacingCameraWorldUpに設定して、カメラに向かって粒子を放出しますが、垂直の上向きのワールドY軸でのみ回転します。
      3. Color255, 152, 33に設定して、粒子をオレンジ色に染めます。
      4. Sizeを、粒子がライフタイムを通じてサイズが増加する数値シーケンスに設定します。
      • Time = 0, Value = 1.25, Envelope = 0.388
      • Time = 1, Value = 6.38, Envelope = 0.563
      1. Transparencyを、粒子が透明から始まり、不透明になり、ライフタイムの終わりに再び透明になる数値シーケンスに設定します。
      • Time = 0, Value = 1, Envelope = 0
      • Time = 0.19, Value = 0, Envelope = 0
      • Time = 0.795, Value = 0, Envelope = 0
      • Time = 1, Value = 1, Envelope = 0
      1. ZOffset1に設定して、テクスチャをカルデラから少し離れた位置にオフセットします。
      2. Lifetime1.5に設定して、各粒子のライフタイムを1.5秒に設定します。
      3. Rate8に設定して、8秒ごとに粒子を放出します。
      4. Rotation0, 360に設定して、各粒子を半円でランダムに向けます。
      5. RotSpeed-50, 50に設定して、各粒子を-50から50度毎秒でランダムに放出します。
      6. Speed12, 20に設定して、各粒子を12から20スタッド毎秒でランダムに放出します。
      7. SpreadAngle45, 45に設定して、粒子をXおよびZ軸に沿った角度で放出します。
      8. Acceleration0, -25, 0に設定して、重力をシミュレートし、粒子を下に引き戻します。
      9. Drag1に設定して、粒子が指数的に減速します。
      10. LightEmission1に設定して、粒子を大幅に明るくします。
      11. LightInfluence0に設定して、環境光が粒子の色に影響を与えないようにします。
      12. Brightness8に設定して、エミッタから放出される光をスケールします。

溶岩の流れ

溶岩の流れは、火山の噴火中にカルデラから噴出し、地表を流れる溶岩の塊です。溶岩は空気にさらされることで冷却し、固化して固体の岩石に変わり、新しい土地を形成します。

このプロセスをシミュレートするために、サンプルでは、シームレスなテクスチャとプロパティ設定を持つ複数のBeamオブジェクトを重ねて、カルデラから遠くに移動する際の溶岩の冷却の行動特性を模倣します。

  • 下層は、温かい色から冷たい色に変化する平坦な色を描画し、溶岩が温度を下げ始めていることを伝えます。たとえば、明るい赤から暗いマルーンに変わります。
  • 中層は、穴のある暗い地殻のように見える黒いテクスチャを描画し、その下に光る溶岩を露出させます。
  • 上層は、中層と同じテクスチャをより遅い速度で描画し、反転したアタッチメントと逆のプロパティ設定を持ちます。これにより、テクスチャが同じ方向で描画される際に完全に一致する機会がなくなり、プレイヤーが不自然なテクスチャの繰り返しを簡単に検出できなくなります。
下層
中層
上層

3つのBeamオブジェクトを重ねることで、溶岩が異なる速度で流れているように見えるパララックスの錯覚を作り出します。これは、実際には3つの2D画像であるにもかかわらず、溶岩の表面上と下に乱流があることをプレイヤーに知らせます。

流れる溶岩の上にある地殻を表す2Dテクスチャ。
Crust Texture = rbxassetid://17023930265

サンプルのVolcano Island - Completeプレースファイルのカルデラから流れる溶岩を再現するには:

  1. Explorerウィンドウで、すべての流れる溶岩オブジェクトを含むフォルダーWorkspaceに作成し、フォルダーの名前をFlowingMagmaに変更します。

  2. FlowingMagmaフォルダーにブロックパーツを挿入し、名前をMagmaRiverBeamに変更します。

  3. MagmaRiverBeamをカルデラの端の少し下に移動します。

    火山のブロックパーツが強調表示された斜めの俯瞰図。
  4. カルデラから流れる溶岩ビームのテクスチャを描画するためにアタッチメントを設定します。

    1. MagmaRiverBeamにアタッチメントを挿入し、アタッチメントがカルデラを指すように回転させます。
    2. MagmaRiverBeamに別のアタッチメントを挿入し、亀裂の分岐に向けて配置し、アタッチメントが地面に向かうように回転させます。
    火山の2つのアタッチメントの視覚的補助が強調表示された斜めの俯瞰図。
  5. MagmaRiverBeamBeamを挿入し、名前をMagmaに変更します。

  6. パーツのアタッチメントをMagmaに割り当てます。

    1. Explorerウィンドウで、Magmaを選択します。
    2. Propertiesウィンドウで、
      1. Attachment0をカルデラの端のアタッチメントに設定します。
      2. Attachment1を亀裂の分岐のアタッチメントに設定します。ビームは2つのアタッチメントの間にデフォルトのテクスチャを描画します。
    アタッチメントの間にデフォルトのビームテクスチャを描画している2つのブロックパーツがある火山の斜めの俯瞰図。
  7. ビームの視覚的外観をカスタマイズして、流れる溶岩のように見えるようにします。

    1. Explorerウィンドウで、Magmaがまだ選択されていることを確認します。

    2. Propertiesウィンドウで、

      1. Width050に設定して、テクスチャを描画を開始する軸から広げます。
      2. Width150に設定して、亀裂の分岐に達する際にテクスチャを広げます。
      3. CurveSize0-50に設定して、テクスチャを亀裂の床から曲げます。
      4. CurveSize15に設定して、テクスチャを亀裂の分岐に曲げます。
      5. Colorを、明るい赤から暗い赤に変わる色のシーケンスに設定して、溶岩が冷却する様子をシミュレートします。
      • Time = 0, RGB Value = 255, 51, 0
      • Time = 0.5, RGB Value = 211, 39, 0
      • Time = 1, RGB Value = 118, 24, 0
      1. Transparencyを、アタッチメントポイントの間で溶岩がより鮮やかになるように設定します。
      • Time = 0, Value = 1
      • Time = 0.0916, Value = 0
      • Time = 0.867, Value = 0
      • Time = 0.941, Value = 0.725
      • Time = 1, Value = 1
      1. LightEmission1に設定して、ビームを大幅に明るくします。
      2. LightInfluence0に設定して、環境光がビームの色に影響を与えないようにします。
      3. Brightness8に設定して、ビームから放出される光をスケールします。
  8. MagmaRiverBeamに別のBeamを挿入し、名前をCrust1に変更し、アタッチメントをCrust1に割り当てます。同じプロセスを使用して、ステップ6を実行します。

  9. ビームの視覚的外観をカスタマイズして、溶岩の上にある地殻のように見えるようにします。

    1. Explorerウィンドウで、Crust1がまだ選択されていることを確認します。

    2. Propertiesウィンドウで、

      1. Texturerbxassetid://17023930265に設定して、流れる地殻のように見える新しいテクスチャを描画します。
      2. Width035に設定して、テクスチャを描画を開始する軸から広げます。
      3. Width125に設定して、亀裂の分岐に達する際にテクスチャを広げます。
      4. TextureSpeed0.01に設定して、テクスチャの流れを大幅に遅くします。
      5. TextureLength3に設定して、テクスチャの長さをわずかに伸ばします。
      6. CurveSize0-50に設定して、テクスチャを亀裂の床から曲げます。
      7. CurveSize15に設定して、テクスチャを亀裂の分岐に曲げます。
      8. Color83, 83, 83に設定して、ビームを灰色に染めます。
      9. Transparencyを、アタッチメントポイントの間で地殻がより鮮やかになるように設定します。
      • Time = 0, Value = 1- 時間 = 0.22, = 0
      • 時間 = 0.85, = 0
      • 時間 = 1, = 1
      1. ZOffset1 に設定して、テクスチャを火口から少し離れた位置にオフセットします。
  10. Crust1 を複製し、Crust2 に名前を変更します。次に、プロパティ ウィンドウで、

    1. Attachment0 を亀裂の分岐点のアタッチメントに設定します。
    2. Attachment1 を火口の端のアタッチメントに設定します。
    3. Width025 に設定して、テクスチャがレンダリングを開始する軸から広がるようにします。
    4. Width135 に設定して、亀裂の分岐点でテクスチャが広がるようにします。
    5. TextureSpeed-0.008 に設定して、テクスチャの流れを大幅に遅くします。
    6. TextureLength2 に設定して、テクスチャの長さを少し縮めます。
    7. CurveSize0-5 に設定して、テクスチャを亀裂の床から曲げます。
    8. CurveSize150 に設定して、テクスチャを亀裂の分岐点に曲げます。
    9. ZOffset2 に設定して、テクスチャを他の地殻からオフセットします。
  11. オプション
    同じプロセスを使用して、亀裂の分岐点の周りにさらにビームを作成してマグマを放出します。テクスチャを遅くし、温度が下がるにつれて色が暗くなるマグマをシミュレートするためにプロパティを調整することを忘れないでください。

煙の噴煙

火口からの煙の噴煙は、温かい圧力ガス、蒸気、火山灰を大気中に放出します。この火山の排出物の混合物は、現実の世界で何マイルも見えるため、火山のデザインには大きな煙の噴煙が3D空間の重要なポイントとして組み込まれることがよくあります。

爆発的な噴火の直後に見られる厚い火山灰の煙を放出するのではなく、サンプルでは ParticleEmitter オブジェクトを使用して、上昇するにつれて色が変わる細い煙の蒸気のように見える粒子を放出します。この技術は2つの目標を達成します:

  • 背景のクレーターのシルエットを分断し、火山の噴火の周りに視覚的な興味を生み出します。
  • 煙が環境からの光を受け入れているように見えながら、煙が空気中の不純物を燃やしているかのように暗い存在感を放つことを可能にします。
火口から上昇する煙を表す2Dテクスチャ。
煙のテクスチャ = rbxassetid://16830667309

サンプルの 火山島 - 完全版 プレースファイルから火口の煙の噴煙を再現するには:

  1. Caldera フォルダに ブロック パーツを挿入し、名前を SmokePlume に変更します。

  2. SmokePlume を火口の下に配置し、火口の表面積にほぼ合わせてスケールします。

    火山の斜め側からの視点で、火口の下にハイライトされたブロックパーツがあります。
  3. SmokePlumeParticleEmitter を挿入し、エミッターの名前を Smoke に変更します。

  4. Smoke を選択し、プロパティ ウィンドウで、

    1. Texturerbxassetid://16830673704 に設定して、厚い煙のように見える粒子をレンダリングします。
    2. Color を、粒子が火口から空に向かって環境の光をシミュレートする色のシーケンスに設定します。最初は黒、次に薄い桃色、最後に灰色になります。
    • 時間 = 0, RGB 値 = 0, 0, 0
    • 時間 = 0.374, RGB 値 = 195, 104, 76
    • 時間 = 0.469, RGB 値 = 225, 121, 86
    • 時間 = 0.709, RGB 値 = 111, 111, 111
    • 時間 = 1, RGB 値 = 113, 113, 113
    1. Transparency を、粒子が透明から始まり、寿命の初期に完全に不透明になり、寿命の終わり近くで再び透明になる数値シーケンスに設定します。
    • 時間 = 0, = 1
    • 時間 = 0.0622, = 0
    • 時間 = 0.845, = 0
    • 時間 = 0, = 1
    1. ZOffset-10 に設定して、テクスチャを火口の上部に近づけます。
    2. Lifetime50, 60 に設定して、各粒子の寿命を50秒から60秒の間でランダムに設定します。
    3. Rate0.3 に設定して、約3秒ごとに粒子を放出します。
    4. Rotation-360, 360 に設定して、各粒子を円の中でランダムに向けます。
    5. RotSpeed-5, 5 に設定して、各粒子を-5度から5度の間でランダムに放出します。
    6. SpreadAngle5, 5 に設定して、X軸とZ軸に沿って小さな角度で粒子を放出します。
    7. Acceleration0, 7, 0 に設定して、上向きの力をシミュレートし、粒子を空に引き上げます。
    8. Drag1 に設定して、粒子が指数関数的に速度を失うようにします。
    9. WindAffectsDrag を有効にして、環境の風が煙を押し流すようにします。
    10. LightEmission0.1 に設定して、粒子をわずかに明るくします。
    11. LightInfluence0.06 に設定して、環境光が粒子の色に与える影響を大幅に減少させます。
  5. コマンドバー に次の文字列を入力して、各粒子のサイズを寿命の間に40から100スタッドに増加させます。わずかな変動のウィンドウを持たせます:

    workspace.Caldera.SmokePlume.Smoke.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,40,5), NumberSequenceKeypoint.new(1,100,15)}
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。