虛幻4 汽車行駛如何產生揚塵和濺水的效果
關鍵詞:unreal4、虛幻4、汽車、揚塵、濺水、粒子效果
實現思路:通過在四個車輪的底部添加四個ParticleSystem,並通過blueprint控制粒子系統的施放邏輯。
一、虛幻4汽車在沙地上行駛時,如何揚起塵土?
A.首先,需要先把粒子效果制作出來,可以參考官方學習教程的”賽車遊戲”裏開車時的粒子效果。
將賽車遊戲下載下來後,創建工程。
創建後可試玩,看一下效果。
B.在World Settings找到GameMode模塊,點擊右邊的查找圖標,查找默認的PawnClass並打開。
打開該藍圖,發現並沒有粒子component在上面。
重新運行,並在World Outliner,點擊Type標頭排序,快速找到VH_Buggy。
點擊查看該藍圖的細節,可看到有四個粒子component,應該是動態生成的。
點擊其中一個粒子component,運行時不可對其進行查找操作,可在Content Browser窗口中點擊content文件夾,並在右邊的搜索框中搜索Particle(粒子的英文),可找到揚沙子的Particle System。
C.此時可停止運行遊戲,此處需要用到的是揚沙的效果和濺水的效果。
選中兩個粒子,在其中一個目標上鼠標右鍵->點擊AssetActions->點擊
彈出AssetReport窗口,點擊Ok。
彈出選擇儲存路徑,最好是選擇自己工程的根目錄Content文件夾下,如果選擇的不是根目錄會彈出提示並且材質會丟失。
如果自己的content文件夾下已經有同名文件夾但是不想同步到裏面,也可以儲存在別的地方,但是會丟失材質,需要重新去綁定。
導出後右下角會彈出成功提示,並可在自己的工程中看到一個新的文件夾Effects,這個是賽車遊戲儲存的文件夾,導過來後,可自己再對裏面的東西進行移動。
打開自己的工程,應在Content/.../Effects/Effects/VehicleEffects/下找到兩個particle system
此處有幾點要說明一下:
1.Migrate選項導出,會把相關聯的Material、Texture等等一起導出來,導出的是一個文件夾。
2.賽車遊戲的創建時的虛幻版本要選跟你工程的虛幻版本一致,否則有可能導過去後,某些文件查不到(Windows文件夾看到了文件,但是虛幻裏面的文件系統看不到)。
3.一般丟失了的話,粒子會丟失material,而material會丟失texture,要從material開始重新綁定比較麻煩,所以建議還是直接導出到根目錄content。
D.找到自己車子的藍圖,打開並在Components標簽頁添加粒子component,此處建議先添加一個,調好位置後再復制,改一下坐標。
可以改變不同的視角和調整移動幅度,來調整,更方便準確。
根據喜好放置,此處本人放在輪胎底部的中心處。
完成第一個後,選中第一個粒子component,按下CTRL+W,創建剩下的,只需在top視角移動即可保證四個在同一水平面,並且同一水平線的component的Y坐標應該一致,同一豎直線的component的X坐標應該一致。
在Details面板的Particles模塊的Template為四個粒子component綁定P_dirt_wheel_kickup粒子,可同時選中四個一次性綁定上去。
E.保存並運行遊戲,可看到有一些黑點類似石子的粒子效果,下面會介紹如何去掉這個效果,希望使用默認效果可跳過這一步驟。
打開P_dirt_wheel_kickup,粒子編輯器的界面介紹和使用請參考
https://docs.unrealengine.com/latest/INT/Engine/Rendering/ParticleSystems/Cascade/index.html
此處禁用掉Grit和Tire Track兩個發射器,即可去掉石子的效果。
以下將說明一些會微調到的參數的作用,參數的說明可參考
https://docs.unrealengine.com/latest/INT/Engine/Rendering/ParticleSystems/Reference/index.html
1.Required模塊主要是修改粒子發射器發射的Material。
2.Spawn模塊主要是修改Rate下的Distribution下的Constant,來調節噴出的粒子的速率,並在預覽窗口查看到,此處因為用到Spawn PerUnit所以constant值設置為0。
3.Spawn PerUnit模塊會根據行進的距離進行發射粒子,這樣車子停止時不會有粒子產生,但移動時會產生粒子。主要會修改到的是Unit Scalar和Spawn Per Unit下的constant兩個值,可以理解為每移動Unit Scalar個單位發射constant次粒子。其他參數參考官方文檔。
4.Lift Time模塊的兩個值Min和Max應該很好理解,粒子的最小存在和最大存在時間。
5.Initial Size模塊的Min值和Max值分別是修改粒子的最小體積和最大體積。
6.Initial Velocity模塊會修改到的是Min值、Max值和In World Space選框,不同方向的最大和最小速度矢量以及是否是以世界坐標系為標準。
7.Initial Rotation模塊Min和Max同上面意思一樣就是粒子出生時的最小和最大值,此處註意一個就是1表示旋轉360°。
8.Size By Life模塊有需要請參考官方文檔,主要是粒子的生命周期內按設置的不同的比例縮放體積大小(在之前Initial Size的基礎上),例如此處設置(5,1,1)和(1,1,1),粒子會以(5,1,1)的比例產生,然後會縮小到(1,1,1)的比例。
9.Acceleration模塊是設置加速度的,constant值和In World Space選框很好理解,就是沿著哪個軸的方向施加加速度以及是否是世界坐標為準。
10.Sphere模塊是設置粒子產生位置的,Initial Color模塊是設置產生時粒子的顏色,Scale Color/Life模塊是設置粒子生命周期過程中的顏色變化,這幾個此處略過不提,有需要參考文檔。
F.此處是較快的得到揚塵的效果的做法,套用別人的粒子發射器,有條件深入學習粒子系統是最好的,此處調整完後,車子已經具備了揚塵的功能了,但是還有一些地方需要處理,因為SpawnPerUnit使用的是運動增量,會有可能出現,車子明明在移動但是粒子發射器沒有發揮作用。
在車子的藍圖裏寫或者創建一個SceneComponent然後添加到車子的component列表裏面。
先創建一個Particle System Component(粒子系統組件)的數組,用於存放四個粒子發射器,好做批量處理。
再創建一個Wheel Vehicle Movement Component 4W的變量,根據你車子的車輪類型即可,用於獲取車子前進後退狀態。
再創建一個存放車子當前狀態的int變量。
在遊戲開始時儲存四個粒子發射器和一個車輪移動組件到對應的變量中。
車子前進時沙子應朝後面飛起,後退時沙子應向前面飛起,停止時應把粒子清除掉,不然剎車停止時,粒子還會再飛一會。每個tick獲取一次車子狀態。
Sequence第一個出口判斷車子當前的forward方向的速度是否大於零並且車子速度的標誌位CarVelocityFlag如果不是1說明之前的狀態不是前進狀態現在是前進狀態,就調用改變粒子發射器方向的方法。
Sequence第二、三個出口,同理,不做贅述。
以下是ChangeParticleDirection方法,前進時沿Y軸轉動45°,粒子發射器們斜朝車後,後退時沿Y軸轉動-45°,發射器們斜朝車前,此處的粒子效果是朝上噴射的,轉動Y軸角度即可斜向噴出。
以下是ClearParticle方法,將粒子系統的Particles的Template設置為None即可。
車子揚塵的效果到這裏就完成了。
二、虛幻4汽車在淺水上行駛時,如何濺起水花?
A.操作步驟跟車子揚塵的操作步驟差不多,打開P_water_wheel_kickup粒子系統
添加一個Spawn PerUnit來根據移動量來決定Spawn的量,把Spawn的Rate改成0。
啟用另一個Initial Velocity,或者在原先啟用的Initial Velocity上修改,水花向X軸的負方向噴射,向上或者向斜向上根據需要修改。
其他參數根據上方的E.中的參數簡述或者參考官方文檔進行修改。
B.接下來在車子的藍圖中或者是在上面創建的SceneComponent裏,創建一個bool變量來標誌當前地面類型和創建一個方法用來切換不同粒子系統。
在之前改變粒子朝向的方法裏再添加一個判斷來修改水噴射的朝向,此處像粒子初始的發射方向以及車子前進後退時粒子發射器的旋轉可根據實際調整。
創建一個新藍圖,並在在Component面板添加一個Box Collision。
切換到Event Graph窗口,如果之前使用的是SceneComponent藍圖,遊戲開始時需要獲取一下車子Component面板中掛載的SceneComponent。此處本人的車子名字是BP_XM_CarCar4_Child,SceneComponent藍圖名字是ControlCarParticles_SceneComponent。
為Component面板中的BoxCollision添加進入和離開時的事件,判斷是否是這輛車,是就設置標誌位並調用方法。進入時就修改粒子為水的,出去就修改為沙子的。
將這個水域檢測的藍圖拖到場景中,並調整大小,具體形狀、大小根據需要調整。
到此濺水的功能就完成了,此處換用另一臺車,效果如下。
有條件FQ可參閱這個粒子視頻
https://docs.unrealengine.com/latest/INT/Videos/PLZlv_N0_O1gYDLyB3LVfjYIcbBe8NqR8t/OXK2Xbd7D9w/index.html
或者國內B站
https://www.bilibili.com/video/av11697692/
虛幻4 汽車行駛如何產生揚塵和濺水的效果