粒子 - ReiKohaku/Sonolus-wiki-zh_cn GitHub Wiki
粒子为关卡提供粒子特效元素。
实现图像资源类型ParticleThumbnail。
实现图像资源类型ParticleTexture。
实现JSON资源类型ParticleData。
{
"width": 512,
"height": 512,
"interpolation": true,
"sprites": [
{
"x": 1,
"y": 1,
"w": 128,
"h": 128
},
// 其它粒子精灵
],
"effects": [
{
"id": 110001,
"transform": {
"x1": {
"x1": 1
},
"y1": {
"y1": 1
},
"x2": {
"x2": 1
},
"y2": {
"y2": 1
},
"x3": {
"x3": 1
},
"y3": {
"y3": 1
},
"x4": {
"x4": 1
},
"y4": {
"y4": 1
}
},
"groups": [
{
"count": 1,
"particles": [
{
"sprite": 0,
"color": "#fff",
"start": 0,
"duration": 1,
"x": {},
"y": {},
"w": {
"to": {
"c": 1
},
"ease": "OutCubic"
},
"h": {
"to": {
"c": 1
},
"ease": "OutCubic"
},
"r": {},
"a": {
"from": {
"c": 1
}
}
},
// 其它粒子
]
},
// 其它粒子特效组
]
},
// 其它粒子特效
]
}
可选。如果为真,纹理过滤将使用双线性插值。
当启用了双线性插值时,需要采取必要措施防止纹理采样越界(atlas bleeding)。
每个ID都有对应的标准化语义(尚未实现)。
通过变换表达式来变换输入的坐标。
一个粒子的组。
每个粒子组都有它自己的变换表达式的随机变量组,并在其它粒子之间共享。
x、y、w、h、r、a是粒子的属性。
此属性起点值的变换表达式。
此属性终点值的变换表达式。
此属性的easing类型。
变换表达式接受一组输入值,并输出一个值。
例如:
{
"c": -1,
"r1": 2
}
它与数学表达式c * -1 + r1 * 2
相同,并可以通过给定的c
和r1
进行计算。
可以使用以下的输入:
输入 | 值 |
---|---|
c | 常数,等于1 |
x1 | x1* |
y1 | y1* |
x2 | x2* |
y2 | y2* |
x3 | x3* |
y3 | y3* |
x4 | x4* |
y4 | y4* |
r1 | 区间[0, 1)内的一个数值 |
sinr1 |
2 * π * r1 的sin值 |
cosr1 |
2 * π * r1 的cos值 |
r2 | 区间[0, 1)内的一个数值 |
... | ... |
cosr4 |
2 * π * r4 的cos值 |
- 只有在变换中有效。