文档和工具

Particle Json

本文档主要包括三个部分:

粒子属性介绍

对粒子的每一个属性进行了介绍,方便读者了解particle json。

粒子效果规范

对游戏中最大可支持的粒子效果提供了约束,保证粒子效果在大部分机型上能够流畅运行。

粒子调试指令集

针对粒子编辑器暂时不能外放的现状,提供了实时预览粒子的游戏指令集,方便调试粒子效果。


粒子属性

粒子特效的配置文件为json格式,如下图所示:

img

客户端中的粒子特效会根据数值变化,实时呈现不同的粒子效果,以下为对粒子配置文件json的解释。

Initial

img

关于粒子属性,3个数值框的,从左向右分别对应x,y,z,如Constant Force,Direction等。2个数值框的,从左向右分别对应最小值和最大值。

粒子发射器的属性并不是完全如上对应的数值,而是最大值和最小值之间的一个随机值。如上图,Direction具有标有min和max的两个值,分别对应最小值和最大值。

粒子发射器发射的粒子,实际为空间中的一个朝向相机的矩形面片,这在粒子的size设置的时候只设置x,y得到体现。

下面简单介绍每个属性的作用及样例。

img

Constant Force: 粒子受力,相当于粒子运动过程中的加速度。

img

Direction: 粒子发射的初始方向,取值为min和max之间的差值。

img

Damping Force: 阻力理解为方向与粒子速度方向相反的加速度,每一帧的运算的公式为:

v =v - damping force * v

v为粒子当前速度,所以damping force实际上起到了逆向加速度因子的作用。

img

img

Active Time,Inactive Time: 粒子发射器活跃时间和冷却时间。这两个值时配合使用的,即粒子发射器每活跃Active Time之后,冷却Inactive Time,然后继续循环。在使用的时候,可以将Active Time当作发射器生命周期,方便调试有时间限制的效果。如果将Active Time设置为0,粒子发射器会一直发射,没有间歇。普通效果,建议不设置这两个值,或者都设为0;循环喷射效果可以使用这两个参数。

img

Particle Size: 粒子出生时的大小,当前只有x,y值有效,z值无效,留给以后发射立方体用。游戏中一个地形块的大小为1,以此作为尺寸参考。

img

Time To Live:为粒子生命周期,即每个粒子的存在时间。

img

Velocity:粒子初始速度。

img

Rotation:粒子初始角度,即粒子绕z轴的旋转的角度(0~360)。

img

Rotation Speed:粒子自转速度,每秒旋转Rotation Speed角度。

Variation

该参数与粒子生命周期内的形变有关。

img

Add:粒子尺寸每秒增加倍数,即size = size * (1 + add),默认该值为0.0。

Multiply: 粒子尺寸每秒尺寸缩放倍数,即size = size * multiply,默认值为1.0。

每秒粒子尺寸的计算公式为:size = size * multiply * (1 + add)

Color

Color

img

设置粒子颜色,格式为RGBA。

Color Fade

该参数与粒子生命周期内的颜色变化有关。

img

粒子在生命周期中,可以在不同的时间点设置不同的颜色关键帧,粒子的颜色逐渐向关键帧渐变。如上图所示,粒子在0.00s时,颜色为(0.50,0.30,0.50,1.0),在0.5s时颜色值为(1.0,0.0,1.0,1.0),在2.0s时为(0.0,0.0,0.0,1.0) 。

Color与Color Fade

设置Color就不设置Color Fade,设置Color Fade就不设置Color,二者的关系是互斥。如果二者均不设置,则直接读取贴图的颜色。

Emitter

该部分主要介绍与发射器有关的参数。

img

Number of Particles:粒子最大数量。

img

Emitter Size:粒子发射器尺寸,即粒子出生空间大小,(0,0,0)说明粒子都从原点出生,否则,粒子从定义的空间中随机位置生成。

img

Emission Rate:粒子发射率,数值越高,发射频率越高。左为min,右为max。可以理解为最多每秒发射50次,最少每秒发射40次,每次最多发射100颗。

img

img

Emission Shape:粒子发射器形状,当前支持球形和立方体,参数分别为“Box”,”Sphere”。

Render

Material

img

Material:无效,开发中。

Texture

“name”粒子纹理路径,路径从textures开始,不需要后缀。

img

如果想添加新的纹理,需要将png(必须png)文件放置在particle路径中。

“ani”粒子序列帧

img

“texture”中“name”对应的”textures/particle/bb”为序列帧贴图bb.png

”ani”中”name”对应的”textures/particle/bb”为序列帧json配置文件bb.json。序列帧打包方式在序列帧文档中有介绍。

“fps”为序列帧播放帧率,默认值为30。

可参考demo中的bb.png和bb.json阅读。

Blend Mode

img

img

混合模式,可以多尝试一下。“add”与背景色是叠加的关系,“blend”与背景色是覆盖的关系。

Face Camera Mode

可用模式:

img

“Rotate XYZ“:粒子始终朝向相机,适合正方形面片;

img

“Direction“:粒子Y轴朝向粒子运动方向,适合线性扩散效果,如下图所示,粒子实际为x=0.2,y=2.0的长方形面片。

可尝试改变burst.json效果中的参数,效果可以帮助理解该参数。

Loop

颜色或贴图序列帧是否循环,当粒子生命周期大于Color Fade或序列帧的时长的时候,可以进入循环模式。

img

img

粒子效果规范

粒子单幅贴图大小不要超过 32 * 32,粒子序列帧贴图参考序列帧规范。

小规模粒子:

Particle Num <= 30,="" particle="" emitter="" num="" <="200

中规模粒子:

Particle Num <= 100,="" particle="" emitter="" num="" <="50

大规模粒子:

Particle Num <= 1000,particle="" emitter="" num="" <="5" p="">

粒子效果规范

指令集

//crp : 在玩家眼前创建粒子效果,name为粒子配置文件名,不包括”.json”后缀。

//rep <>:重新加载粒子效果,无参数。

//rmp <>:移除游戏内所有粒子效果,无参数。

使用样例

//crp fire

img

img

//rmp

img

img

//rep

加载mod时,对应mod资源会被拷贝到C:\Users\当前用户名\AppData\Roaming\MinecraftPE_Netease\games\com.netease\resource_pack目录下。

要动态修改粒子效果,需要修改C:\Users\当前用户名\AppData\Roaming\MinecraftPE_Netease\games\com.netease\resource_pack目录下的同名mod中的对应粒子特效配置文件,再使用//rep指令。

img

fire.json所在的文件夹

img

fire.json原配置实例

img

修改后的fire.json实例

img

img

致开发者

粒子效果非常灵活,熟练各个参数,可以做出非常出彩的效果。同时,各位开发者也一定不要忘记遵守粒子效果规范,毕竟游戏的性能是有限的。