UE4個人學習總結

2021-09-10 02:19:43 字數 1974 閱讀 5019

級聯粒子系統編輯器,可以對粒子進行模組化的設計。乙個粒子系統建立後只有很少的 最基礎 的屬性,以及一些行為模組。

每個模組代表了粒子行為的乙個特定方面,並只對行為的該方面提供屬性引數,比如顏色、生成的位置、移動行為、縮放行為,及其他等。使用者可以在需要的時候新增或者刪除乙個模組,來進一步定義粒子的整體行為。由於這裡的結果中只有必要的模組才會被新增進來,因此並沒有額外的計算,也沒有不需要的屬性變數的參與。

在新增粒子發射器時,預設粒子模組為:

在使用粒子模組工作的時候要對兩個概念有所了解,他們是 初始狀態 和 生命週期 或者叫 每次生命 屬性。

如果將乙個屬性設定為 distribution 的型別,那麼它就會在時間過程上發生變化,有些模組使用「相對時間」而有些模組使用「絕對時間」(下面的 distribution 部分有更多說明)。

在使用級聯製作粒子效果的時候,需要始終記住每個物件之間的互相作用關係。在這篇文件中我們已經討論了模組的概念,但模組只是粒子特效中的乙個元件。總的來說,粒子系統的元件包括模組、發射器、粒子系統,以及發射器 actor。可以用以下描述來記住這些概念之間的關係:

正如特效本身有各種不同的型別一樣,發射器也分為不同的型別來製作各種特效。下面是目前可用的發射器型別:

需要注意的是,無論什麼型別,發射器預設都是麵片發射器。可以新增不同的發射器 型別資料 模組,改變發射器的型別。

特效系統中並不是每個部分都可以被預先定義下來。有時候,特效系統中一部分需要在執行時被控制及變化才能做到好的效果。比如,想要做乙個魔法效果,該效果會隨著能量的消耗而有變化,而能量消耗是基於施法行為的。在這種情形下,就需要向特效系統中新增引數。

乙個 引數 是指一種能夠將資料傳送給其他系統,並從其他系統接受資料的屬性,其他系統包括藍圖、matinee、乙個材質,或者其他**。在級聯中,幾乎任何乙個給定的屬性都能夠被設定到乙個引數上,也就意味著屬性能夠從粒子系統外部來控制。

舉個例子,將乙個火焰特效的 spawn rate 設定成引數並在遊戲中實時的根據玩家情況來增加或減小該數值,就能讓玩家控制火焰特效的強度。

相反,在粒子系統中新增到模組中的引數,也能用來驅動其他系統。比如驅動乙個在關卡中放置的給定材質的顏色。

粒子系統可以被設定為接受光照,這需要特別去設定。

要設定光照粒子的話:

材質要使用除 unlit 以外的 shading model。使用 defaultlit 將能夠處理法線貼圖、高光等。

在級聯的 lodsettings 中(在 lod 屬性中,可以看到這是所有模組和發射器都會處於非選中狀態),每個 lod中有乙個標記叫做 blit。該標記需要被勾選。這個標記只能在級聯中更新。

遵循這些過程將使粒子在遊戲中以光照模式顯示。它們從發射器的位置接受光照,因此要移動原始的位置觀察一下光照效果,或者在附近放置動態光源。

粒子系統很輕易的變得非常消耗效能。即使是使用 gpu 粒子時,雖然已經將大量的粒子運算轉移到 gpu 上,但仍然需要考慮不同的粒子離玩家的遠近以及它們產生的實際效果。

比如,假設有一堆營火,如果靠近看的話,可能會看見火焰的餘燼和火花在煙霧中顯現。然後,如果觀察點在幾百公尺遠處,餘燼的效果會小到比任何顯示器乙個畫素的尺寸還小,那何必還在這上面進行運算?

這時就需要細節級別(lods)的介入。lod 系統能夠自定義距離範圍,超過一定距離後粒子系統則會自動簡化。每個距離範圍對應乙個 lod。簡化的介入就是使用較低的數值,禁用一些模組,甚至禁用一些發射器。比如上面舉的營火的例子中,最好就是一旦玩家遠離了一定的距離後就徹底的禁用那些建立火花的發射器。

粒子系統可以有任意數量的 lods,並且可以為每個 lod 設定距離範圍。

distribution 是一組資料型別,以特殊的方式處理資料,比如為乙個數值應用乙個範圍,或者使用曲線來對數值做插值操作。如果粒子系統需要任何隨機屬性,或者粒子需要隨著時間進行變化時,就需要使用乙個 distribution 來控制屬性。

在級聯中的很多模組的屬性中都可以看到使用了各種不同的 distribution。屬性的實際數值就是通過 distribution 來設定的。

有 5 種主要的 distribution 型別:

UE4學習總結

標頭檔案 include components staticmeshcomponent.h 任意類 include camera cameracomponent.h 攝像機 include components inputcomponent.h 按鈕控制獲取 include gameframewor...

ue4渲染速度太慢 ue4效能優化 個人總結

思路 1.定位問題 渲染執行緒問題和遊戲執行緒問題 簡單理解就是美術負責的部分和程式負責的部分。2.常見問題 解決方案。1.定位問題 命令 1.stat unit 哪個高哪個就有問題 frame 渲染每一幀花費的時間,毫秒。game 遊戲執行緒每一幀花費的時間。draw drawcall花費的時間,...

UE4學習平台

自虛幻開源以來,ue4在中國都沒有存粹技術交流的社群 滿眼望去各種令人眼花繚亂的廣告以及套路深厚的商業模式 為了營造國內良好的技術氛圍 我們打算認真的把這個論壇做起來 改善中國 ue4的交流方式,互相解答各自的疑惑 精力有限,已經關閉了 精力有限,已經關閉了 精力有限,已經關閉了 精力有限,已經關閉...