Files
netease-modsdk-wiki/docs/mconline/10-addon教程/第07章:自定义生物/课程06.绑定动画粒子和动画控制粒子.md
boybook 760c2dd9ad 2.6
2025-12-01 20:59:16 +08:00

135 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/6_1.6892d54c.jpg
hard: 进阶
time: 20分钟
---
# 绑定动画粒子和动画控制粒子
#### 作者:境界
粒子可以做出非常出彩的效果,让生物的视觉体验提高几个层次。在游戏中,墨鱼喷墨和烈焰人蓄力发射烈焰弹时的火焰都归于粒子效果的范畴。开发者可以在生物定义文件中引用粒子,再通过动画和动画控制器两种方式来播放粒子。粒子还可以绑定在生物的几何体模型上,根据生物的骨骼位置、旋转角度进行相对计算,是更加进阶的粒子使用。在本章中会教开发者如何让粒子跟随生物实体,实现一个简单的效果。
![](./images/6_01.png)
原版的粒子可以在RP/particles文件夹中找到以中国版当前版本1.211.16.10一共有113个预定义好的原版粒子开发者可以通过研读其中的结构设定来实现自己的新粒子。
![](./images/6_1.jpg)
1打开Blockbench导入原版猪的模型和贴图。
2点击动画模式新建一个动画。
![](./images/6_2.jpg)
3点击动画动画效果打开动画特效面板。
![](./images/6_3.jpg)
4在效果栏列插入帧同时在左侧关键帧文字上方选择导入文件选择所需的粒子。同时填入在生物定义文件预先索引好的粒子短名称。
5拖动鼠标即可预览粒子。
```
{
"format_version":"1.8.0",
"animations":{
"animation.pig.particle":{
"particle_effects":{
"0.0":{
"effect":"smoke"
}
}
}
}
}
```
6保存好动画文件可以看到在动画格式中新增了一个particle_effects对象内容是时间差和它对应的值值内包含着粒子效果的短名称将新建的动画在生物定义文件中定义好后若动画配置正确游戏内粒子就会正常播放了。
7在Blockbench当中一帧内只能添加一种粒子效果。若需要同时播放好几种粒子效果则需要将粒子效果对象改为粒子效果数组再手动填入每一个粒子对象。
如:
```
{
"format_version":"1.8.0",
"animations":{
"animation.pig.particle":{
"particle_effects":{
"0.0":[
{
"effect":"smoke"
},
{
"effect":"flame"
}
]
}
}
}
}
```
```
{
"format_version":"1.10.0",
"animation_controllers":{
"controller.animation.blaze.flame":{
"initial_state":"default",
"states":{
"default":{
"transitions":[
{
"flaming":"query.is_charged"
}
]
},
"flaming":{
"particle_effects":[
{
"effect":"charged_flames"
}
],
"transitions":[
{
"default":"!query.is_charged"
}
]
}
}
},
"controller.animation.blaze.move":{
"initial_state":"default",
"states":{
"default":{
"animations":[
"move",
"look_at_target"
]
}
}
}
}
}
```
与绑定动画粒子相比,动画控制器粒子可能更为简单。在每个状态下新建一个粒子效果集合,即"particle_effects",它同样可以同时添加多种粒子效果。
与绑定动画粒子不同的是,当动画控制器切换到带有粒子效果的状态时,粒子会在第一时间播放,想要延迟粒子的播放则只能手动修改粒子的发射时间。而动画粒子可以根据动画达到一定时间才会播放一次粒子效果。