2013年9月8日 星期日

Unity3D 教學 ﹥13 Unity 粒子系統

http://www.cg.com.tw/Unity/htm/Unity_013.asp


Particles 粒子系統
遊戲中的火焰、煙霧、下雨、下雪、沙塵、爆炸等效果,若使用一般動畫的方式製作並不容易達到逼真的效果。透過 Unity 內建的粒子系統可製作出遊戲中所需的各種效果。雖然 3ds Max、Maya 等軟體也內建粒子系統,也有許多粒子系統的外掛程式,不過幾乎是無法匯入 Unity 使用的,仍須使用 Unity 內建的粒子系統來製作。
 ShadowGun 的火焰與煙霧

建立粒子系統
點選功能表 [ GameObject > Create Other > Particle System ] 在場景中新增一個粒子發射器,選取此粒子發射器時,即可在 Game 遊戲檢視面板看到粒子發射的模擬效果,右下方的 Particle Effect 面板可控制播放速度與播放時間。

設定粒子屬性
粒子系統可製作許多不同的效果,但是新增的粒子發器只會向上發射白色的粒子。選取粒子發射器後,透過屬性檢視可以設定粒子的屬性。
Ellipsoid Particle Emitter 粒子發射器屬性。
Particle Animator 粒子動畫屬性 - 設定粒子的動態效果。
Particle Renderer 粒子著色屬性 - 設定粒子在遊戲中呈現的結果。

Duration 粒子發射的時間(請將 Looping 循環關閉,否則粒子仍將持續發射)
Looping 設定粒子是否持續發射,預設為開啟。
Prewarm 預熱模式
Start Delay 發射延遲,若設定為 5 ,遊戲開始後經過 5 秒的時間才開始發射粒子,預設值為 0 (無延遲)。
Start Lifetime 粒子的生命週期,若設定為 5 ,粒子發射後經過 5 秒的時間即消失。
Start Speed 粒子的初始速度
Start Size 粒子的初始大小
Start Rotation 粒子的旋轉
Start Color 粒子的初始顏色(Unity 允許粒子產生顏色隨著時間變化的效果,請參閱 Color over Lifetime 設定
Gravity Modifier 重力修改器,預設值 0 代表粒子不受重力影響而往上移動,數值增加時粒子發射後會向下掉。
Inherit Velocity
Simulation Space 模擬空間 ( Makes particle positions simulate in worldspace or local space. In local space they stay relative to the Transform.)
Play On Awake
Max Particles 最大粒子數量,當場景中的粒子達到此數量時,發射器會暫時停止發射粒子,直到部份的粒子消失後再開始發射。

說明:Unity 3.5 版提供了新的粒子系統,請注意以下的教學不適用於 Unity 3.4 與更早期的版本。
Emission 設定粒子的發射率。
Shape 設定粒子發射器的形狀,可選擇 Cone 圓錐形、Sphere 球形、HemiSphere 半球形、Box 方塊等,發射器的形狀會影響粒子的前進方向。
Cone 圓錐形發射器
設定 Angle 角度可控制粒子發射為集中或散射。
Sphere 球形發射器
Box 方塊發射器
可設定粒子發射器長度、寬度、高度,適用於製作下雨、下雪… 等大範圍且均勻的粒子發射效果。
Mesh 網面發射器
Velocity over Lifetime

Limit Velocity over Lifetime

Force over Lifetime 粒子生命週期的力場
Color over Lifetime 粒子生命週期的顏色變化
前面介紹的 Start Color 可以製作顏色隨機變化的粒子,但是單一粒子的顏色是固定的,並不會隨著時間發生變化。勾選 Color over Lifetime 並開啟 Gradient Editor 漸層編輯器,上面的控制粒子透明度、下面的控制粒子顏色。

Color by Speed 依速度設定粒子顏色
控制粒子的顏色隨著速度產生變化。先點選 Color 開啟漸層編輯器,設定代表顏色變化的漸層,可透過 Speed Range 設定速度的範圍。

Size over Lifetime 粒子生命週期的大小變化
控制粒子的大小隨著速度產生變化,可選擇固定大小、越來越大、越來越小。

Sub Emitters 子發射器
設定此粒子系統的子發射器,請勿選擇自身的 ParticleSystem ,否則會出現 Circular References Detected 的訊息。

Collision 粒子碰撞效果
Planes 碰撞平面,當粒子撞到此平面時會彈開。

Render Mode 粒子著色模式
Render Mode 設定粒子的著色模式
Material 設定粒子的材質,預設為 Default-Particle 。
Sort Mode 排序模式 None, By Distance, Youngest First, Oldest First
Cast Shadows 設定粒子是否產生陰影,預設為開啟。
Receive Shadows 設定粒子是否接受陰影,預設為開啟。
Max Particle Size 設定最大粒子的尺寸,預設值 0.5
設定粒子的著色模式,選擇 Mesh 可讓您將粒子置換為自訂的 3D 物件,用於模擬群體效果(例如傾巢而出的蜂群、大量弓箭射出的效果),並可指定 Mesh 的材質。請注意使用 Mesh 時可能因為系統處理大量多邊形而發生執行效能的問題,建議您執行遊戲測試進行確認(按播放按鈕並點選 Stats 按鈕檢視 Statistics 狀態),若是 Graphics 圖像效能低於 30 FPS 時,可能帶來遊戲畫面流暢度不佳的感受。

使用 Unity 內建的粒子效果
除了使用以上方法新增粒子系統,您也可以使用 Unity 內建的粒子效果。從 Project 專案檢視展開 Particle System 並將您想使用的效果拖曳到場景,再透過屬性檢視修改屬性即可。
Dust 沙塵
- Dust Storm 沙塵暴,讓您在遊戲場景中製作沙塵暴的效果。
Fire 火焰
- Fire 1 火。
- Flame 火焰。
Legacy Particles
- Explosion 爆炸。
- Large flames 大型火焰。
- Small explosion 小型爆炸。
- Small flames 小火焰。
- Sparks 火花。
Misc 雜項
- Fireworks 煙火。
- Light Snow 飄雪。
- Sparks 火花。
Smoke 煙霧
- Detailed Smoke 細密的煙霧。
- Fluffy Smoke 蓬鬆的煙霧。
- Fluffy Smoke Large 蓬鬆的大範圍煙霧。
- Smoke Trail 煙霧軌跡,可用於製作飛彈的尾部煙霧。
Sparkles
- Sparkle Rising 上升的火花,可提示遊戲寶物、記錄點的位置。
Water
- Water Fountain 製作噴泉,您可能還需要自行製作一個噴水池的模型。
- Water Surface Splash 水面的飛濺效果,可用於製作瀑布或噴泉下方的水面效果。
- WaterFall 瀑布 - 讓您製作真實的瀑布景觀。

新功能! Unity 4.2 版的粒子碰撞
Unity 4.2 - Particle Collision callbacks