ExParticle指令详情

本教程改自ColorBlock模组的教程:https://www.mcbbs.net/thread-917845-1-1.html(已失效)


一、语法

1.【显示<表达式>可用函数列表】

/particlex functions

2.【清除粒子】

/particlex clear-cache(图片缓存)
/particlex clear-particle(粒子效果)

3.【按照原版的方式生成粒子】

/particlex normal <颗粒> <坐标> <颜色> <速度> <范围> <数量> [寿命] [速度表达式] [计算间隔] [组]

可调颜色、初速度、寿命以及控制运动轨迹

4.【根据给出的条件表达式生成粒子】

/particlex conditional <颗粒> <坐标> <颜色> <速度> <范围> <条件表达式> [计算间隔] [寿命] [速度表达式] [计算间隔] [组]

<条件表达式>参数最后一条语句的值作为整个参数的返回值

条件表达式可用符号:

自变量:"x","y","z","s1","s2","dis"

逻辑运算符:"&","|","!"

关系运算符:">","<","==","!=",">=","<="

算数运算符:"+","-","*","/","^","%"

赋值运算符:"="

可用函数:见/particlex functions

x,y,z为直角坐标系中的自变量,s1,s2,dis为极坐标中自变量,两者可一起使用

如dis<1&y>0表示生成一个半圆


5.【根据给出的参数方程生成粒子】

/particlex parameter <颗粒> <坐标> <颜色> <速度> <begin> <end> <表达式> [计算间隔] [寿命] [速度表达式] [计算间隔] [组]
/particlex tick-parameter <颗粒> <坐标> <颜色> <速度> <begin> <end> <表达式> [计算间隔] [CPT] [寿命] [速度表达式] [计算间隔] [组]
/particlex rgba-parameter <颗粒> <坐标> <速度> <begin> <end> <表达式> [计算间隔] [寿命] [速度表达式] [计算间隔] [组]
/particlex rgba-tick-parameter <颗粒> <坐标> <速度> <begin> <end> <表达式> [计算间隔] [CPT] [寿命] [速度表达式] [计算间隔] [组]

有tick前缀的模式会根据<CPT>参数逐渐生成(可做动画效果),无tick前缀的模式会在执行的同时全部生成

有rgba前缀的模式的粒子颜色在表达式中指定(可随t变化),无rgba前缀的模式的粒子颜色在指令的参数<颜色>中指定

参数方程可用符号如下:

自变量:"t"

因变量:"x","y","z"

带rgba的特有因变量:"cr","cg","cb","alpha"

逻辑运算符:"&","|","!"

关系运算符:">","<","==","!=",">=","<="

算数运算符:"+","-","*","/","^","%"

赋值运算符:"="

可用函数:见/particlex functions

多个赋值表达式用";"分隔

无tick前缀的模式会在执行的同时全部生成,有tick前缀的模式会根据<CPT>参数逐渐生成(可做动画效果)

无rgb或rgba前缀的模式的粒子颜色在指令的参数中指定,有rgb或rgba前缀的模式的粒子颜色在表达式中指定(可随t变化)

如x=t;z=sin(t)表示生成一条正弦曲线,

当子命令带tick,t的范围从0到6.28,<计算间隔>为0.0314,<CPT>为10时,

该指令会在第一tick生成sin(t)从0到0.314(<计算间隔>*<CPT>)的图像,依此类推


6.【根据给出的参数方程在极坐标系中生成粒子】

/particlex polar-parameter <颗粒> <坐标> <颜色> <速度> <begin> <end> <表达式> [计算间隔] [寿命] [速度表达式] [计算间隔] [组]
/particlex tick-polar-parameter <颗粒> <坐标> <颜色> <速度> <begin> <end> <表达式> [计算间隔] [CPT] [寿命] [速度表达式] [计算间隔] [组]
/particlex rgba-polar-parameter <颗粒> <坐标> <速度> <begin> <end> <表达式> [计算间隔] [寿命] [速度表达式] [计算间隔] [组]
/particlex rgba-tick-polar-parameter <颗粒> <坐标> <速度> <begin> <end> <表达式> [计算间隔] [CPT] [寿命] [速度表达式] [计算间隔] [组]

参数方程可用符号除了因变量变为"s1","s2","dis"外其余与上一条一致

7.【根据图片生成粒子效果】

/particlex image <颗粒> <坐标> <path> [比例] [x轴旋转] [y轴旋转] [z轴旋转] [翻转] [DPB] [速度] [寿命] [速度表达式] [计算间隔] [组]
/particlex image-matrix <颗粒> <坐标> <path> [比例] [矩阵] [DPB] [速度] [寿命] [速度表达式] [计算间隔] [组]

8.【根据视频生成粒子效果】

/particlex video <颗粒> <坐标> <path> [比例] [x轴旋转] [y轴旋转] [z轴旋转] [翻转] [DPB] [速度] [寿命] [速度表达式] [计算间隔] [组]
/particlex video-matrix <颗粒> <坐标> <path> [比例] [矩阵] [DPB] [速度] [寿命] [速度表达式] [计算间隔] [组]

9.【组】

/particlex group remove <组> [条件表达式] [坐标]
/particlex group change parameter|speedexpression <组> <表达式> [条件表达式] [坐标]


二、参数介绍

  • <颜色>:粒子颜色(RGBA)

格式:<红> <绿> <蓝> <透明度>,(大小:0.0~1.0)

  • <速度>:生成粒子的初速度

格式:<vx> <vy> <vz>

  • <范围>:生成粒子的范围

格式:<dx> <dy> <dz>,(大小:大于等于0)

  • <数量>:生成粒子的数量

  • <寿命>:粒子的寿命(大小:大于等于-1的整数)

0表示按照原寿命处理

-1表示不会自动消失,在<速度表达式>中设置destory为非0值即可消失

  • <表达式>或<条件表达式>:按照指定表达式生成粒子(需要用引号包裹)

支持矩阵运算,如:(x,,y,,z)=(cos(t),0,-sin(t),,0,0.5,0,,sin(t),0,cos(t))*(t,,0,,0)

  • <速度表达式>:粒子的运动速度、颜色变化所遵循的表达式

速度表达式中的自变量统一为t并且t从0开始递增

支持矩阵运算,如:(vx,,vy,,vz)=(0,0,-1,,0,0,0,,1,0,0)*(x,,y,,z)

  • <计算间隔>:按照表达式控制粒子时自变量每次递增的值

  • <begin> <end>:当表达式为参数方程时t的初始值和最终值(大小:终值>初值)

  • <CPT>:在带有tick的子命令中控制每tick执行<表达式>的次数

不带tick的子命令会在执行命令的同时执行完<表达式>

  • <path>:文件路径(会自动生成)

图片:

未开启版本隔离:请将图片放入.minecraft\particleImages文件夹下

版本隔离:.minecraft\versions\<版本名称>\particleImages文件夹下

视频:

未开启版本隔离:请将视频放入.minecraft\ particleVideos文件夹下

版本隔离:.minecraft\versions\<版本名称>\ particleVideos文件夹下

  • <比例>:图片缩放比例

  • <x轴旋转><y轴旋转><z轴旋转>:图片旋转(90的整倍数数)

  • <翻转>:图片翻转

not或horizontally或vertical,分别为不变、水平翻转、垂直翻转

  • <矩阵>:用于线性变换的矩阵(需要引号包裹)

当整度数旋转或翻转满足不了你的时候可以用此参数对粒子坐标进行线性变换

矩阵用",,"分割行 用","分割列

  • <DPB>:每方块粒子数(大小:大于0,默认为10)


三、其他

若遇到粒子颜色无法更改(主要是parameter相关指令),请自行删除模组中ParameterPayload文件的下列代码。或者到模组评论区下载已经更改过的

if (!rgba) color = new Vector4f();