粒子系統的 Emission Module

Emission Module 的屬性會影響粒子系統發射的速率和時間。在建立一個新的粒子系統 GameObject 時,預設會啟用這個模組。

屬性 說明
Rate over Time 單位時間內發射粒子的數量(以秒為單位)。這表示在每個時間單位內,系統會產生指定數量的粒子。例如:設為 10 表示系統每秒會產生 10 個粒子。
Rate over Distance 每移動一單位距離發射的粒子數量(以米為單位)。這表示粒子系統根據其移動距離來發射粒子,而不是時間。
例如:設為 5 時,則表示每移動一米時,系統會產生 5 個粒子。這個屬性在模擬由物體運動產生的粒子時非常有用(例如,從汽車輪子在泥土軌道上產生的灰塵)
這兩個值各自計算互不影響,例如系統在 10 秒內,移動了 5 米,那麼粒子系統會發射 10*(Rate over Time) + 5*(Rate over Distance) 個粒子
Bursts 一次性爆發是生成粒子的事件,這些設置允許在指定的時間點發射粒子。
Time :設置在粒子系統開始播放後多少秒的時間點上發射爆發。
Count :設置每次爆發可能發射的粒子數量。
Cycles :設置爆發要播放多少次。
Interval : 設置每個爆發周期觸發之間的時間間隔(以秒為單位)。
Probability :控制每次爆發事件生成粒子的可能性。越高的值將使系統產生更多粒子,若值為 1 則保證系統每次爆發事件都會生成粒子,不會有任何隨機性或不確定性。

發射(emission)率可以是恆定的,也可以根據曲線(curve)在系統的生命週期內發生變化。

Reference:

粒子系統的 Main Module

當建立一個新的粒子系統 GameObject,或是將粒子系統組件添加到現有的 GameObject 中時, Unity 就會將 Main Module 嵌入粒子系統中。

屬性 說明
Duration 粒子系統執行的時間長度(秒)
Looping 若啟用,粒子系統將會重複播放粒子
Prewarm 若啟用,粒子系統在播放前會先預加載。(只有在 Looping 屬性啟用時,才會生效)
Start Delay 粒子系統將延遲一段時間(秒)才播放
Start Lifetime 粒子系統的初始生命週期(秒)。也就是粒子在被建立出來到銷毀的這段時間
Start Speed 每個粒子的初始速度
3D Start Size 若啟用,則可分別控制每個軸的大小
Start Size 每個粒子初始的大小
3D Start Rotation 若啟用,則可分別控制每個軸的旋轉角度
Start Rotation 每個粒子的初始旋轉角度
Flip Rotation 讓一些粒子以相反的方向旋轉,值在 0 ~ 1,值越大,翻轉的越多。如值為 0.1 則會有 10%的粒子反轉。相反的方向是指與 Start Rotation 相反,當 Start Rotation 為 90 時,翻轉的粒子為 -90
Start Color 每個粒子的初始顏色
Gravity Modifier 縮放物理系統的重力值,值為零時會關閉重力
Simulation Space 目前粒子系統的參照座標。
Local space:控制粒子在父物件區域空間(local space)進行動畫,因此會隨著父物件移動。
World space :控制粒子在世界空間(world space)進行動畫。
Custom space :選擇一個物件,粒子將參照這個物件的位置
Simulation Speed 調整粒子的更新速度。當值為 0.5 則以半速播放, 1 則為原速播放
Delta Time Scale :會受 Time Scale 影響
Unscaled :不受 Time Scale 影響。例如:在暫停選單中,還可播放粒子。
Scaling Mode 選擇如何使用 transform 的縮放比例(scale)。
Hierarchy :粒子將跟隨父物件進行縮放。
Local :忽略任何父物件的transform,僅應用粒子系統 transform 的縮放比例。
Shape :將縮放應用於粒子的起始位置(start positions),但不影響它們的大小。
Play on Awake 如果啟用,在物件建立時,粒子系統就會自動啟動
Emitter Velocity 選擇粒子系統如何計算 Inherit Velocity 和 Emission 模組所使用的速度。
Rigidbody :若 Rigidbody 存在,則粒子系統可以透過 Rigidbody 計算速度。
Transform :透過追蹤 Transform 的移動來計算速度。 如果 Rigidbody 不存在的話,預設會使用 Transform
Custom :使用自訂的速度。
Max Particles 粒子的最大值,如果達到這個限制則會移除一些粒子
Auto Random Seed 如果設為 true ,則粒子系統每次播放時看起來都會不同。若設為 false ,則系統每次播放時都會相同
Random Seed Auto Random Seed 設為 false ,該值用於建立一個唯一的可重複效果
Stop Action 當系統中的所有粒子都結束時,可以讓系統執行某個動作。當所有粒子都消失且系統的運行時間超過其持續時間時,系統會被認為已停止。若循環播放(Looping)的系統,只有通過腳本停止系統時才會執行這個動作。
動作可以設為:
Disable :GameObject已停用。
Destory : GameObject已Destory 。
CallbackOnParticleSystemStopped Callback 會發送到附加在該 GameObject 上的所有腳本。
Culling Mode 選擇是否在粒子離開螢幕時暫停粒子系統的模擬。
Automatic :如果 Looping 啟用,則會使用 Pause ;其他的則會使用 Always Simulate
Pause And Catch-up :系統在離開螢幕時會停止模擬。當再次進入時,系統會執行一個大的步驟以達到在沒有暫停時應處於的位置。在複雜的系統中,這個選項可能會導致很高的效能損耗。
Pause :當螢幕關閉時,系統會停止模擬。
Always Simulate : 總是模擬,即使螢幕關閉也會模擬
Ring Buffer Mode 保存粒子存活,直到達到最大粒子數量。當新的粒子生成時,會回收最老的粒子,而不是在它們的生命結束時移除。
Disabled :停用 Buffer ,當粒子的生命週期結束時,系統會直接刪除粒子。
Pause Until Replaced :當粒子的生命週期結束時,會暫停這些舊的粒子,直到達到 Max Particle 的限制,一旦達到限制,系統會將這些暫停的粒子回收,讓它們重新出現為新的粒子。
Loop Until Replaced :在粒子結束生命週期時,它們會倒回到其生命週期的指定比例,直到達到最大粒子數量限制。一旦達到限制,系統會將這些粒子回收,使它們重新出現為新的粒子。

Start開始的屬性,如 lifetime , speed , size , rotation 與 color 等指定了粒子發射時的初始狀態。
所有粒子系統會使用物理設定中的重力,在 Gravity Modifier 的值可以用來調節重力的縮放,如果設為零則可關閉重力,讓粒子不被重力影響。
3D Start Size 屬性讓你可以個別指定粒子的寬(x),高(y)與深度(z),深度只會做用在 3D 網格(Mesh)中。此外還可為這些屬性設定隨機值,其值範圍可介於兩個常數或曲線之間。

Reference:

粒子系統(Particle System)

粒子系統(Particle System)是一種用於模擬和渲染大量微小物件的技術,這些微小物件通常用於建立一些視覺效果,如火焰、煙霧、爆炸、流星、雨、雪等。

在 Unity 建立一個粒子系統的方式和建立其他組件的方式一樣,在編輯器中 Effects -> Particle System

粒子系統有多個模組和屬性可以使用,我們可以根據需要啟用某些模組。預設會啟用 EmissionShapeRenderer

模組 說明
Main 包含會影響整個粒子系統的全局屬性(global properties)。
Emission 控制粒子的發射速度,時間,波次
Shape 第一發射粒子的體積和形狀
Velocity over Lifetime 控制粒子在生命週期中的速度
Limit Velocity over Lifetime 在生命週期內限制粒子的速度
Inherit Velocity 控制粒子的速度如何隨時間推移而受到其父物件移動的影響
Lifetime by Emitter Speed 用來控制粒子系統中每個粒子的生命週期如何受到發射器速度的影響。
Force over Lifetime 通過此模組中指定的力來對粒子產生影響
Color over Lifetime 指定粒子的顏色和透明度在其生命週期中如何變化
Color by Speed 設定粒子的顏色根據粒子速度(每秒的距離單位)變化
Size over Lifetime 控制粒子在其生命週期內的大小
Size by Speed 設定粒子的大小,根據粒子速度(每秒的距離單位)變化
Rotation over Lifetime 控制粒子在其生命週期內的旋轉
Rotation by Speed 設定粒子的旋轉,根據根據粒子速度(每秒的距離單位)變化
External Forces 修改力對粒子的影響
Noise 未粒子添加噪音值
Collision 控制粒子如何與場景中其他遊戲物件發生碰撞
Triggers 控制粒子的觸發事件
Sub Emitters 在某粒子生命週期的階段建立附加粒子發射器
Texture Sheet Animation 控制動畫幀進行播放
Lights 控制粒子的光照
Trails 控制粒子的軌跡(拖尾)
Custom Data 在編輯器中定義要附加到粒子的自訂資料格式
Renderer 設定粒子的圖案或網格如何被其他粒子變換,著色和繪製

Reference: