(內含一些肥大的gif圖,用手機點到此頁的朋友請多留意)

 

雖然用Unity做特效有段時間了,但在教別人時卻無法流暢的講出一套易懂的解釋,所以想試著把他轉換成文字,重新審視自己會的部分。

我對Unity並不算熟捻,只對粒子略有了解,還請大家多多指教。

以下就常用的功能進行簡介,Unity版本為 5.4.2p3

此篇內容可以搭配官方HELP文件

 

[粒子特效&面版概念]

 

粒子,原本是用來計算天文物理的粒子。隨著計算硬體的進步,開始被拿來製作特效,呈現一些非穩定的物體效果。

在Unity,我們噴發粒子,並在上面貼圖,讓他呈現我們要的效果

200907101515364910  

我們可以從GameObject中找到ParticleSystem,點下後隨即誕生粒子在場景之中,

 

 

而他的屬性面板,就是這次教學的重點

 

這些參數部分的右側有箭頭,代表這參數可以切換成區域亂數、曲線和雙曲線。前面有提到,粒子是用來模擬非穩定的效果,所以一個漂亮、自然的特效,會含有許多亂數及曲線

 

 

 

 以下開始介紹常用參數

 

Duration

持續時間,這個參數是控制粒子播放一輪要,設定1的話,就是粒子發射一秒後便結束一個循環且停止撥放。以下部分參數以曲線設定時,時間軸是Duration的數字

 

 

 

 

Looping

循環,當它被勾起後,粒子播放一輪後會重新開啟一輪循環,一直重複下去,常用在長時間播放的效果上,如場景特效,buff特效,武器特效和介面特效

 

Prewarm

預熱,當它被勾起後,粒子在play的瞬間就會呈現播放許久的狀態。這要如何用呢?假設我們現在場景中有一個火把,開啟了Loop,此時我們進入場景時,會看到火把這時候才開始燒起來,這樣並不自然,因此我們要將此功能開啟,一進場景時,火把就會是已經啟動一段時間的狀態了。

另外,這個功能只要在Loop啟動時才能使用,且會讓Delay時間會失去效果。

 

Start Delay

延遲時間,可以將粒子延後播放。大部分的特效是多種粒子複合使用的,他們的播放時間要錯開

 

Start Lifetime

起始壽命時間,這是粒子的存活時間,超過這個時間的粒子將會消失

 

Start Speed

起始速度,這裡是控制粒子誕生時的噴發速度,其方向會隨著發射器的shape不同,而有不同的方向。

 

Start Size

起始大小,可以控制粒子的大小,而將3D選項勾起,則可以進行單軸向的縮放,這是比較近期的版本才有的功能。如果粒子大小沒有如預期的變大時,可以拉到面板最下方的render,看看裡面的max particle  size是不是局限了此粒子的大小。

 

Start Rotation

起始旋轉,這裡的旋轉是指誕生時的角度,並不是轉速。此參數在render的Stretched Billboard開啟時會失去作用

 

Start Color

這裡可以對粒子進行染色和控制他的Alpha,點開右側的箭頭,可以切換成雙色亂數或是漸層

 

Gravity Modifier

重力,這能對粒子施加垂直向上或向下的加速度

 

Simulation Space

這是設置粒子的模擬空間,有local和world兩個屬性可以設置,當設置成local時,粒子會跟著父層物件一起移動,設置成world時,粒子不會跟著父層物件移動,會殘留在世界空間之中。

 

Scaling Mode

此參數的設置能決定粒子的size和發射器形狀能不能被父層物件的scale大小控制

 

Play on Awake

當參數勾選的時候,粒子會在場景play的瞬間,啟動本粒子

 

Max Particles

可以控制粒子同時存在的上限,只要粒子數量到達此數字時,便不會繼續誕生,除非粒子因壽命結束或其他條件而消失時,才會繼續誕生

 

Random Seed

雖然我們可以讓粒子參數有亂數運行,但其實這隨機方式在程式內是有編號的,這就是Random Seed,如果想要每次都有相同的亂數結果,則可以用這個指定亂數編號。

 

------------

以上是粒子的基本參數, 接下來的參數如有需要,則要在參數左側進行勾選,才能啟用

 

Emission
發射器,這裡控制了粒子噴發的數量,預設的噴發方式是time,代表一秒內要產生多少粒子。右下角的+則可以在指定時間瞬間噴發特定數量的粒子,這的時間設置則不能大於Duration數值

而另一個噴發方式是Distane距離,當物件產生移動時,會根據距離產生粒子,例如做跑步產生的塵煙,有跑才噴煙,沒動則停止,這個參數必須是Simulation Space為World時才有效果

 

Shape 

這能定義發射器的形狀,不同的形狀就像是變化了水龍頭口一樣,粒子的噴發方法與位置會有所不同,也會改變Speed的的方向,基本形狀有方塊、球、錐、半球、線、圈以及自定義形狀的mesh


Velocity Over Lifetime

隨著壽命改變速率,對XYZ三軸輸入數值,可以直接改變粒子的飛行方向,如果用曲線設定,則可以讓粒子隨著時間改變方向,在製作粒子螺旋向上,或是左右飄動的效果是滿重要的參數。

 Over Lifetime這類的參數,曲線時間軸該粒子的壽命時間

 

Limit Velocity Over Lifetime

 隨著壽命限制速率,簡單的說就是煞車功能,用一個阻尼(Dampen)讓粒子減速到指定的速度,在做爆炸、噴發表現時,常會用到這功能

 

Inherit Velocity
繼承速率,若父層物件有動態的時候,粒子會繼承他的速率向量,數值1是100%繼承,0.1則是10%

 

Force Over Lifetime
隨著壽命時間改變力量,這很像Velocity Over Lifetime,但Force是一種加速度,想像他是可以控制方向的重力就行了

 

Color Over Lifetime
隨著壽命改變顏色和Alpha的漸層,這是非常重要的參數,如果沒有設定這個,粒子會以不自然的方式瞬間誕生和消失,所以會時常在這做淡入淡出的效果

 

Color By Speed
隨著速度改變顏色,搭配前面的速率控制,可以做出粒子停下來時,消失(Alpha=0)的效果

 

Size over Lifetime
隨著壽命改變大小,這也是非常重要的參數,同樣發現粒子大小沒有如預期的變大時,可以拉到面板最下方的render,檢查max particle size是不是局限了此粒子的大小。

 

Size by Speed
隨著速度改變大小。

 

Rotation Over Lifetime
隨著壽命改變旋轉,這裡設360的話,表示粒子在誕生到壽命結束時,會整整旋轉360度。

移動中的塵煙、光點如果沒有任何旋轉,視覺上會感覺非常奇怪,增加適量的亂數旋轉,可以讓效果更加自然,不過,當Render的 Stretched Billboard開啟時,此參數會失效

  

Rotation By Speed
隨著速度改變旋轉

  

External Forces
外部力量,當需要使用風之類的力場影響粒子的話,這裡需要開啟,給予數值1,則有100%的影響力

 

Collision module
粒子的碰撞設定,想要讓碎石粒子能夠在地上彈跳,或想要粒子撞到碰撞物的瞬間就死亡, 都要在這設定,此面板比較複雜,有機會再一一解釋。另外,碰撞比較耗效能,所以要斟酌使用

 

Sub Emitters
子發射器,在這裡有幾個簡單的條件可以設定,粒子在運作時中達成條件後便在原地產生新的子層粒子發射器,是製作複雜特效時,很常用的功能。能設定的條件有誕生、碰撞、死亡,每個條件最多產生兩個子層粒子,直到最近的版本才能更多。

 

Texture Sheet Animation
連續貼圖動畫,比較複雜的效果,光靠上述的參數是難以辦到的,或是需要大量粒子才能呈現,這樣不太好,所以需要使用連續貼圖動畫,每一顆粒子的貼圖換成一串動畫,搭配旋轉縮放的參數,就可以讓整體效果有豐富的細節,常用在火焰、塵煙、閃電以及爆炸

而連續貼圖的製作方式就是將每張動畫圖由左到右,由上到下依次序排列。並給在此面板告訴Unity這張圖的長寬各是幾張圖,例如下圖第一張是4X4,輸入後就能照著順序撥放貼圖。
 

貼圖大小,最好是2的倍數,512*512這樣

 

 Renderer

渲染,只要Render沒有開啟,粒子就會看不到(但實際上還是有在運作)

這裡包含了渲染相關的一切,可以指定粒子材質,還有選擇渲染的模式,比較常用的有以下三種

Billboard:粒子的預設狀態,會永遠面對鏡頭

Stretched Billboard:此模式的粒子會根據向量方向進行粒子拉伸縮放,滿頻繁使用的,但隨著近幾版的Unity可以進行size的單軸縮放後,開始慢慢被取代掉了,因為他在使用上還是有許多限制的。

Horizontal Billboard:粒子將永遠平行於地面,做地板的裂痕或是假的照明效果,可能會用到

Mesh:用噴發粒子的方式來噴發模型,有可能噴發石頭,也可能用來做角色殘影,最常是用來製作各式光圈光柱搭配貼圖,呈現強勁的鬥氣。

 

此效果的貼圖為

 

同時Render這邊還控制了排序(Sorting Fudge)

 

 和影子這類重要參數,尤其是影子,粒子產生影子時幾乎都是呈現一個方塊,非常不好看,所以要確認是否關閉 

---------

以上就是粒子面板各式參數的的簡單介紹,只有粗淺地解釋功能,詳細的細節參數,等碰到問題時,再來一一解釋。

現在我們有了概念後,上網看別人的教學比較容易看得懂了,在此分享幾個地方

 

imn nam的教學頻道

cg how
這裡有詳盡的Unity和UE4特效實用教學

 

中國的論壇CG JOY

這邊可以看到各式各樣的特效成品與教學,且不局限於Unity

 

 FB社團遊戲人特效魂

這是朋友新開的遊戲特效社團,文章還不算多,但也是少數討論遊戲特效的社團,一起把他經營起來吧  (嗯,我在打廣告)

 

 

 

 

 

 

 

arrow
arrow
    全站熱搜

    修奇 發表在 痞客邦 留言(3) 人氣()