Minecraft基岩版允許新增粒子(particle),粒子可用於輔助實體動畫,或用作槍械的煙霧特效。
粒子都是2D圖像,因此只有XY寬高二個數值。要新增粒子,只需要用到資源包。另外可以結合行為包讓粒子有條件顯示在實體上。
文章最後可以下載我製作的JoJo粒子範本。
影片版過程參考
1. 使用Snowstorm製作粒子#
粒子不需要模型檔案,只由資源包裡粒子本身的json和材質圖片構成。
使用JannisX製作的 Snowstorm工具可以像建模一樣線上預覽、製作粒子,也能匯入做好的粒子檔案參考。這個程式也有 VSCode擴充功能版。
粒子的組件可以在左邊的面板調整,並且結果會馬上反映在右邊的畫面。
組件的詳細說明看下一段,這裡簡單調整好之後點選"Files",“Download"就會得到一個粒子的json檔案。
這裡我製作了一個JoJo的粒子,是從範本裡面的"Fire"改造來的。
- 將粒子的json放到資源包的
particles/
資料夾,識別符為myparticle:jojogo
粒子的材質jojogo.png
放在/textures/particle/
。另外我製作的Jojo粒子材質其實是長這樣,256x512:
2. 粒子的組件用途#
具體內容可參考 官方文檔。
只看文字說明會比較抽象,直接來看Snowstorm裡面提供的選項:
1. Emitter
Mode: Steady為讓粒子連續產生,Instant為產生一次。
Rate: 產生數量。
- Shape
Mode: 選擇一群粒子生成的形狀,有point、disc、sphere、box可以選。
Appearance: Size是粒子XY大小;Material可以選擇Alpha顯示透明圖層,或是Opaque不透明。Facing則是要朝向哪個方向。
Motion: 可給粒子添加加速度,以及設定生成的方向。
Lifetime: 設定粒子多久後會消失,預設使用Time的話就是按照Max Age所設定的時間,到了就會消失。
Texture: 粒子的材質
Texture Size: 粒子材質的實際圖片大小。
(接下來的屬性如果要做動圖就會用到,例如遊戲中的火焰粒子)
UV Start: 粒子的材質從UV哪個座標為起始點。
UV Size: 粒子的UV大小。
UV Step: 粒子動畫每步移動的UV距離。
Max Frame: 最大畫格數,至少應該大於實際的畫格率。
設定動畫後會快速切換成其他顏色:
3. particle指令用法#
要讓實體製造粒子,很多組件都能在觸發行為時順便生成,例如"minecraft:projectile"
可設定拋射物的粒子。
而/particle
指令也可以用來顯示自訂的粒子:
例如:
/particle myparticle:jojogo ~ ~ ~
基岩版的原版粒子列表可以參考 這裡。
4. 讓粒子跟著實體 (動畫)#
先了解 Add-On如何新增實體
另外可以參考原版資源包烈焰神和貓的檔案,看是如何生成粒子的。
可在動畫(animation)畫格直接新增粒子,或者使用動畫控制器(animation controller)。
- 首先在
資源包entity/
的實體檔案聲明要使用的粒子:
//...
"animations": {},
"particle_effects": {
//jojogo是粒子代號
"jojogo": "myparticle:jojogo"
},
"scripts": {}
//...
在動畫模式中,聲明要使用粒子(按時間軸上的"Animate Effect"魔術棒按鈕)
左下角的Keyframe欄位,Effect就是實體檔案聲明的粒子效果代號。
也可以改在動畫控制器設定要顯示粒子的時機:
{
"format_version": "1.10.0",
"animation_controllers": {
"controller.animation.shimakaze.move": {
"states": {
"default": {
"animations": [
{
"move": "query.modified_move_speed"
}
],
"particle_effects": [
{
"effect": "jojogo"
}
]
}
}
}
}
}
如果要讓粒子精確的附著在某一個骨骼,就加上定位器:
{
"format_version": "1.10.0",
"animation_controllers": {
"controller.animation.shimakaze.move": {
"states": {
"default": {
"animations": [
{
"move": "query.modified_move_speed"
}
],
"particle_effects": [
{
"effect": "jojogo",
"locator": "locator"
}
]
}
}
}
}
}
範本下載#
只有資源包,按 這裡下載。
也可於 Github檢視原始碼。
在實體上新增粒子的原理已經寫在上面了,剩下的是少女的秘密。