Godot 4.1 粒子效果: 1分鐘做一個火焰效果
Godot 4.1 粒子效果: 1分鐘做一個火焰效果

粒子效果是一種有趣而且非常常見的效果, 可以瞬間使游戲生動起來. 比如來個火焰, 比如發(fā)個火球, 冰彈. Godot 中做這些事情其實是非常簡單的, 1分鐘就可以看到效果, 再或一點點時間就可以掌握. 但是對于不熟悉godot 的同學(xué)來說,可能有點無從下手. 那么我們就來看一下怎么再1分鐘里做一個火焰出來.
概略:
4個基本屬性:Amount, Time, Process?Material,?Draw?Passes
前面兩個比較簡單, 后面帶到再說. Process?Material?主要是控制粒子的移動, 包括方向速度大小顏色等等.? Draw?Passes:?主要是控制每個粒子的樣子.?這里粒子Pass可以有多種,?叫多個passes.?火焰效果只要一種就可以了. 要注意的是兩個屬性都可以對粒子顏色進(jìn)行控制.
步驟:
再場景中添加Node: GPUParticles3D
Procss?Material /?new?ParticleProcessMaterial
Draw?Passes/?new?passes /new?QuadMesh?? ?
?經(jīng)過這兩步就可以看到粒子下落的樣子.?這里?QuadMesh?如果看不到的話,?也可以試試?SophereMesh,?就可以看到一個個小球掉下來.
這里就是粒子效果的基本設(shè)置.?所以挺簡單的^_^! 1分鐘夠不夠, 夠了. 當(dāng)然要弄點火焰出來, 我們還要進(jìn)行一些詳細(xì)的設(shè)置.
詳細(xì)的設(shè)置:
接下去要做一些細(xì)節(jié)的調(diào)整.
我們先從每一個粒子的設(shè)置開始, 也就是Draw Passes 的Pass1. 粒子可以是各種形狀, 球, 盒子柱子等等. 火焰效果用QuadMesh?效果比較好,?這里要一個素材. 看后面參考鏈接Miziziz. 這個素材可以摘kenny?網(wǎng)站找到.?kenny網(wǎng)站有不少常用的素材,?值得收藏起來.
Draw?Passes的Pass1?進(jìn)行細(xì)節(jié)設(shè)置
? ? Material?添加素材在透明目錄circle_05.png,?這個是一個透明的512x512的png?圖片邊緣有點,?是個單色的圖片.?也可以自己做.
? ? 添加好素材以后,?要對這個素材進(jìn)行設(shè)置.?這里的設(shè)置基本都是類似,?不過東西有點多,?第一次做可能會帶來一些茫然.
4.x 版本的剪輯器帶來的一個好處就非常明顯,?從下圖可以看出做了修改的內(nèi)容.

我們一個一個簡單講一下,?這個部分的內(nèi)容我的說法不一定很準(zhǔn)確,?如果有錯誤歡迎指正.
Transparency/Transparency :?Alpha.? 這里如果不是alpha,?也就是透明度,?這個png素材的透明度就不能起作用,?出來的一個一個個方塊quadmesh.
Transparency/Blend Mode : add,?如果不是add,?那么粒子周邊就會有黑圈.?另外這個add?和Process?Material?的albedo/color?一起混合
Shading/Shading?Mode: Unshaded
Vertex?color/ Use as?albedo: 勾選
Alebo/Texture?這里就是那個png?的圖片素材
Billboard/Mode : Particle Billboard
Billboard/Keep Scale: On?勾選,?這個一定要勾選,?否則Process Material?的Scale?設(shè)置會不起作用,?就不能改變粒子的大小.
Process?Material的詳細(xì)設(shè)置
我們要達(dá)到火焰的粒子效果是什么樣的呢??我們希望產(chǎn)生的粒子是往上飄,?顏色開始是紅色的,?飄上去的過程中慢慢變黃.?粒子的尺寸開始的大一點后面變小一點.
這幾個控制要在Process?Material?來處理

Direction/ x:0, y:1, z:0.?定義方向向上,也就是Y軸的正向.
Gravity:都置為0,?也就是不要有重力影響,?如果有重力的話,?粒子會往重力方向掉.
Initial?Veloctiy:?上面重力置為0以后,?粒子就不動了,?我們要給他一個速度1,?min:1,?max 1.?這里可以根據(jù)你自己的喜好進(jìn)行調(diào)整.?這個初始速度,?結(jié)合Direction的設(shè)置,?粒子就往上走了.
下面兩個設(shè)置是火焰效果的關(guān)鍵.
Scale:?這個用來控制粒子的大小比例,?我們要給它一個曲線,?開始時最大,?后面慢慢變小.?Scale?Curve
Color:?這里我們也要給他一個漸變的曲線,?開始時紅色,?中間黃色,?最后也是紅色.
Damping:?這個衰減可以加一點 0.2,?不設(shè)置也可以.
另外一個有趣的設(shè)置, 模擬風(fēng)吹的效果:Tubulence,?龍卷風(fēng)或者扭曲
Tubulence/Enabled :?on
Tubulence/Noise?Strength: 0.5
Tubulence/Noise?Scale: 0.5
Noise?Speed: X:0.5, Y:0, Z:0.5
第一次做可能會慢一點, 仔細(xì)看一下參考鏈接的視頻. 做上幾個以后, 1分鐘必然能夠做出來一個不錯的火焰效果.
參考:
@Miziziziz 一個非常提供很多干貨的博主
How to make a simple fire in Godot with 3D particles
https://www.youtube.com/watch?v=8ngg6ueC_ks
https://www.kenney.nl/assets/particle-pack
https://imgur.com/a/8KxlKDv
這個Miziziziz?提供了詳細(xì)的解釋,?并且提供了素材的下載信息.? 由于視頻里面是基于3.x?的godot?版本來的,?有些設(shè)置的位置跟4.x?的稍有區(qū)別.
Creating A Flame Particle In Godot 4
https://www.youtube.com/watch?v=zWpPQ2jY6TI&t=301s
這個視頻是基于4.x,?另外還演示粒子效果的另外一種樣子,?比如鋼鐵俠的胸口的反應(yīng)堆碗的樣子.