天天看點

unity 粒子系統面闆參數釋義

**unity 粒子系統面闆參數釋義**

如何在Unity中實作粒子效果?

首先,右鍵點選 Hierarchy欄,選擇effects->Particle System,這樣你就建立了一個粒子系統,如圖所示:

下面來介紹右側螢幕(Inspector)内的内容:

首先是Transform,分别為Position(位置)、Rotation(旋轉)、Scale(縮放),和其他元件一樣,在這裡不再贅述。

接下來是與粒子系統有關的值了。

首先看第一個子產品Particle System,

依次為:

Duration(持續時間),設定的值為秒;

Looping(是否循環),勾選則循環播放粒子效果;

Prewarm(預熱),隻有勾選了Looping後才能勾選。意思是粒子效果在實際場景中會預先加載,不會切換到場景後粒子效果突然出現而顯得比較突兀,比如火焰效果就會用到Prewarm;

Start Delay(延遲時間),機關為秒,設定粒子效果的延遲播放時間,0則為立即播放;

Start Lifetime(生命時長),粒子效果的生命時長,指粒子從出發點被發射出後能在螢幕上存活的時間。右側下拉菜單能切換Constant(常量)、Curve(曲線)、Random Between Two Constants(在兩個常量之間随機)、Random Between Two Curves(在兩個曲線之間随機);

Start Speed(初始速度),控制粒子飛行速度。右側下拉菜單能切換Constant(常量)、Curve(曲線)、Random Between Two Constants(在兩個常量之間随機)、Random Between Two Curves(在兩個曲線之間随機);

3D Start Size(是否控制每個粒子每個軸的大小),勾選後會允許你通過調整X、Y、Z軸調整粒子的大小,不勾選的話三個軸一起調整;

3D Start Rotation(是否控制每個粒子每個軸的旋轉),類似3D Start Size;

Randomize Rotation(使一些粒子的自旋方向相反);

Start Color(初始顔色),同樣可以選擇單顔色、區間、梯度;

Gravity Modifier(重力密度),調整粒子所受重力影響的程度,為零則關閉重力效果;

Simulation Speed(模拟速度),調整整個粒子系統的速度;

Delta Time(機關時間),有兩個選項Scaled(标定)和Unscaled(非标定),其中Scaled使用Time Manager中的Time Scale(時間比例)值,而Unscaled則忽略該值。這對于出現在暫停菜單中的粒子效果是有用的;

Scaling Mode(縮放模式),有三個選項Hierarchy(層次結構)、Local(本地)或Shape(形狀)。Local僅應用粒子系統本身的變換,忽略任何父對象。Shape則将比例應用到粒子的起始位置,但不影響它們的大小;

Play On Awake(建立時啟動),如果啟用,粒子系統會在建立時啟動。

Emitter_Velocity(發射速率),有兩種模式可以選擇Rigidbody(剛體)和Transform(變換),分别為使用剛體元件和變換元件來計算速度;

Max Particles(最大粒子數量),允許存在的最大數量;

Auto Random Seed(自動随機種子),如果啟用,粒子系統每次播放都看起來不同。設定為false時,每次播放都完全一樣;

Stop Action(停止動作),當屬于系統的所有粒子都已完成時,可以使系統執行一個動作。對于循環系統,隻有通過腳本停止時才會發生這種情況。

第二個子產品Emission(發射子產品):

Rate over Time(随時間的速率),每機關時間發射的粒子數量;

Rate over Distance(通過距離的速率),每機關距離發射的粒子數量;

Burst(爆發),産生粒子爆發的效果,通過Time(時間)、Count(數量)、Cycles(周期)、Interval(間隔)四個參數調整。

第三個子產品Shape(形狀子產品):

控制粒子的發射形狀,預設是Cone(錐形),有多種形狀可選,在這裡不再贅述。

第四個子產品Velocity over Lifetime(生命周期中的速度子產品):

X,Y,Z:分别控制三個軸方向上的速度,可以建立出向特定方向漂移的粒子。

Space(空間):确定是本地的軸還是世界空間中的軸。

Speed Modifier(速度調節器):延粒子的目前前進方向對粒子的速度應用乘數。

第五個子產品Limit Velocity over Lifetime(限制生命周期中的速度子產品):

Separate Axes(分開軸):将每個軸分為獨立的元件。

Speed(速度):設定粒子的速度限制。

Dampen(限制):超過速度限制時,粒子速度降低的部分。

Drag(拖拽):應用于粒子速度的線性阻力。

Multiply by Size(乘以尺寸):啟用後,較大的粒子受到阻力系數的影響越大。

Multiply by Velocity(乘以速度):啟用後,較快的粒子受到阻力系數的影響越大。

這個子產品用于模拟減緩粒子的空氣阻力是非常有用的。特别是當降低曲線用于降低速度限制時。例如,一場爆炸或煙火最初以極快的速度爆發,但粒子因空氣阻力而迅速減速。

第六個子產品Inherit Velocity(繼承速度子產品):

Mode(模式):指定發射器速度應用于粒子的方式。Current(目前)時發射器目前的速度将應用于每一幀的所有粒子。如果發射器加速或減速,所有的粒子都會加速或減速。Initial(初始)時每個粒子誕生時施加一次發射器的速度,之後發射器的速度将不會影響粒子。

Multiplier(乘數):粒子應繼承的發射器的速度比例。

這種效果對于從移動物體發射粒子非常有用,例如來自汽車的塵埃,來自火箭的煙霧,來自蒸汽火車煙囪的蒸汽,或者粒子最初應以速度的百分比移動的任何情況。當主子產品中的Space設定為World時,該子產品僅對粒子有影響。

第七個子產品Force over Lifetime(生命周期中的力子產品):

X、Y、Z:對每個粒子施加在三個軸上的力。

Space(空間):選擇力是在本地還是世界空間中應用。

Randomize(随機化):随機力的方向,會導緻更不穩定的運動。

流體在移動時常常受到力的影響。例如,煙霧從周圍的熱空氣中升起,會稍微加速。

第八個子產品Color over Lifetime(生命周期中的顔色子產品):

color(顔色):粒子在整個生命周期中的顔色梯度。梯度條最左邊的點表示粒子壽命的開始,梯度條的右側表示粒子壽命的結束。

許多類型的自然和幻想粒子随着時間的推移顔色不同,是以這種屬性有很多的用途。例如,發光的煙火在穿越空氣時會冷卻,而魔法可能會爆發出彩虹般的色彩。同樣重要的是alpha(透明度)的變化。當粒子的壽命結束時(如煙花、火花和煙霧顆粒),它們的褪色或消散都是非常普遍的,而漸變非常适合應用于這些場景。

第九個子產品Color by Speed(速度顔色子產品):

Color(顔色):定義在速度範圍内的粒子顔色梯度。

Speed Range(速度範圍):顔色梯度映射到速度範圍的最低端和最高端(速度範圍外的将被映射到端點)。

燃燒時發出的微粒(如火花)在空氣中快速移動時會更明亮地燃燒(暴露在更多空氣中),但随着速度變慢,會稍微變暗。該子產品可以用來模拟這個效果。

第十個子產品Size over Lifetime(根據生命周期的尺寸子產品):

Separate Axes(分開軸):單獨控制每個軸。

Size(尺寸):定義粒子尺寸在其壽命期間如何變化的曲線。

一些粒子在離開發射點時會典型地改變尺寸,例如氣體、火焰或煙霧顆粒。你可以通過改變粒子的曲線來實作這一點。對于通過燃燒燃料産生的火球,火焰粒子在排放後會趨于膨脹,但随着燃料用盡和火焰消散會收縮。在這種情況下,曲線會有一個上升的“駝峰”,然後回落到一個較小的尺寸。

第十二個子產品Size by Speed(根據速度的尺寸子產品):

類似于Size over Lifetime和Color by Speed,不再贅述。

第十三個子產品Rotation over Lifetime(根據生命周期的旋轉子產品):

第十四個子產品Rotation by Speed(根據速度的旋轉子產品):

何之前幾個子產品類似,不再贅述。

第十五個子產品External Forces(外部力量子產品):

Multiplier(乘數):适用于風區(wind zone)力的比例值。

地形可以包含影響樹木在景觀上移動的風區。啟用此部分可以讓風區從系統中吹出粒子。Multiplier(乘數)可以讓你縮放風對粒子的影響,因為它們通常受到的風力比樹枝更強。

第十六個子產品Noise(雜波子產品):

使用此子產品添加湍流粒子運動。

參數相對複雜,詳解見Unity文檔。

第十七個子產品Collision(碰撞子產品):

該子產品控制粒子如何在場景中與GameObjects相碰撞。 使用第一個下拉菜單來定義你的碰撞設定是否适用于plane(平面)或World(世界) 。 如果選擇World,則使用“ 碰撞模式”下拉菜單來定義碰撞設定是适用于2D還是3D世界。

平面子產品:

unity 粒子系統面闆參數釋義

Planes popup(平面彈出菜單) 選擇Plane模式。

Planes(平面) 一個可擴充的定義碰撞平面的變換清單。

Visualization(可視化) 選擇碰撞平面線框是否以場景視圖顯示為線框網格或實體平面。

Scale Plane(平面縮放) 用于可視化的平面尺寸。

Dampen(損傷) 碰撞後丢失的粒子速度的一部分。

Bounce(彈跳) 碰撞後從表面反彈的粒子速度的一部分。

Lifetime Loss(生命周期損失) 它碰撞時丢失的粒子總壽命的一部分。

Min Kill Speed(最小消失速度) 碰撞後低于此速度的粒子将從系統中移除。

Max Kill Speed(最大消失速度) 碰撞後超過這個速度的粒子将從系統中移除。

Radius Scale(半徑縮放) 允許您調整粒子碰撞球體的半徑,使其更貼近粒子圖形的視覺邊緣。

Send Collision Messages(發送碰撞消息) 如果啟用,則可以通過OnParticleCollision函數從腳本中檢測粒子碰撞。

Visualize Bounds(可視化邊界) 在“場景”視圖中将每個粒子的碰撞範圍渲染為線框形狀。

世界子產品:

unity 粒子系統面闆參數釋義

World popup(世界彈出菜單)

選擇世界模式。

Collision Mode(碰撞模式) 3D或2D。

Dampen(損傷) 碰撞後丢失的粒子速度的一小部分。

Bounce(彈跳) 碰撞後從表面反彈的粒子速度的一部分。

Lifetime Loss(生命周期損失) 它碰撞時丢失的粒子總壽命的一部分。

Min Kill Speed(最小消失速度) 碰撞後低于此速度的粒子将從系統中移除。

Max Kill Speed(最大消失速度) 碰撞後超過這個速度的粒子将從系統中移除。

Radius Scale(半徑縮放) 設定2D或3D。

Collision Quality(碰撞品質) 使用下拉菜單來設定粒子碰撞的品質。 這影響有多少粒子可以通過對撞機。 品質較低時,粒子有時會穿過對撞機,但資源密集度較低。

High

當“ 碰撞品質”設定為“ 高”時 ,碰撞總是使用實體系統來檢測碰撞結果。 這是最資源密集的選擇,也是最準确的。

Medium (Static Colliders) 當“ 碰撞品質”設定為“ 中等”(靜态碰撞體)時 ,碰撞使用體素網格來緩存先前的碰撞,以便在以後的幀中更快地重複使用。 請參閱下面的“ 世界沖突” ,了解有關此緩存的更多資訊。

“ 中”與“ 低 ”的唯一差別是“粒子系統”每幀查詢實體系統的次數。 中等每幀的查詢次數比低 。

請注意,此設定僅适用于永不移動的靜态對撞機。

Low (Static Colliders) 當“ 碰撞品質”設定為“ 低”(靜态碰撞體)時 ,碰撞使用體素網格來緩存先前的碰撞,以便在以後的幀中更快地重複使用。 請參閱下面的“ 世界沖突” ,了解有關此緩存的更多資訊。

“ 中”與“ 低 ”的唯一差別是“粒子系統”每幀查詢實體系統的次數。 中等每幀的查詢次數比低 。

請注意,此設定僅适用于永不移動的靜态對撞機。

Collision(碰撞) 粒子隻會碰撞標明圖層上的物體。

Max Collision Shapes(最大碰撞形狀) 粒子碰撞可以考慮多少個碰撞形狀。 過多的形狀被忽略,地形優先。

Enable Dynamic Colliders(啟用動态碰撞器) 允許粒子也與動态對象碰撞(否則隻使用靜态對象)。

啟用動态碰撞器 動态碰撞器是沒有配置為運動學的任何碰撞器(關于碰撞器類型的更多資訊參見碰撞器文檔)。

選中此選項可将這些碰撞器類型包含在碰撞中粒子響應的對象集合中。 取消選中此選項,粒子僅對靜态碰撞體發生碰撞。

Voxel Size(體素大小) 體素表示三維空間中規則網格上的值。 當使用中等或低品質沖突時,Unity會緩存網格結構中的沖突。 此設定控制網格大小。 較小的值會提供更高的準确性,但會花費更多的記憶體,效率也會降低。

注意 :隻有在“ 碰撞品質”設定為“ 中”或“ 低”時才能通路此屬性。

Collider Force(對撞機的力) 在粒子碰撞後對實體碰撞體施加一個力。 這對于将碰撞體推向粒子很有用。

Multiply by Collision Angle(乘以碰撞角度) 當對碰撞體施加力時,根據粒子和碰撞體之間的碰撞角度來縮放力的強度。 掠射角比正面碰撞産生的力更小。

Multiply by Particle Speed(乘以粒子速度) 當對碰撞體施加力時,根據粒子的速度來縮放力的強度。 快速移動的粒子比慢速粒子産生更多的力。

Multiply by Particle Size(乘以粒子尺寸) 當對碰撞體施加力時,根據粒子的大小縮放力的強度。 較大的粒子會比較小的粒子産生更大的作用力。

Send Collision Messages(發送碰撞消息) 選中此項即可通過OnParticleCollision函數檢測腳本中的粒子碰撞。

Visualize Bounds(可視化邊界) 在“場景”視圖中預覽每個粒子的碰撞球體。

細節

當其他物體包圍粒子系統時,粒子與這些物體互相作用時,效果通常會更有說服力。 例如,水或碎片應該被堅實的牆壁阻擋,而不是簡單地通過它。 啟用“ 碰撞”子產品後,粒子可能會與場景中的對象發生碰撞。

可以設定粒子系統,使其粒子通過從彈出視窗中選擇世界模式與場景中的任何碰撞器相撞。 也可以通過使用Collides With屬性根據其所在圖層禁用Colliders。 彈出視窗還有一個“平面”模式選項,它允許您将一組平面添加到不需要碰撞器的場景中。 這個選項對于簡單的地闆,牆壁和類似的物體是有用的,并且比世界模式有更低的處理器開銷。

當Planes模式啟用時,可以通過Planes屬性添加變換清單(通常為空的GameObjects)。 平面在物體的局部XZ平面内無限延伸,正Y軸表示平面的法向矢量。 為了協助發展,飛機将在場景中顯示為小玩意兒,而不管物體是否具有任何可見的網格物體。 Gizmos可以顯示為線框網格或實體平面,也可以縮放。 但是,縮放比例僅适用于可視化 - 碰撞平面本身通過場景無限延伸。

當碰撞被啟用時,粒子的大小有時是一個問題,因為它的圖形可以被剪切,因為它與一個表面接觸。 這可能導緻粒子在停止或彈跳之前出現在表面“下沉”。 “ 半徑比例”屬性通過為粒子定義一個近似的圓形半徑來解決此問題,以其實際大小的百分比表示。 這個大小的資訊是用來防止削減和避免陷入效應。

Dampen和Bounce屬性對于粒子表示固體對象時非常有用。 例如,礫石在抛出時傾向于從堅硬的表面反彈,但是在碰撞期間,雪球的顆粒可能會失去速度。 終生損失和最小殺傷速度可以幫助減少碰撞後殘留顆粒的影響。 例如,火球在空中飛行時可能會持續幾秒鐘,但碰撞後,單獨的火焰微粒應該迅速消散。

如果啟用“ 發送碰撞消息”,您還可以檢測腳本中的粒子碰撞。 可以将腳本附加到具有粒子系統的對象,也可以附加到具有對撞機的對象,或者兩者兼有。 通過檢測碰撞,你可以在遊戲中使用粒子作為主動對象,例如投射物,魔法和能量提升。 有關更多詳細資訊和示例,請參閱MonoBehaviour.OnParticleCollision的腳本參考頁面。

世界碰撞品質

“世界碰撞”子產品具有“ 碰撞品質”屬性,您可以将其設定為“ 高” ,“ 中”或“ 低” 。 當“ 碰撞品質”設定為“ 中等”(靜态碰撞體)或“ 低”(靜态碰撞體)時 ,碰撞使用體素網格(3D網格上的值)來緩存先前的碰撞,以便在之後的幀中快速重用。

該高速緩存由每個體素中的平面組成,其中平面表示該位置處的碰撞表面。 在每個幀上,Unity會檢查緩存中粒子位置的平面,如果有的話,Unity會将其用于碰撞檢測。 否則,它會問實體系統。 如果傳回沖突,則将其添加到緩存中,以便在後續幀上進行快速查詢。

這是一個近似值,是以可能會發生一些錯過的碰撞。 您可以減小體素大小值來幫助解決這個問題。 但是,這樣做會使用額外的記憶體,效率會降低。

“ 中”與“ 低 ”的唯一差別是系統允許查詢實體系統的每幀數量。 Low使每幀的查詢次數少于Medium。 一旦超過每幀預算,隻有高速緩存被用于任何剩餘的粒子。 這可能會導緻錯過的沖突增加,直到緩存更加全面地填充。

第十八個子產品Triggers(觸發器子產品):

當粒子系統與場景中的一個或多個Colliders互動時,它們就能夠觸發回調。 當粒子進入或離開對撞機時,或粒子在對撞機内部或外部的時間内,可以觸發回叫。

您可以使用回調作為一個簡單的方法,當它進入對撞機時(例如,為了防止雨滴穿透屋頂)破壞粒子,或者它可以用來修改任何或所有粒子的屬性。

“觸發器”子產品還提供“ Kill”選項以自動删除粒子,“Ignore”選項可忽略碰撞事件,如下所示。

unity 粒子系統面闆參數釋義

要使用該子產品,首先添加您希望建立觸發器的碰撞器,然後選擇要使用的事件。

你可以選擇觸發一個事件,每當粒子是:

在對撞機的邊界内

在對撞機的邊界之外

進入對撞機的界限

退出對撞機的界限

這裡類似于其他觸發器的設定。不再贅述。

第十九個子產品Sub Emitters(子發射器子產品):

讓粒子系統擁有自己的子發射器,用來實作類似複雜煙花的效果。

unity 粒子系統面闆參數釋義

第二十個子產品Texture Sheet Animation(紋理圖表動畫子產品):

網格模式屬性:

unity 粒子系統面闆參數釋義

精靈模式屬性:

unity 粒子系統面闆參數釋義

粒子動畫通常比字元動畫更簡單,更細緻。 在粒子單獨可見的系統中,可以使用動畫來傳達動作或運動。 例如,火焰可能會閃爍,蟲群中的昆蟲可能會像撲翼一樣震動或顫抖。 在粒子形成像雲這樣的單一連續實體的情況下,動畫粒子可以幫助增加能量和運動的印象。

您可以使用單排模式為粒子建立單獨的動畫序列,并在腳本之間切換動畫。 這對于建立變體或在碰撞後切換到不同的動畫可能很有用。 随機行選項非常有效,可以打破粒子系統中顯着的規律性(例如,一組重複完全相同的閃爍動畫的火焰對象)。 該選項也可以用于每行單個幀,以生成随機圖形的粒子。 這可以用來打破像雲這樣的對象的規則性,或者從單個系統産生不同類型的碎片或其他對象。 例如,bl might可能會發射一堆釘子,螺栓,球和其他抛射物,或者撞車的效果可能會導緻彈簧,汽車油漆,螺釘和其他金屬碎屑的排放。

UV翻轉是為您的效果添加更多視覺效果的好方法,無需編寫額外的紋理。

從“Mode”下拉清單中選擇“ Sprites”選項,可以定義每個粒子顯示的精靈清單,而不是在紋理上使用正常網格。 使用這種模式,您可以利用Sprite的許多功能,如Sprite Packer,自定義樞軸和每個Sprite架構的不同大小。 Sprite Packer可以幫助您在不同的粒子系統之間共享材質,通過紋理的貼圖,反過來可以通過動态分批提高性能。 使用此模式需要注意一些限制。 最重要的是,所有連接配接到粒子系統的精靈必須共享相同的紋理。 這可以通過使用多模式Sprite或使用Sprite Packer來實作。 如果為每個Sprite使用自定義軸心點,請注意,不能在它們的架構之間進行混合,因為每個架構之間的幾何圖形會有所不同。 隻支援簡單的精靈,而不是9片。 另外請注意,Mesh粒子不支援自定義樞軸或變化的Sprite大小。

第二十一個子產品Lights(光源子產品):

使用此子產品将實時光源添加到一定比例的粒子中。

unity 粒子系統面闆參數釋義

Lights子產品是一種快速添加實時燈光效果的方法。 它可以用來使系統投射到周圍環境,例如火災,煙火或閃電。 它也允許你讓燈繼承它們附着的粒子的各種屬性。 這可以使粒子效應本身發光的可信度更高。 例如,這可以通過使光線與其顆粒淡出并使它們共享相同的顔色來實作。

這個子產品使得很容易快速地建立大量的實時燈,而且實時燈具有高性能成本,尤其是在正向渲染模式下。 如果燈光也投下陰影,性能成本更高。 為了防止對排放速率的意外調整,進而導緻建立數千個實時燈,應使用Maximum Lights屬性。 建立比目标硬體能夠管理更多的燈光可能會導緻速度變慢和無響應。

第二十二個子產品Trails(軌迹子產品):

粒子模式:

unity 粒子系統面闆參數釋義

功能區模式:

unity 粒子系統面闆參數釋義

詳細選項類似前幾個子產品。使用該子產品能夠輕松實作子彈等效果。

第二十三個子產品Custom Data(自定義資料子產品):

unity 粒子系統面闆參數釋義

“自定義資料”子產品允許您在編輯器中定義自定義資料格式以附加到粒子。 你也可以在腳本中設定它。 有關如何從腳本設定自定義資料并将該資料提供給着色器的更多資訊,請參閱粒子系統頂點流的文檔。

資料可以采用Vector的形式,最多可包含4個MinMaxCurve元件,或者Color ,這是一個支援HDR的MinMaxGradient 。 使用此資料驅動腳本和着色器中的自定義邏輯。

每個曲線/漸變的預設标簽可以通過點選它們并輸入上下文名稱來定制。 将自定義資料傳遞給着色器時,了解在着色器内如何使用這些資料很有用。 例如,曲線可以用于自定義alpha測試,或者可以使用梯度向粒子添加第二顔色。 通過編輯标簽,能夠輕易地在使用者界面中記錄每個自定義資料。

第二十四個子產品Renderer(渲染器子產品):

unity 粒子系統面闆參數釋義

Render Mode讓您選擇幾個二維廣告牌圖形模式和網格模式。 使用三維網格物體,當它們代表堅固的GameObjects(如岩石)時,會給予粒子更多的真實性,并且還可以提高雲,火球和液體的體積感。 當使用2D Billboard圖形時,不同的選項可以用于各種效果。

Billboard Mode适用于表示從任何方向(如雲)看起來都相同的粒子。

Horizontal Billboard模式可以在粒子覆寫地面時使用(例如目标訓示符和魔法效果),或者當它們是平面飛行或平行于地面浮動的平面物體(例如,手槍)。

Vertical Billboard模式保持每個粒子直立和垂直于XZ平面,但允許它圍繞其y軸旋轉。 當使用正交相機時,這可能會有所幫助,并希望粒徑保持一緻。

Stretched Billboard模式突出顯示了粒子的速度,類似于傳統動畫裝置使用的“拉伸和壓扁”技術。 請注意,在“Stretched Billboard”模式下,粒子會對齊到面向相機,并與其速度對齊。 無論速度比例值如何,這種對齊都會發生 - 即使“速度比例”設定為0,此模式下的粒子仍會與速度對齊。

本文轉載至Unity特效基礎:粒子效果面闆

============================================================================參考于Unity官方文檔。

繼續閱讀