使用粒子系統(Particle System) 製作 2D 煙霧效果

首先需要一張煙霧圖片,這邊使用 Photopea 來製作做煙霧圖片,
進入 Photopea 後,選擇 檔案 -> 新增 , 會彈出新增專案畫面。

  • 將寬高設定為 512 像素 。
  • DPI 設為 100 像素/Inch 。
  • 背景選擇白色。

選擇 檢視 -> 顯示 -> 格線 。啟用格線,方便我們之後對齊

選擇 編輯 -> 選項 打開選項畫面,調整格線大小,由於 寬高是 512 ,我們想要切為四等分,因此設定網格間隙為 512 / 4 = 128

接著選擇 濾鏡 -> 渲染 -> 雲彩 。 建立一個雲霧的圖片

再建立一個新專案,寬高一樣是 512 , 但是這次背景選 透明

回到有雲彩圖片的專案,選擇套索工具,羽化設為 20 px , 使用 套索工具 切出煙霧圖案

按下 ctrl + c 將切出的圖案複製 , 切換到 背景透明的專案,按下 ctrl + v 貼上。可以使用移動工具,移動煙霧圖片,對齊中心。 如下圖:

最後,輸出煙霧圖片為 PNG

至此,我們的煙霧圖片就準備完畢了。

接著到 Unity 編輯器中。將煙霧圖片複製到裡面

建立一個 Material,命名為 SmokeMaterial

將 SmokeMaterial 的 Shader 更改為 Particles/Unlit

  • Surface Type 設為 Transparent 。設為透明。
  • Surface InputsBase Map 設為剛剛的煙霧圖片。

建立一個 GameObject ,命名為 Smoke 。接著在這個物件下建立一個 Particle System , 命名為 Smoke Particle System

以下開始設定 Smoke Particle System ,
Transform 組件

  • 預設噴射方向是朝 Z 軸方向噴射,由於是 2D 遊戲,我們將其 Rotation 的 X 設為 -90 , 讓粒子系統朝 Y 軸方向噴射,在畫面上會呈現朝上噴射。

修改以下模組
主模組

  • Start Life Time : 設為 Random Between Two Constants, 25
  • Start Speed :設為 Random Between Two Constants, 34
  • Start Rotation :設為 Random Between Two Constants, -180180
  • Scaling ModeHierarchy 。 讓粒子系統可以直接隨父級物件縮放。

Emission 模組

  • Rate over Time40 。 每秒生成的40個粒子。

Shape 模組

  • ShapeCone

Color over Lifetime 模組

  • 開始時顏色為白色且透明,逐漸變得不透明,然後變為黑色並再次變透明,模擬煙霧散去的效果。

Texture Sheet Animation 模組

  • ModeGrid 。確保煙霧圖片已經被切割為 2×2 的動畫格,這樣才能正確使用 Grid 模式來播放動畫。
  • Tile : 圖片是 4 個,因此 X, Y 設為 2
    • X2
    • Y2
  • AnimationWhole Sheet 。 整張圖片
  • Time ModeLifeTime
  • Frame over Time : 選擇 Random Between Constants , 數字填 03

Renderer 模組

  • Material : 更改為上面建立的 SmokeMaterial

最後效果如圖

參考: https://www.bilibili.com/video/BV1UY4y1n76t?spm_id_from=333.788.videopod.sections&vd_source=f103d4eb21cc24456defbcf356882852

評論