一个让你可以“在Minecraft里玩Desmos”的Fabric粒子模组。
境符「波と粒の境界」
kparticle ~ ~5 ~ {
"pos": ["100(c-p)", "2000*p^1.5", "0"],
"coord": 4,
"lifetime": "300*p+300",
"color": ["3p%1", "1", "1"],
"hsv": true,
"alpha": "if(c-p, 1, 0)"
} 1000 @a通过KParticle,你可以把粒子的xyz(坐标)、rgb(颜色)、透明度、亮度、大小、动画帧全部写成时间的参数方程或一个自定义常量。
而且,你可以随时在直角坐标系、柱坐标系与球坐标系之间,以及RGB与HSV颜色空间之间切换。
同样地,它也支持导入你自己的粒子贴图。
kparticle ~ ~5 ~ {
"lifetime": "300",
"pos": ["5sin(8pi*c+50pi*p)+5", "2pi*p+5pi*c", "5cos(2pi*c+50pi*p)"],
"coord": 4,
"color": ["p", "(sin(c*pi*8+p*20)+1)/4 + 0.5", "(sin(c)+1)/2"],
"hsv": true,
"alpha": "4-4c",
"scale": 0.1d
} 720 @a通过将粒子分组,你可以随时修改一组已存在粒子的各项属性(贴图除外)。
通过对粒子当前时间、时间流逝速度与存续时间的自由修改,你可以很方便地做出复杂的粒子动画。
KParticle支持动态参数(读取游戏NBT存储中的变量),这意味着你可以将粒子属性与游戏世界绑定。
# 循环,每tick执行
data modify storage kparticle phi set from entity @p Rotation[0]
data modify storage kparticle theta set from entity @p Rotation[1]
data modify storage kparticle posx set from entity @p Pos[0]
data modify storage kparticle posy set from entity @p Pos[1]
data modify storage kparticle posz set from entity @p Pos[2]
ksync @a
# 执行一次
kparticle 0.0 1.65 0.0 {
"pos": [
"{posx}", "{posy}", "{posz}",
"n/5", "{phi}", "{theta}",
"cos(t+n)", "{phi}", "{theta}-90",
"sin(t+n)", "{phi}+90", "0"
],
"coords": [0, 1, 1, 3],
"lifetime": "inf",
"color": ["1-2p", "1-2abs(p-.5)", "2p-1"]
} 200 @aKParticle的所有计算与渲染工作都在客户端进行,服务器端仅处理命令、进行数据包广播与NBT属性同步。
并且,生成粒子、清除粒子、更改粒子属性、变量同步的广播信息都可以指定玩家发送。
# 改变亮度与大小
kgroup default merge {brightness:"7.5+7.5sin(t+n/2)", scale:"0.2+0.1sin(2t+n/4)"} @a
# 时停
# 1.3.0更改:timescale设置为0时,粒子会停止一切属性更新,停在原地
kgroup default merge {timescale:0d} @a
# 倒·快放
kgroup default merge {timescale:-2d} @a
# 慢放
kgroup default merge {timescale:0.5d} @a
# 清除
kgroup default clear @a- Cromemadnd (cromemadnd@cromemadnd.cn)
由于本人程序能力有限且缺乏开源项目经验,本项目存在诸多缺陷。非常感谢你所能做的一切贡献。
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- 为动态参数(即NBT变量)处理部分代码进行优化(目前处理动态参数的性能开销较大)。
- 修复偶发的渲染卡顿问题。
- 优化…总之就是优化。也许会把参数计算部分的代码移到GPU上。
本项目使用AGPL-3.0协议开源,详情请参阅LICENSE。 相关的其他项目奖许可证请参阅NOTICE。
- 使用了exp4j进行表达式解析。
- 功能设计参考了ColorBlock 与MadParticle。
- 使用了DeepSeek辅助编程。
- 本README以Best README template为模板编写。



