unity粒子系統筆記

做Unity這麼久很久沒有寫筆記了,這個比例記錄一下Unity粒子系統屬性,方便以後工作查閱。

初始化模塊

duration:粒子系統發射粒子的持續時間。

Looping:粒子循環

Prewarm:粒子預熱,若開啓,則粒子系統在遊戲運行初始就已經發射粒子了,只有在粒子系統循環播放下才能開啓此項。

Start delay:粒子初始延遲,在開啓粒子預熱時無法使用此項。

Start lifetime:粒子生命週期,單個粒子從發射到消亡的存活時間,以秒爲單位。

Start speed:粒子初始速度。

Start size:粒子初始大小。

Start rotation:粒子初始旋轉。

Randomize rotation:導致一些粒子在相反方向旋轉,值範圍0~1,值越大,反方向旋轉粒子越多,當值爲1的時候,全部粒子反方向旋轉。

Start color:粒子初始顏色。

Gravity modifier:重力修改器。

Simulation space:模擬空間,隨本地座標還是世界座標移動,
包括以下三個選項:
        1.Local:表示發射出來的粒子屬於本地粒子發射器,粒子發射器在哪裏粒子就在哪裏,粒子之間保持原有互動。
        2.World:表示發射出來的粒子屬於世界的,當粒子發射器移動,已經發射的粒子還是留在原地,可以製作拖尾效果。
        3.Custom:可以設置粒子系統受某物體移動的影響。物體停止運動,影響停止。

Simulation speed:模擬速度,默認值爲1,以倍數的形式整體更改播放速度,類似快進。

Scaling mode:縮放模式,包括以下三種:
        1.Hierarchy:受自身縮放影響,也受父級的縮放影響。
        2.Local:只受自身的縮放影響。
        3.Shape:不受縮放的影響,只與發射器有關。

 

Renderer渲染模塊

Unity編輯器把這個模塊放在最下面,從重要性的角度上來看我覺得這個模塊是很重要的,因爲粒子特效的材質是在這個模塊中定義的,我們要製作一個粒子特效,首先就是要選定他的材質。



Billboard:廣告牌,讓粒子始終面向相機。

Stretched Billboard:拉伸廣告牌
使用下列三個參數拉伸粒子。

        1.相機縮放 (Camera Scale):攝像機的速度對於粒子伸縮影響程度。
        2.速度縮放 (Speed Scale):通過對比粒子速度來確定其長度。
        3.長度縮放 (Length Scale):通過對比粒子寬度來確定其長度。

Horizontal Billboard:水平廣告牌,讓粒子與 XZ 平面對齊。

Vertical Billboard:垂直廣告牌,讓粒子與 Y 軸對齊。

Mesh:網格模式,使用網格而非四邊形渲染粒子。

Normal Direction:法線方向,值 0 至 1,確定法線與相機所成角度(0) 及偏離視圖中心的角度 (1)。

Material:材質,廣告牌或網格粒子所用的材質。

Sort Mode:排序模式,粒子繪製順序可通過距離、最先生成或最晚生成來排列。

Sorting Fudge:排序校正,使用該項影響繪製順序。具有較小排序校正數值的粒子系統更可能放在最後繪製,因此顯示在其他透明對象(包括其他粒子)前面。

Cast Shadows:投射陰影,粒子是否會投射陰影,由材質決定。

Receive Shadows:接受陰影,粒子是否會接受陰影,由材質決定。

MinParticle Size:最小粒子大小。

Max Particle Size:最大粒子大小,相對於視窗大小,設置最大大小。有效值:0-1。

emission發射器

這對於在模擬爆炸效果需要產生一大堆粒子的時候非常有用。

Rate over Time:每秒(單位時間內)發射粒子個數。

如果Duration是5秒,Max Particles是10的話,Rateover Time爲2,那麼就是每秒發射2個粒子,5秒就發射10個(當然,你要是較勁,親自數一數的話,最終其實只發射了9個,如果改爲5.1s,就能達到最大數目10)。現在如果把Rate改成10的話,那麼一秒就把所有的粒子發射完畢,接下來的四秒就無粒子可發。

Rate over Distance:粒子系統移動時,單位距離內發射的個數(“simulation space”必須設置爲世界座標)

Bursts:爆發,在給定時間點瞬間爆發給定的粒子個數

Time爲設定的爆發時間點,注意需要在粒子的持續時間內。

Min、Max:爆發點時最小和最大粒子數量。

Cycles:爆發多少次。

Interval:每一次爆發的時間間隔,單位秒。

shape 形狀模塊

主要是定義粒子的發射器的形狀,控制發射方向位置等

shape:球體(sphere)、半球體(hemishpere)、圓錐(Cone)、立方體(Box)、網格(Mesh)。可沿着表面法線或隨方向施加初始力。

(1)球體(Sphere)
       Radius:球體的半徑。
       Emitfrom Shell:從球體外殼發射。如果禁用此項,粒子將從球體內部發射。
       Align To Direction:是否沿着球體表面法線方向發射

       RandomDirection:粒子是在隨機方向還是沿着球體表面法線方向發射

(2)半球體 (Hemisphere)

       Radius:半球體的半徑。 
       Emitfrom Shell:從半球體外殼發射。如果禁用此項,粒子將從半球體內部發射。
       RandomDirection:隨機方向,粒子是在隨機方向還是沿着半球體表面法線方向發射。

(3)圓錐 (Cone)

        Angle:錐形斜面和垂直方向的夾角。如果角度爲0就是圓柱,粒子將在一個方向發射。

        Radius:發射點的半徑(錐形底面的半徑)。如果值接近零,則將從一點發射。
        Length:圓錐的高——地面和頂面的距離,受Emit From參數影響,僅從內部 (Volume) 或內部外殼 (Volume Shell) 發出時可用。

        EmitFrom:確定從哪裏發射出。可能的值有底部 (Base)、底部外殼 (Base Shell)、內部 (Volume) 和內部外殼 (Volume Shell)。

        Base:粒子從圓錐體底面的任意位置沿着體積方向發射出去。

        BaseShell:從地面的周長邊沿着測表面的方向發射。

        隨機方向 (Random Direction) 粒子是在隨機方向還是沿着圓錐方向發射?

(4)立方體 (Box)

        立方體 X 軸 (Box X) 立方體 X 軸的縮放。

        立方體 Y 軸 (Box Y) 立方體 Y 軸的縮放。

        立方體 Z 軸 (Box Z) 立方體 Z 軸的縮放。

        隨機方向 (Random Direction) 粒子是在隨機方向還是沿着立方體 Z 軸方向發射?

(5)網格 (Mesh)

         類型 (Type) 粒子可從頂點 (Vertex)、邊 (Edge) 或面 (Triangle) 發射。

         網格 (Mesh) 選擇網格 (Mesh) – 作爲發射形狀。

         隨機方向 (Random Direction) 粒子是在隨機方向還是沿着網格表面方向發射?

Velocityover Lifetime生命週期內的速度

直接動畫化粒子的速率,演示簡單的視覺行爲(例如飄蕩的煙霧),分爲x、y、z軸來調節,正數改變正方向的速度,負數改變負方向的速度。

Space:Local/world,速度值時本地座標系還是世界座標系中的值

Limitvelocity over lifetime:生命週期內的速度限制

基本上用於模擬阻力。如果超過設定的限定速度,就會抑制或固定速率。

SeparateAxis:分離軸。用於設置每個軸控制。

Speed:限制的速度。

Dampen:阻尼,範圍0-1,控制應減慢的超過速率的幅度。例如,阻尼爲1的時候,表示生命週期結束的時候,將超過的速率減慢100%,也就是速度降到限定的速度;將值爲 0.5,則將超過的速率減慢 50%。

Inherit velocity粒子速度繼承

對於運動中的粒子系統,將其移動速率應用到新生成的粒子速率上。

Initial:發射器的當前速度將被應用於每一幀的所有粒子。例如,如果發射器減速,所有的粒子也將減速。

Current:當每個粒子誕生時,發射器的速度將被施加一次。粒子誕生後發射器速度的任何變化都不會影響粒子。

Multiplier:粒子應該繼承的發射器速度的比例。

Forceover lifetime生命週期內的受力


XYZ:通過X、Y、Z軸來控制作用於粒子上的力。

Space:local/world,速度值時本地座標系還是世界座標系中的值。

Randomize:隨機化每幀作用於粒子上的力。

Color overlifetime生命週期內的顏色


Color:控制粒子在其存活期間的顏色。

Color by speed顏色隨速度變化


Color:用於重新映射速度的顏色。

Speed range:速度範圍,用於將速度映射到顏色上,某速度對應某顏色。

Size overlifetime生命週期內的粒子大小


Size:控制粒子在其生命週期內的大小。

Size by speed速度大小隨速度變化


Size:用於重新映射速度的大小。

Speed range:速度範圍,用於將速度映射到大小上。

Rotation overlifetime生命週期內的旋轉


Angular velocity:控制粒子在其生命週期內的旋轉速度。

Rotation byspeed旋轉隨速度變化


Agular velocity:映射粒子速度的旋轉速度。

Speed range:速度範圍,用於將速度映射到旋轉速度上。

Externalforces外力


Multiplier:乘數,粒子會受到風力的影響,當增加Multiplier的值,會加大風力對粒子的影響。

Noise噪聲


粒子運動中增加噪聲,可以改變粒子運動軌跡,創建出怪異不規則的運動。

Separate Axes:分離軸,想讓粒子往哪個方向飄,就對應XYZ軸調整速度,如果向四周散可以不勾。

Strength:粒子波動的強度,數值越高,粒子起伏越大。

Frequency:數值越大,粒子行進方向改變越快。

Scroll speed:滾屏速度,值越大,預覽窗口移動速度越大,隨着時間的推移,導致更多的不可預知和不穩定的粒子運動。

Damping:阻力,減震,默認勾上

Octaves:倍頻,指定多少層重疊的噪音組合在一起產生最終的噪音值。使用更多的層會帶來更豐富,更有趣的噪音,但會顯着增加性能成本。

Octaves multiplier:按此比例降低強度

Octaves scale:數值越大波動頻率越快。

Quality:品質,一般選high,效果最好看,性能成本高

Remap:映射,對應分離軸參數。可以再一次調整粒子波動強度

Collision碰撞


爲粒子系統設置碰撞,支持世界碰撞和平面碰撞,世界碰撞採用光線投射。

Planes/world:planes指平面碰撞,world指世界碰撞。

平面碰撞支持6個平面,點擊+號可以添加現在有的平面或是新建立一個

Dampen:阻尼,範圍0~1,粒子碰撞時,其將保持這一速度比例,粒子在碰撞後變慢。設置爲1.0,完全抑制,可以使碰撞的粒子消失。

Bounce:反彈(0~2),粒子系統碰撞時,讓產生碰撞的粒子以某個角度反彈出去。

Lifetime loss:生命減弱(0~1),每次碰撞後初始生命週期減弱比例。生命週期達到0後,粒子死亡。例如,粒子在第一次碰撞時死亡,則該屬性設爲1.0。

Min kill speed:粒子在被殺死前的最小速度,當速度小於這個值的時候,粒子消失。

Send collision messages:發送碰撞消息。確定是否觸發遊戲對象和粒子系統上的OnParticleCollision回調。

只在平面模式中可用的屬性

Planes:平面。通過向變換分配引用來定義。該變換可爲場景中的任何變換,且可動畫化。可以使用多平面。注意:Y 軸用作平面法線。

Visualization:可視化。僅用於將平面可視化:網格 (Grid) 或實體 (Solid)。

網格 (Grid) 渲染爲小圖示,能快速指出在世界中的位置和方向。

實體 (Solid) 在場景中渲染平面,用於精確定位平面。

Scale Plane:縮放平面。調整可視化平面大小。

Particle Radius:粒子半徑。因碰撞目的假設的粒子半徑。(因此,粒子視爲球體。)

只在世界模式 (World Mode) 中可用的屬性

Collides With:碰撞對象。用於指定碰撞器的篩選器。選擇所有東西 (Everything),來與整個世界碰撞。

Collision Quality:世界碰撞的質量。

->高質量 (High):每個粒子會每幀與場景做一次射線碰撞檢測。注意:這是 CPU 密集型應用,只能使用 1000 個或更少的同步粒子。

->中等質量 (Medium): 在每幀中,粒子系統接收一部分全局設置粒子光線投射計劃(Particle Raycast Budget)。粒子以循環方式更新,其中在給定幀中不接收光線投射的粒子將查找和使用高速緩存中存儲的較舊碰撞物。注意:這類碰撞屬於近似碰撞,會遺漏一些粒子,特別是在角落處。

->低質量 (Low):除了粒子系統每四幀獲得一部分粒子光線投射計劃 (ParticleRaycast Budget)之外,其他與中等質量 (Medium) 相同。

Triggers


Colliders:需要傳入的觸發器。

粒子和觸發器之間的不同的狀態:

    1.Inside: 粒子在觸發器裏面

    2.Outside: 粒子在觸發器外面

    3.Enter: 粒子進入觸發器

    4.Exit: 粒子退出觸發器

每個不同的狀態後面有三個選項:

    1.Ignore: 忽略,表示粒子不做任何處理。

    2.Kill: 殺死,表示粒子會消亡。

    3.Callback:回調,需要代碼添加。

Radius Scale: 觸發半徑大小。

Visualize Bounds:勾選後,觸發半徑區域在scene視圖中可見。

Subemitters子發射器


可在出現下列粒子事件時生成其他粒子系統:粒子產生、死亡或碰撞。

Birth:該粒子系統中每個粒子產生時生成另一個粒子系統。

Death:該粒子系統中每個粒子死亡時生成另一個粒子系統。

Collision:該粒子系統中每個粒子碰撞時生成另一個粒子系統。

重要提示:需要使用碰撞模塊 (Collision) 建立碰撞。

Texture sheet animation紋理層動畫


在粒子生命週期內動畫化uv座標。按照從左到右,從上到下的順序一次渲染,列是X軸,行是Y軸。

Tiles:貼圖分塊數,通過X和Y軸的切割來確定期望效果。

Animation:Whole Sheet(整圖) Single Row(單行)

Random Row:隨機行,Single模式下才有此選項。

Row:行數,第一行爲0,Single模式下才有此選項。

Frame over Time:粒子生命週期內的幀數,提供了固定數值和曲線等方式。

Start Frame: 初始化幀

Cycles: 指定動畫速度,表示粒子生命週期內的貼圖渲染次數,默認1爲播放1次,2則在相同時間內播放2次。

Flip U/V:翻轉U/V

Enabled UV Channels: 允許你指定正確的UV流

將影片轉成unity particle可用的連續貼圖(每張貼圖只能是正方形的,2的冪次方尺寸爲佳):

--》準備影片素材,2、3秒即可,最好是全黑背景,到時可以直接用additive shader,不用摳圖。

--》使用quick time將影片輸出成連續圖片(file➡export)。

--》使用photoshop的action功能批量處理圖片,主要是裁剪成方形圖(建立action,文件➡自動➡批處理)。

--》使用texture packer工具合成一張png大圖,設置Algorithm爲Basic即可按照通過命名來依次排序。另外,還可以使用ps的“文件➡自動➡聯繫表II”的功能來合成圖片,注:不要選擇拼合圖層,否則會和白色背景層拼合在一起。

 

擴展:使用texture sheetanimation可以定位貼圖,所以可以製作一些貼圖合集,按照2次方的格子排列拼接成大圖,這樣很多粒子發射器可以共用一張貼圖和材質球,可優化Drawcall。

Lights


可以將實時光附着在一部分粒子上。

Light:指定一個Light prefab。

Ratio:0-1,描述將接收光的粒子的比例。

Range multiplier:光線範圍

Intensity Multiplier:光強度

Maxinum Lights:最大燈光數

Trails拖尾


爲粒子系統添加拖尾的效果

Ratio:比率,粒子產生拖尾的比率,範圍0~1。

Lifetime:粒子產生拖尾的時長,按照粒子壽命比例來計算,範圍0~1,影響拖尾的長度。

Minimum Vertex Distance:最小頂點距離,值越小拖尾跳動越小。

Texture Mode:貼圖模式

Die with particles:伴隨粒子死亡,勾上會隨粒子死亡而死亡。

Size affects width:勾上,拖尾寬度根據粒子大小而定。

Size affects lifetime:粒子大小影響拖尾的時長,也就是影響拖尾的長度。

Inherit Particle Color:是否繼承粒子的顏色,也就是跟隨粒子顏色而變化。

Color over lifetime:生命週期內的顏色。

Width over Trail:拖尾寬度。

color over Trail:拖尾的顏色。

以上就是自己的一些簡單筆記。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章