使用 VFX 創建瀑布

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

一個 瀑布 是河流或溪流中水流過一個或多個垂直落差進入水體的地方。遊戲中經常包含瀑布以增強視覺美感,例如增強環境或創造視覺焦點,或出於功能性遊戲目的,例如隱藏資源或在地點內部轉換玩家之間的不同區域。

使用 Waterfall Island .rbxl 文件作為參考,本教程將向您展示如何創建一個具有 VFX 物件的瀑布,這些物件代表現實世界的物理行為,包括以下指導:

  • 將參考材料分解為具有不同視覺和行為特徵的單獨組件。
  • 配置以不同速度下降的瀑布,以模擬水從懸崖下降時的擴散。
  • 配置濺起的水花,以模擬水在瀑布撞擊底部的水池時變成氣霧。
  • 配置白水,以模擬湍流的氣泡水,當水流撞擊岩石時。
  • 配置泡沫,以模擬毛細波破壞表面張力。
  • 配置霧氣,以模擬霧氣蒸汽從撞擊點向上升起,創造出玩家可以從任何角度看到的彩虹。

分解參考

要創建可信的瀑布,重要的是在設計過程中參考現實世界的自然特徵,因為這使您能夠將主題分解為具有不同視覺和行為特徵的單獨組件。例如,示例 Waterfall Island 遊戲參考了華盛頓州的斯諾夸爾米瀑布,以告知與瀑布及其周圍地形相關的所有紋理和 VFX 設計決策。

斯諾夸爾米瀑布的遠景。

雖然瀑布是一個連續且相連的水流,涉及多種物質狀態和動態流體及空氣運動,但將這個複雜系統分解為單獨的組件是有用的,這樣您就可以計劃如何利用不同的 VFX 物件來模仿它們的現實世界對應物。為了演示,本教程將示例瀑布分解為五個獨特的組件:

  • 瀑布流 – 從懸崖上降下的水。
  • 濺起的水花 – 當瀑布流撞擊底部的水池時,散落的水。
  • 白水 – 當水源接近懸崖邊緣時產生的湍流水。
  • 泡沫 – 當瀑布流和水池碰撞時,散落的氣泡水。
  • 霧氣 – 隨著整體瀑布的影響,蒸發在空氣中的雲狀水。
斯諾夸爾米瀑布,所有五個組件突出顯示。
示例瀑布,突出顯示相同的五個組件,以比較參考圖像和最終結果。

以下部分提供了不同設計決策和技術的深入分析,您可以使用這些技術來重建這些構成示例 3D 空間中主要落差的瀑布組件。當您審查這些決策並實驗各種 BeamParticleEmitter 屬性時,您將學會如何利用 VFX 來解決您自己遊戲的獨特環境需求。

配置瀑布流

瀑布流 是從懸崖或懸崖邊緣下降到底部水池的水流。瀑布流的下降速度取決於其水量和下降到水池的高度。例如,示例的主要落差似乎下降得較慢,因為有大量水從大距離下降,但示例的第二落差似乎下降得較快,因為較小的水量在短距離內下降。

主要落差
第二落差

此外,瀑布通常有多層瀑布流以不同的速度下降,因為水在下降到水池時會擴散。為了演示這一原則,示例使用多個 Beam 物件,這些物件具有無縫紋理,並在不同的速度和長度下在 Attachment 物件之間渲染。除了為主要落差提供更真實的下降行為外,這種技術還創造了一種視差的錯覺,使瀑布流看起來具有深度和體積感,即使它只是一個 2D 圖像。

這個瀑布看起來自然,因為水以不同的速度下降和擴散。
這個瀑布看起來不自然,因為水以相同的速度下降和擴散。

要重建示例 Waterfall Island 地方文件中的主要落差的瀑布流:

  1. 創建瀑布流的出流。

    1. Explorer 窗口中,在 Workspace 中創建一個 Folder 以包含所有出流物件,然後將文件夾重命名為 Outflow

    2. Outflow 文件夾中插入兩個 block 部件,然後分別將它們重命名為 OutflowStartOutflowStop

    3. OutflowStart 移動到您希望出流開始的位置,並將 OutflowStop 移動到懸崖的邊緣。

      出流水的角度俯視圖,兩個方塊部件定位在出流紋理應該渲染的位置。
    4. OutflowStartOutflowStop 中插入一個附件,然後旋轉附件,直到黃色視覺輔助指向上方。

      出流水的角度俯視圖,兩個方塊部件包含附件,黃色視覺輔助指向上方。
    5. Outflow 文件夾中插入一個 Beam,然後將其重命名為 OutflowWater

    6. 將每個部件的附件分配給 OutflowWater

      1. Explorer 窗口中,選擇 OutflowWater
      2. Properties 窗口中,
        1. Attachment0 設置為 OutflowStart 中的附件。
        2. Attachment1 設置為 OutflowStop 中的附件。光束在兩個附件之間渲染其默認紋理。
      出流水的角度俯視圖,兩個方塊部件在附件之間渲染默認光束紋理。
    7. 自定義光束的視覺外觀,使其看起來像是流向懸崖邊緣的水。

      1. Explorer 窗口中,確認 OutflowWater 仍然被選中。
      2. Properties 窗口中,
        1. Texture 設置為 rbxassetid://4787437624 以渲染看起來像流動泡沫的新紋理。

        2. Width0 設置為 60 以從開始渲染的軸擴大紋理。

        3. Width1 設置為 20 以將紋理引導到懸崖邊緣。

        4. TextureSpeed 設置為 0.4 以減慢紋理的流動速度。

        5. TextureLength 設置為 64 以拉伸紋理的長度。

        6. TextureMode 設置為 Wrap 以重複紋理到光束在 3D 世界中兩個附件之間的總長度除以其 TextureLength。這使得紋理看起來更像流動的水。

        7. Color 設置為一個顏色序列,顏色在深藍色和淺藍色到白色之間交替。

          1. 點擊 Color 屬性,然後點擊 按鈕。顏色序列彈出窗口顯示。

            Studio 的屬性窗口的特寫視圖,顏色屬性的省略號按鈕突出顯示。

            顏色序列底部軸上的每個三角形都是一個 關鍵點,確定該粒子生命週期中該點的屬性顏色值。

          2. 在顏色序列中設置以下時間和值屬性:

            • Time = 0, RGB Value = 208, 247, 255
            • Time = 0.135, RGB Value = 146, 235, 255
            • Time = 0.248, RGB Value = 255, 255, 255
            • Time = 0.384, RGB Value = 128, 183, 202
            • Time = 0.757, RGB Value = 166, 213, 248
            • Time = 1, RGB Value = 255, 255, 255
        8. Transparency 設置為一個數字序列,使水在接近懸崖邊緣時變得更加生動。

          1. 點擊 Transparency 屬性,然後點擊 按鈕。數字序列彈出窗口顯示。默認情況下,圖形是一條直線,圖像從左到右保持相同的透明度。

            透明度數字序列圖的特寫視圖。

            數字序列開始和結束的每個方塊都是一個 關鍵點,確定該點的紋理屬性透明度值。

          2. 在數字序列中設置以下時間和值屬性:

            • Time = 0, Value = 1
            • Time = 0.375, Value = 0.725
            • Time = 0.615, Value = 0
            • Time = 0.92, Value = 1
            • Time = 1, Value = 1
        9. 調整每個部件的比例,以確保紋理覆蓋出流池的寬度。出流現在看起來像是從各個角度流向懸崖邊緣。

  2. 創建主要落差的快速流動瀑布水。

    1. Explorer 窗口中,在 Workspace 中創建一個 Folder 以包含所有瀑布水物件,然後將文件夾重命名為 Cascades

    2. Cascades 文件夾中插入兩個 block 部件,然後分別將它們重命名為 MainDropStartMainDropStop

    3. MainDropStart 移動到懸崖的邊緣,並將 MainDropStop 移動到水池下方的位置。

      懸崖的側面角度視圖,兩個方塊部件定位在快速流動瀑布紋理應該渲染的位置。
    4. 配置所有從主要落差流動的瀑布水光束的附件,以用於渲染其紋理。

      1. MainDropStart 中插入一個附件,然後旋轉附件,直到黃色視覺輔助指向遠離懸崖。
      2. MainDropStop 中插入一個附件,然後旋轉附件,直到黃色視覺輔助指向懸崖。
      懸崖的側面角度視圖,兩個方塊部件包含附件。懸崖頂部的方塊部件包含一個黃色視覺輔助,指向遠離懸崖,而懸崖底部的方塊部件包含一個黃色視覺輔助,指向懸崖。
    5. Cascades 文件夾中插入一個 Beam,然後將其重命名為 FastDrop

    6. 將每個部件的附件分配給 FastDrop

      1. Explorer 窗口中,選擇 FastDrop
      2. Properties 窗口中,
        1. Attachment0 設置為 MainDropStart 中的附件。
        2. Attachment1 設置為 MainDropStop 中的附件。光束在兩個附件之間渲染其默認紋理。
      懸崖的側面角度視圖,兩個方塊部件在附件之間渲染默認光束紋理。
    7. 自定義光束的視覺外觀,使其看起來像是從主要落差流動的快速瀑布水。

      1. Explorer 窗口中,確認 FastDrop 仍然被選中。

      2. Properties 窗口中,

        1. Texture 設置為 rbxassetid://16808804567 以渲染看起來像流動水的新紋理。
        2. Width0 設置為 5 以從開始渲染的軸擴大紋理。
        3. Width1 設置為 10 以在與水池相遇時擴大紋理。
        4. CurveSize0 設置為 10 以使紋理從懸崖彎曲。
        5. CurveSize1 設置為 20 以使紋理彎曲進入水池。
        6. TextureSpeed 設置為 1.3 以使紋理快速流動。
        7. TextureLength 設置為 2 以稍微拉伸紋理的長度。
        8. Color 設置為一個顏色序列,顏色在深藍色和淺藍色到白色之間交替。
        • Time = 0, RGB Value = 208, 247, 255
        • Time = 0.135, RGB Value = 210, 246, 255
        • Time = 0.25, RGB Value = 255, 255, 255
        • Time = 0.384, RGB Value = 163, 187, 202
        • Time = 0.757, RGB Value = 214, 229, 248
        • Time = 1, RGB Value = 255, 255, 255
        1. Transparency 設置為一個數字序列,使瀑布水在附件點之間更加生動。
        • Time = 0, Value = 1
        • Time = 0.115, Value = 0
        • Time = 0.835, Value = 0
        • Time = 0.881, Value = .994
        • Time = 1, Value = 1
        1. ZOffset 設置為 2 以使紋理稍微偏離懸崖。
        2. 啟用 FaceCamera 以確保無論玩家從水的哪個角度,瀑布水都可見。
  3. 創建主要落差的慢速流動瀑布水。

    1. 複製 FastDrop,然後將複製的光束重命名為 SlowDrop

    2. 自定義光束的視覺外觀,使其看起來像是從主要落差流動的快速瀑布水。

      1. Explorer 窗口中,選擇 SlowDrop
      2. Properties 窗口中,
        1. Width1 設置為 20 以在與水池相遇時進一步擴大紋理。
        2. TextureLength 設置為 1.5 以稍微縮短紋理的長度。
        3. TextureSpeed 設置為 1 以使紋理流動得不那麼快。
        4. ZOffset 設置為 0 以使紋理直接從懸崖邊緣流出。
  4. Explorer 窗口中,選擇 Outflow 文件夾中的所有方塊部件,然後在 Properties 窗口中,將 Transparency 設置為 1 以使方塊不可見。

配置濺起的水花

當瀑布流撞擊底部水池的密度時,水會從撞擊點向上推進,形成 濺起的水花。當這些氣霧水向上推進時,它會擴展並從自身分裂,產生向各個方向散落的水滴。

為了演示這一過程,示例在主要落差的底部使用了兩個 ParticleEmitter 物件。第一個粒子發射器發射看起來像密集濺起的水花的粒子,這些粒子代表水的重量,當瀑布流撞擊水池時開始向上推進。第二個粒子發射器發射看起來像水滴的粒子,這些粒子代表水變成氣霧。

當您配置這些粒子發射器同時發射這兩種粒子,但以不同的速度時,產生的視覺效果模擬了濺起的水花的現實世界物理行為。這些類型的細節有助於增強您的 VFX 的真實感,並使玩家沉浸在 3D 空間中。

代表重度氣霧水的 2D 紋理,在分裂之前。
密集紋理 = rbxassetid://16829556885
代表重度氣霧水的 2D 紋理,當它分裂時。
水滴紋理 = rbxassetid://17082061238

要重建示例 Waterfall Island 地方文件中主要落差底部的濺起水花:

  1. Explorer 窗口中,在 Workspace 中創建一個 Folder 以包含所有濺起物件,然後將文件夾重命名為 Splashes

  2. Splashes 中插入一個 block 部件,然後將其重命名為 MainDropSplashes

  3. 定位並縮放 MainDropSplashes 以覆蓋瀑布流撞擊水池的完整表面區域。

    懸崖底部的特寫視圖,方塊部件定位在瀑布流撞擊水池的點。
  4. 創建主要落差的密集濺起水花。

    1. MainDropSplashes 中插入一個 ParticleEmitter,然後將發射器重命名為 SplashDense

    2. 選擇 SplashDense,然後在 Properties 窗口中,

      1. Texture 設置為 rbxassetid://16829556885 以渲染看起來像密集濺起水花的粒子。
      2. Color 設置為一個顏色序列,顏色從藍色開始然後變為白色。
      • Time = 0, RGB Value = 189, 246, 255
      • Time = 1, RGB Value = 255, 255, 255
      1. Size 設置為一個數字序列,大小穩步增加並具有變化範圍。
      • Time = 0, Value = 1.81, Envelope = 0.562
      • Time = 1, Value = 5.75, Envelope = 1.31
      1. Transparency 設置為一個數字序列,其中粒子開始為透明,變為不透明,然後在其生命週期中再次變為透明,並具有較大的變化範圍。
      • Time = 0, Value = 1, Envelope = 0
      • Time = 0.5, Value = 0.181, Envelope = 0.181
      • Time = 1, Value = 1, Envelope = 0
      1. Lifetime 設置為 0.25, 0.35 以隨機設置每個粒子的生命週期在 250 到 350 毫秒之間。
      2. Rate 設置為 30 以每秒發射 30 個粒子。
      3. Rotation 設置為 -45, 45 以隨機定向每個粒子在每秒 -45 到 45 度之間。
      4. RotSpeed 設置為 -40, 40 以隨機發射每個粒子在每秒 -45 到 40 度之間。
      5. Speed 設置為 20, 35 以隨機發射每個粒子在每秒 20 到 35 studs 之間。
      6. SpreadAngle 設置為 50, 50 以在 X 和 Z 軸上以一個角度發射粒子。
      7. Acceleration 設置為 0, -40, 0 以模擬重力並向下拉動粒子。
      8. LightEmission 設置為 0.5 以增亮粒子。
      9. LightInfluence 設置為 0.1 以顯著減少環境光對粒子顏色的影響。
  5. 創建主要落差的水滴。

    1. 複製 SplashDense,然後將其重命名為 SplashDroplets

    2. 選擇 SplashDroplets,然後在 Properties 窗口中,

      1. Texture 設置為 rbxassetid://17082061238 以渲染看起來像水滴的粒子。
      2. Size 設置為一個數字序列,大小迅速增加並具有變化範圍。
      • Time = 0, Value = 1.81, Envelope = 0.562
      • Time = 1, Value = 8.69, Envelope = 1.31
      1. Transparency 設置為一個數字序列,其中粒子開始為透明,迅速變為不透明,然後在其生命週期的中間慢慢變為透明。
      • Time = 0, Value = 1, Envelope = 0
      • Time = 0.104, Value = 0.0625, Envelope = 0.0625
      • Time = 0.429, Value = 0.0562, Envelope = 0.0562
      • Time = 1, Value = 1, Envelope = 0
      1. Lifetime 設置為 0.15, 0.6 以隨機設置每個粒子的生命週期在 150 到 600 毫秒之間。
      2. Rate 設置為 20 以每秒發射 20 個粒子。
  6. Explorer 窗口中,選擇 Splashes 文件夾中的所有方塊部件,然後在 Properties 窗口中,將 Transparency 設置為 1 以使方塊不可見。

配置白水

白水 產生於水源在接近下降並與其路徑中的物體碰撞時變得更加湍流。這導致氣泡水出現,因為水源中有更多的氣泡。

為了模擬這一過程,示例使用了兩個 ParticleEmitter 物件,這些物件發射看起來像重度氣霧的濺起水花,當出流撞擊懸崖邊緣的岩石時。發射器不使用內置照明,而是優先考慮白色和灰色的色調,並以不同的下降速度來展示水中氣泡的數量。

代表重度氣霧水的 2D 紋理,當它撞擊岩石時。
白水紋理 = rbxassetid://16808075391

要重建示例 Waterfall Island 地方文件中出流撞擊懸崖岩石的白水:

  1. Explorer 窗口中,在 Workspace 中創建一個 Folder 以包含所有白水物件,然後將文件夾重命名為 WhiteWater

  2. WhiteWater 中插入一個 block 部件,然後將其重命名為 MainDropWW

  3. 定位並縮放 MainDropWW 以覆蓋出流開始流過懸崖的完整表面區域。

    懸崖頂部的側面角度視圖,方塊部件定位在出流開始流過懸崖的點。
  4. 創建主要出流撞擊周圍岩石的較少湍流的白水。

    1. MainDropWW 中插入一個 ParticleEmitter,然後將發射器重命名為 GentleWW

    2. 選擇 GentleWW,然後在 Properties 窗口中,

      1. Texture 設置為 rbxassetid://16808075391 以渲染看起來像網狀濺起水花的粒子。
      2. Color 設置為一個顏色序列,顏色從藍色開始然後變為白色。
      • Time = 0, RGB Value = 189, 246, 255
      • Time = 1, RGB Value = 255, 255, 255
      1. Size 設置為一個數字序列,大小穩步增加並具有變化範圍。
      • Time = 0, Value = 1.13, Envelope = 0.562
      • Time = 1, Value = 5.56, Envelope = 0.563
      1. Transparency 設置為一個數字序列,其中粒子開始為透明,變為不透明,然後在其生命週期中再次變為透明,並具有較大的變化範圍。
      • Time = 0, Value = 1, Envelope = 0
      • Time = 0.143, Value = 0.462, Envelope = 0.0625
      • Time = 0.336, Value = 0.462, Envelope = 0.0562
      • Time = 0.622, Value = 0.788, Envelope = 0.0538
      • Time = 1, Value = 1, Envelope = 0
      1. ZOffset 設置為 2 以使紋理稍微偏離懸崖。
      2. Lifetime 設置為 1.25, 1.5 以隨機設置每個粒子的生命週期在 1250 到 1500 毫秒之間。
      3. Rate 設置為 12 以每秒發射 12 個粒子。
      4. Rotation 設置為 -45, 45 以隨機定向每個粒子在每秒 -45 到 45 度之間。
      5. RotSpeed 設置為 -40, 40 以隨機發射每個粒子在每秒 -45 到 40 度之間。
      6. Speed 設置為 15, 18 以隨機發射每個粒子在每秒 20 到 35 studs 之間。
      7. SpreadAngle 設置為 5, 5 以在 X 和 Z 軸上以一個小角度發射粒子。
      8. Acceleration 設置為 0, -35, 0 以模擬重力並向下拉動粒子。
      9. Drag 設置為 0.25 以使粒子以指數衰減的方式失去速度。
      10. LightEmission 設置為 0.6 以增亮粒子。
      11. LightInfluence 設置為 0.1 以顯著減少環境光對粒子顏色的影響。
  5. 創建主要出流撞擊周圍岩石的更湍流的白水。

    1. 複製 GentleWW,然後將其重命名為 TurbulentWW

    2. 選擇 TurbulentWW,然後在 Properties 窗口中,

      1. Size 設置為一個數字序列,大小微妙增加並具有變化範圍。
      • Time = 0, Value = 1.6, Envelope = 0.562
      • Time = 1, Value = 2.63, Envelope = 0.563
      1. Transparency 設置為一個數字序列,其中粒子開始為透明,變為不透明,然後在其生命週期的中間變為透明。
      • Time = 0, Value = 1, Envelope = 0
      • Time = 0.156, Value = 0.0437, Envelope = 0.0437
      • Time = 0.55, Value = 0.075, Envelope = 0.0252
      • Time = 1, Value = 1, Envelope = 0
      1. Lifetime 設置為 0.25, 0.5 以隨機設置每個粒子的生命週期在 250 到 500 毫秒之間。
      2. Rate 設置為 20 以每秒發射 20 個粒子。
      3. Speed 設置為 5, 6 以隨機發射每個粒子在每秒 5 到 6 studs 之間。
      4. Acceleration 設置為 0, -15, 0 以模擬重力並向下拉動粒子。
  6. Explorer 窗口中,選擇 WhiteWater 文件夾中的所有方塊部件,然後在 Properties 窗口中,將 Transparency 設置為 1 以使方塊不可見。

配置泡沫

與在瀑布流撞擊水池時向上推進的濺起水花不同,泡沫 是從撞擊點基部向外擴散的氣泡水。與濺起水花類似,泡沫擴展並從自身分裂成網狀水滴,當它變成氣霧時。

為了模擬這一效果,示例使用了一個 ParticleEmitter 物件來發射看起來像泡沫波紋的粒子,並且它緩慢地平行於水池發射。這使得粒子能夠模擬毛細波破壞底部水池表面張力的視覺和行為效果。

代表從瀑布流撞擊水池的地方向外擴散的氣霧水的 2D 紋理。
泡沫波紋紋理 = rbxassetid://16811365086

要重建示例 Waterfall Island 地方文件中主要落差底部的泡沫:

  1. Explorer 窗口中,在 Workspace 中創建一個 Folder 以包含所有泡沫物件,然後將文件夾重命名為 Foam

  2. Foam 中插入一個 block 部件,然後將其重命名為 MainDropFoam

  3. 定位並縮放 MainDropFoam 以覆蓋主要瀑布流撞擊水池的最密集部分的完整表面區域。

    懸崖底部的側面角度視圖,方塊部件定位在瀑布流撞擊水池的點。
  4. MainDropFoam 中插入一個 ParticleEmitter,然後將發射器重命名為 FoamRipples

  5. Explorer 窗口中,選擇 FoamRipples,然後在 Properties 窗口中,

    1. Texture 設置為 rbxassetid://16811365086 以渲染看起來像泡沫波紋的粒子。

    2. Orientation 設置為 VelocityPerpendicular 以垂直於其運動方向發射粒子。

    3. Transparency 設置為一個數字序列,其中粒子開始為透明,迅速變為不透明,然後在其生命週期的結尾迅速變為透明。

      • Time = 0, Value = 1, Envelope = 0
      • Time = 0.143, Value = 0.119, Envelope = 0.1
      • Time = 0.664, Value = 0.125, Envelope = 0.112
      • Time = 1, Value = 1, Envelope = 0
    4. Lifetime 設置為 0.5, 0.7 以隨機設置每個粒子的生命週期在 500 到 700 毫秒之間。

    5. Rate 設置為 5 以每秒發射 5 個粒子。

    6. Rotation 設置為 0, 360 以隨機定向每個粒子在發射點的圓周上。

    7. RotSpeed 設置為 -15, 15 以隨機發射每個粒子在每秒 -15 到 15 度之間。

    8. Speed 設置為 0, .01 以隨機發射每個粒子在 0 到 .01 studs 之間。

    9. LightEmission 設置為 0.25 以微微增亮粒子。

    10. LightInfluence 設置為 0 以防止環境光影響粒子的顏色。

  6. Command Bar 中,輸入以下字符串以在每個粒子的生命週期內將其大小從 5 增加到 20 studs,並具有小的變化範圍:

    workspace.Foam.MainDropFoam.FoamRipples.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,5,0), NumberSequenceKeypoint.new(1,20,5)}
  7. Explorer 窗口中,選擇 Foam 文件夾中的所有方塊部件,然後在 Properties 窗口中,將 Transparency 設置為 1 以使方塊不可見。

配置霧氣

當瀑布流撞擊水池時,一些水蒸發並在涼爽潮濕的空氣中凝結形成 霧氣。霧氣蒸汽不會像硬表面那樣捕捉光線;相反,它們以往往意想不到的方式反射光線,在整體環境中顯得明亮,直到它們完全蒸發。

示例通過在落差底部使用兩個 ParticleEmitter 物件來模擬這一過程。第一個粒子發射器有力地將粒子從撞擊點和懸崖推開,第二個發射器則發射粒子,這些粒子緩慢上升到天空。兩個粒子發射器的粒子在其生命週期的開始時是明亮的,並在其生命週期的結尾逐漸變得透明,隨著它們的蒸發。

與現實世界類似,霧氣蒸發過程允許彩虹形成,因為光線反射在小水滴上,示例也用一個 ParticleEmitter 物件模擬這一過程,該物件發射壽命短的彩虹粒子。這些粒子無論玩家從瀑布的哪個角度都面向相機,產生光線在霧氣本身上捕捉的視覺錯覺。

代表霧氣的 2D 紋理。
霧氣紋理 = rbxassetid://16830667309
代表彩虹的 2D 紋理。
彩虹紋理 = rbxassetid://16828911033

要重建示例 Waterfall Island 地方文件中從主要落差底部向外和向上移動的霧氣:

  1. Explorer 窗口中,在 Workspace 中創建一個 Folder 以包含所有霧氣相關物件,然後將文件夾重命名為 Mist

  2. 創建從瀑布流撞擊水池的地方輻射出去的霧氣。

    1. Mist 中插入一個 block 部件,然後將其重命名為 BaseMist

    2. 定位、定向並縮放 BaseMist 以面向從主要瀑布流撞擊水池的最密集部分。

      懸崖底部的側面角度視圖,方塊部件定位在瀑布流撞擊水池的點。方塊部件稍微傾斜,使得上面朝向懸崖。
    3. BaseMist 中插入一個 ParticleEmitter,然後將發射器重命名為 Mist

    4. 選擇 Mist,然後在 Properties 窗口中,

      1. Texture 設置為 rbxassetid://16830667309 以渲染看起來像濃霧的粒子。
      2. Color 設置為一個顏色序列,顏色從藍色開始然後變為白色。
      • Time = 0, RGB Value = 171, 244, 255
      • Time = 0.339, RGB Value = 251, 254, 255
      • Time = 1, RGB Value = 255, 255, 255
      1. Size 設置為一個數字序列,大小穩步增加。
      • Time = 0, Value = 8, Envelope = 0
      • Time = 1, Value = 10, Envelope = 0
      1. Transparency 設置為一個數字序列,其中粒子開始為透明,迅速變為不透明,然後在其生命週期中迅速變為透明。
      • Time = 0, Value = 1, Envelope = 0
      • Time = 0.0971, Value = 0.8, Envelope = 0.0625
      • Time = 1, Value = 1, Envelope = 0
      1. ZOffset 設置為 2 以使紋理稍微偏離水池。
      2. Lifetime 設置為 0.5, 1 以隨機設置每個粒子的生命週期在 500 到 1000 毫秒之間。
      3. Rate 設置為 20 以每秒發射 20 個粒子。
      4. Rotation 設置為 -360, 360 以隨機定向每個粒子在圓周上。
      5. RotSpeed 設置為 -50, 50 以隨機發射每個粒子在每秒 -50 到 50 度之間。
      6. Speed 設置為 35, 50 以隨機發射每個粒子在每秒 35 到 50 studs 之間。
      7. SpreadAngle 設置為 25, 25 以在 X 和 Z 軸上以一個小角度發射粒子。
      8. Acceleration 設置為 -10, -25, -10 以模擬濺起的水從水池向外爆炸的影響。
      9. Drag 設置為 1.5 以使粒子以指數衰減的方式失去速度。
  3. 創建從水池上升的霧氣。

    1. 複製 BaseMist,然後將其重命名為 RiseMist
    2. 定向 RiseMist,使發射粒子的部件的頂部面朝向天空。
    3. 選擇其子粒子發射器,然後在 Properties 窗口中,
      1. Lifetime 設置為 4 以將每個粒子的生命週期設置為 4 秒。
      2. Rate 設置為 3 以每秒發射 3 個粒子。
      3. RotSpeed 設置為 -10, 10 以隨機發射每個粒子在每秒 -10 到 10 度之間。
      4. Speed 設置為 25 以每秒發射每個粒子 25 studs。
      5. Acceleration 設置為 0, 0, 0 以移除之前的模擬。
      6. Drag 設置為 1 以使粒子以指數衰減的方式失去速度。
    4. Command Bar 中,輸入以下字符串以在每個粒子的生命週期內將其大小從 20 增加到 20 studs,並具有小的變化範圍:
    workspace.Mist.RiseMist.Mist.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,20,1), NumberSequenceKeypoint.new(1,25,5)}
  4. 創建彩虹。

    1. Mist 中插入一個 block 部件,然後將其重命名為 RainbowPart

    2. RainbowPart 定位在其他方塊部件的上方。

    3. Rainbow 中插入一個 ParticleEmitter,然後將發射器重命名為 Rainbow

    4. 選擇 Rainbow,然後在 Properties 窗口中,

      1. Texture 設置為 rbxassetid://16828911033 以渲染看起來像微弱彩虹的粒子。
      2. Size 設置為 25 以渲染大型粒子。
      3. Transparency 設置為一個數字序列,其中粒子開始為透明,變為稍微不透明,然後在其生命週期中再次變為透明。
      • Time = 0, Value = 1, Envelope = 0
      • Time = 0.497, Value = 0.363, Envelope = 0.05
      • Time = 1, Value = 1, Envelope = 0
      1. Lifetime 設置為 2, 4 以隨機設置每個粒子的生命週期在 200 到 400 毫秒之間。
      2. Rate 設置為 0.25 以每 4 秒發射一個粒子。
      3. Rotation 設置為 -20 以使每個粒子稍微傾斜。
      4. Speed 設置為 0 以每秒發射每個粒子 0 studs。
      5. Drag 設置為 1 以使粒子以指數衰減的方式失去速度。
      6. LightEmission 設置為 1 以使用加法混合來渲染粒子與其後面的顏色。這一步還去除了紋理本身的黑色背景。
      7. LightInfluence 設置為 0 以防止環境光影響粒子的顏色。
  5. Explorer 窗口中,選擇 Mist 文件夾中的所有方塊部件,然後在 Properties 窗口中,將 Transparency 設置為 1 以使方塊不可見。

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。