UNITY粒子詳解及速度相關(guān)設(shè)定
之前我寫過(guò)一個(gè)unity粒子系統(tǒng)的使用介紹文檔,今天來(lái)在原來(lái)基礎(chǔ)上補(bǔ)充點(diǎn)fb上看到臺(tái)灣友人Kencoder CodeLab寫的內(nèi)容
舊的文檔部分(我不補(bǔ)圖了):
主面板ParticleSystem:
- Duration:粒子發(fā)射周期,可以簡(jiǎn)單的理解為粒子發(fā)射持續(xù)時(shí)間。
- Looping:粒子按照周期循環(huán)發(fā)射。
- Prewarm:預(yù)熱系統(tǒng),比如說(shuō)我有一個(gè)空間大小的粒子系統(tǒng),但是粒子發(fā)射速度有限,我想在最開(kāi)始的時(shí)候讓粒子充滿空間,此時(shí)就應(yīng)該勾選Prewarm。
- StartDelay:粒子延時(shí)發(fā)射,勾選后,延長(zhǎng)一段時(shí)間才開(kāi)始發(fā)射。
- StartLifeTime:粒子從發(fā)生到消失的時(shí)間長(zhǎng)短。
- StartSpeed:粒子初始發(fā)生時(shí)候的速度。
- 3DStartSize:這個(gè)屬性是當(dāng)你需要把粒子在某一個(gè)方向上擴(kuò)大的時(shí)候使用。
- StartSize:粒子初始的大小。
- 3DStartRotation:需要在一個(gè)方向旋轉(zhuǎn)了子的時(shí)候可以使用。
- StartRotation:粒子初始旋轉(zhuǎn)。
- RandomizeRotation:隨機(jī)旋轉(zhuǎn)粒子方向,感覺(jué)在3D粒子的情況下,尤其是圓形的沒(méi)什么用。
- StartColor:粒子初始顏色,可以調(diào)整加上漸變色。
- GravityModifier:重力修正。
- SimulationSpace:
Local 此時(shí)粒子會(huì)跟隨父級(jí)物體移動(dòng)。
World,此時(shí)粒子不會(huì)跟隨父級(jí)移動(dòng)。
Custom,粒子會(huì)跟著指定的物體移動(dòng),發(fā)射器本身不受影響
- SimulationSpeed:根據(jù)Update模擬的速度。
- DeltaTime:一般的DeltaTime都是1,這里說(shuō)的受世界的影響指的是游戲里面通過(guò)程序
Sacled:是在游戲需要暫停的時(shí)候,根據(jù)TimeManager來(lái)定,受到時(shí)間的影響
UnScale:忽略時(shí)間的影響。
- ScalingMode:Local:粒子系統(tǒng)的縮放和自己Transform的一樣會(huì)忽略父級(jí)的縮放。Hierarchy:粒子縮放跟隨父級(jí)。Shape:將粒子系統(tǒng)跟隨初始位置,但是不會(huì)影響粒子系統(tǒng)的大小。
- EmitterVelocity: 發(fā)射器速率 這里指的是和程序有關(guān)的transform.translate he rigidboady.velocity兩種方法
Transform
Rigidbody
- MaxParticles:粒子系統(tǒng)可以同時(shí)存在的最大粒子數(shù)量。如果粒子書數(shù)量超過(guò)最大值粒子系統(tǒng)會(huì)銷毀一部分粒子。
- AutonRandomSeed:隨機(jī)種子,如果勾選會(huì)生成完全不同不重復(fù)的粒子效果,如果勾選即為可重復(fù)。
- Stop Action 停止活動(dòng)時(shí) 。
Disable?無(wú)效;
Destroy 摧毀
Callback 回調(diào)。腳本可用于獲取
5.6vs2018新功能特效
一、基本選項(xiàng)
主要差異增加
1、Delta Time?一般的DeltaTime都是1,這里說(shuō)的受世界的影響指的是游戲里面通過(guò)程序
2、Emitter Verlocity?發(fā)射器速率
經(jīng)過(guò)一番暴力測(cè)試,發(fā)現(xiàn)這兩個(gè)選項(xiàng)貌似沒(méi)什么用,官方也沒(méi)用更新api說(shuō)明,所以我們可以暫時(shí)無(wú)視他們。
?
二、Shape
1、增加Rectangle 矩形,
2、增加Textrue貼圖選項(xiàng)
3、增加scale選項(xiàng)
主要為這3大塊
?
三、Velocity over Lifetime
改動(dòng)巨大,之前通過(guò)額外的腳本實(shí)現(xiàn)。
1、Linear 線性移動(dòng),在原有速度基礎(chǔ)上進(jìn)行xyz方向上的便宜,有點(diǎn)像風(fēng)的感覺(jué)。
2、Orbital 軌道 ?繞著xyz軸旋轉(zhuǎn)
3、Offset 偏移值 ??radial 半徑
4、Speed Modifier?速度修改
?
四、Limit Velocity over Lifetime
Drag 拖力 ?
?
五、Noise
Position Amount 位置影響值
Rotation Amount 旋轉(zhuǎn)影響值
Size Amount 大小影響值
增加了更大的隨機(jī)性
?
六、Trails
增加條帶模式Ribbon,原模式為粒子模式。大體參數(shù)差不多。
?
?
七、Render
增加masking遮罩,可以折疊內(nèi)外面的顯示,并不實(shí)用。
?
補(bǔ)圖部分

這次會(huì)研究一下Unity粒子特效中的速度設(shè)定;同一組粒子特效,不同速度會(huì)帶來(lái)不同感覺(jué);所以調(diào)整這設(shè)定時(shí),通常比較花時(shí)間;內(nèi)文會(huì)分享有那些不同設(shè)定和不同速度有什麼效果;
內(nèi)容大剛
速度在特效中的角色
Unity中速度相關(guān)的設(shè)定
粒子開(kāi)始速度 (Start Speed)
放大縮小速度
重力 (Gravity Modifier)
模擬速度 (Simulation Speed)
運(yùn)行速度設(shè)定 (Velocity Over Lifetime)
運(yùn)行減速設(shè)定 (Limit Velocity Over Lifetime)
外力設(shè)定 (Force Over Lifetime)
旋轉(zhuǎn)速度 (Rotation Over Lifetime)
速度在特效中的角色
表達(dá)動(dòng)感:快速,緩慢;例如火粒子很快,下雪的粒子很慢
表達(dá)打擊感:強(qiáng)打擊=快速,弱打擊=慢
表達(dá)遊戲信息:例如: 賽車的車輪的塵埃和火花很多很快,就代表車跑得很快;
製造動(dòng)態(tài):配合使用不同的速度設(shè)定,可以創(chuàng)造不同的動(dòng)態(tài)效果,例如:煙花、螺旋等
所以,在特效基礎(chǔ)形狀完成好,很多時(shí)間花在調(diào)整速度和時(shí)間;
示範(fàn):
Unity中速度相關(guān)的設(shè)定
Main Module
Start Speed : 粒子開(kāi)始速度
Size over Lifetime: 放大縮小速度
Simulation Speed: 模擬速度
Gravity Modifier: 重力
Velocity Over LifeTime: 運(yùn)行速度設(shè)定
Limit Velocity Over LifeTime: 運(yùn)行減速設(shè)定
Force over LifeTime: 外力設(shè)定,其實(shí)也是加減速設(shè)定
Rotation over LifeTime: 旋轉(zhuǎn)速度
粒子開(kāi)始速度 (Start Speed)
這個(gè)是最基本的設(shè)定,就是粒子生成時(shí)候的速度,其實(shí)只這個(gè)設(shè)定,已經(jīng)很製作很多很炫的特效;
而且這個(gè)設(shè)定,提供了4類設(shè)定Value的方法:
Constant : 所以粒子同一一個(gè)速度
Random ? : 粒子使用隨機(jī)速度
Curve ? ?: 粒子速度基於時(shí)段變化
Random Curve : 粒子速度基於時(shí)段變化,而去定義範(fàn)圍的隨機(jī)值

放大縮小速度
除了基本的Start Speed,如果把Size over Lifetime設(shè)定為漸大或漸?。?br/>修改 LifeTime 或 Size也會(huì)製作速度變化;
先了解一下 — 速度的公式:速度(Speed) = 距離(Distance) / 時(shí)間(Time)
如果用粒子的術(shù)語(yǔ)的話: ? 速度(Speed) = 大小(Size) / 壽命(LifeTime)
假如Size固定:LifeTime越小,變化速度也快;
假如LifeTime固定:Size越大,變化速度也快

重力 (Gravity Modifier)
粒子重力設(shè)定,例如落葉,落雨效果;不過(guò)也可以用與一些煙霧(上升)效果;
重力 = 0:粒子沒(méi)有受重力影響
重力 > 0:可以把粒子拉向下
重力 < 0:可以把粒子上升

模擬速度 (Simulation Speed)
模擬速度很簡(jiǎn)單,把整體特效加速或減速;
由於粒子系統(tǒng)有很多不同設(shè)定,如果直接修改速度設(shè)定的話,可能會(huì)影響了整體設(shè)定;所以,使用這個(gè)設(shè)定的話,可以不用擔(dān)心整體效果受影響了

運(yùn)行速度設(shè)定 (Velocity Over LifeTime)
運(yùn)行速度設(shè)定是粒子生成後的速度參數(shù),Unity提供了以下幾類的設(shè)定:
Linear – 線性速度
Orbital – 軌跡速度
Radial – 放射速度
線性速度 (Linear)
線性速度就是定義粒子在X、Y、Z軸的附加速度;當(dāng)Start Speed設(shè)定為0的時(shí)候,粒子會(huì)基於這個(gè)速度設(shè)定來(lái)運(yùn)行,但是如Start Speed不是0,粒子速度會(huì)是兩者總和的速度;
示範(fàn)1: 沒(méi)有其他速度參數(shù)影響

示範(fàn)2: 同時(shí)使用Velocity Over LifeTime和Start Speed

軌跡速度
軌跡速度就是定義粒子以粒子發(fā)射器的X、Y、Z軸為中心旋轉(zhuǎn)的速度;


如果不希望以粒子發(fā)射器為中心的話,可以使用offset來(lái)調(diào)整

放射速度
放射速度就是定義粒子前往/離開(kāi)中心點(diǎn)的速度;中心點(diǎn)只粒子發(fā)射器的位置;
如速度 > 0 : 粒子向外
如速度 < 0 : 粒子向內(nèi)

也是一樣,如果希望用其他中心點(diǎn),可以使用offset來(lái)調(diào)整;
備註:使用Shape = Sphere / Circle 配合Start Speed也能做到類似上面示範(fàn)的效果;
運(yùn)行減速設(shè)定
運(yùn)行減速設(shè)定就是在粒子運(yùn)行時(shí),有多少阻力;Unity粒子系統(tǒng)提供了兩類減速方法: Dampen 和 Drag;
Dampen 和 Drag都是相同的粒子減速,但是他們提供不同的條件;
Dampen: 提供Speed參數(shù)來(lái)控制是否需要減速,而粒子大小不受影響;
Drag: 減速的參數(shù),會(huì)受粒子大小/速度影響;不過(guò)也可以控制選擇是大小還是速度影響;
使用Dampen的效果:

Dampen和Drag的比較:

外力設(shè)定
和重力很像,可以控制粒子加速和減速,不過(guò)可以定義不同軸的外力;

旋轉(zhuǎn)速度
控制粒子旋轉(zhuǎn)的速度;這個(gè)設(shè)定,在很多情況下也很有用,下面有一些例子;

旋轉(zhuǎn)特效的MESH
飄雪

落葉

調(diào)整這個(gè)設(shè)定時(shí),需要調(diào)配合適的速度,例如大風(fēng)時(shí),落葉要轉(zhuǎn)快不轉(zhuǎn)慢;
總結(jié)
Unity粒子系統(tǒng)提供了很多速度參數(shù)可以使用,可以讓我們模擬很多不同的情況,或製作不同的動(dòng)態(tài);但是怎樣調(diào)整速度的值,我自己還未整理到很好的方法;不過(guò)有一些資源可給大家參考。
Artistic Principles of VFX #5: Timing
https://youtu.be/WLMVpcK0WvAPixar in a box: Graphing motion over time
https://www.khanacademy.org/partner-content/pixar/effects/particle-physics/v/fx6-finehttps://kendevlog.wordpress.com/2019/10/15/unity-particle-speed/?fbclid=IwAR1do_tLmPigq0OnLHR-U2tHjhBBN2FrWyEkF7kmXXdV3DkF3RJgeE68gDQ