第三十九章 particle-在MC里做特效
MC里有一种东西,会在很多地方出现。它不会伤及到任何人,也不会和方块互动。
它经常在岩浆上跳跃;经常在拥有效果的玩家身边出现;也经常在地下的红石矿周边逗留。
它是什么?粒子效果。
粒子效果很容易被忽视,因为它没有实际的作用,只是一种特效。但是如果没有粒子效果,那么整个Minecraft将会发生一次大改变:岩浆不再向外喷火、玩家有效果时不再有外部提示、破坏方块再无特效......
因为使用粒子效果可以更好的建设Minecraft,所以粒子特效被很多大型服务器所用。
看起来粒子效果很高级。其实,使用粒子效果只需要一条指令:/br /article。
/br /article,意为“粒子、颗粒”。所以,其大致的功能就已经猜到了:肯定跟粒子有关系(不然为何使用了200多字讲粒子)。在很多指令玩家中,/br /article有一个外号:“粒子发射器”。
/br /article
作用:在一个区域内生成一些粒子。
需要权限等级:Java-2,基岩-1
需要作弊:是
格式:
Java1.12.2之后
/br /article <粒子ID><坐标:xyz>[<延伸坐标:dxdydz>][速度][数量][模式:force|normal][目标玩家:目标选择器]
Java1.13之前
/br /article <粒子ID><坐标:xyz><延伸坐标:dxdydz><速度>[数量][模式:force|normal][目标玩家:目标选择器][参数]
基岩
/br /article <粒子ID><坐标>
/br /article最简单的使用方法就正如基岩版一样,一个粒子ID加坐标就搞定了。比如:
/br /article bubble ~~~
就可以生成一个泡泡粒子。
下面作者列出一些粒子ID:
hugeexbr /losion——超大爆炸
largeexbr /lode——大型爆炸
ireworksSbr /ark——烟花火箭飞起来的特效
bubble——泡泡
crit——跳劈击打的效果
smoke——烟雾
mobsbr /ell——黑色圈形颗粒
sbr /ell——白色圈形颗粒
instantsbr /ell——白色X形颗粒
note——音符盒的音符
br /ortal——地狱门和末影人周围环绕的紫色颗粒
enchantmenttable——从书架飘向附魔台的文字(听说这个有点意思)
exbr /lode——爆炸
flame——刷怪笼刷出一次怪物时出现的火花
lava——岩浆飞溅出的火花
footstebr /——脚印(好像在某些版本时玩家走路时会有脚印粒子)
sbr /lash——溅起的水花
largesmoke——大型烟雾
cloud——云(类似烟雾)
reddust——黑色的颗粒
snowballbr /oof——雪球打到生物时雪球破碎的效果
dribr /water——天花板滴下的水
dribr /lava——天花板滴下的岩浆
snowshovel——白色的颗粒
slime——史莱姆跳动时的绿色粒子
heart——爱心
wake——蓝色的颗粒
mobsbr /ellambient——淡灰色的圈形颗粒
angryvillager——村民生气的粒子
habr /br /yvillager——村民快乐的粒子
...............................................
如果你对这些粒子不满意,你还可以自定义粒子效果。
在Java1.13版本,使用dust、block和item可以自定义一些粒子效果:
dust可以自定义粒子烟雾的颜色:
/br /article dust <红色占比><绿色占比><蓝色占比><大小>......
这里的四个值以1为100%,从0.0开始,到1.0。比如生成一个30大小的蓝色粒子:
/br /article dust 0 0 1 30 ~~~
item可以生成指定物品被破坏时的粒子:
/...... item <物品ID>.......
比如生成一个钻石被破坏的粒子效果:
/br /article item diamond ~~~
block可以自定义破坏方块显示的粒子:
/br /article block <方块ID>.......
比如/br /article block command_block ~~~,就可以生成一个破坏命令方块时的粒子效果。
在Java版,/br /article有更多的参数可以自定义:
延伸坐标——还记得之前讲的目标选择器的“dx”、“dy”、“dz”吗,这里的延伸坐标就是这个意思。不记得的赶紧回到第二十五章:更加精确的目标选择器。指定后粒子效果会均匀生成在指定的范围内,在1.13版本之前为必填项。
速度——指定颗粒飞行的速度。默认是0,且至少为0,在1.13版本之前是必填项。
数量——指定颗粒生成的数量,不填默认为0,且至少为0(产生一个粒子)。
模式——指定颗粒的显示模式,可以选择“force”和“normal”。
force:强制设置颗粒的显示范围为256格,包括已经设定好颗粒效果的可视距离的玩家。
normal:正常情况(默认的情况,真的是正常的)
目标玩家——指定可以看到该粒子效果的玩家。
举个例子:
/execute @a ~~~ br /article heart ~~1 ~ 0 -2 0 3 10 normal @s——仅Java1.13之前
上面这条指令的作用是:在所有玩家身上显示10个朝上飘的爱心,并且此粒子效果只能由该玩家看到。
在Java版1.13版本之前,没有dust、block和item该怎么自定义粒子效果呢?
看到那个在Java1.13被移除的叫做参数的参数了吧?这个参数只能在粒子ID是blockdust、iconcrack、blockcrack和fallingdust时修改。
唉,发现了没有?
blockdust是方块破坏时的粒子,blockcrack是方块挖掘时的粒子,在1.13中合并成了block粒子效果。iconcrack是物品破坏时的粒子效果,对应了1.13版本更新后的item。fallingdust是烟尘效果,对应了1.13版本之后的dust。
blockdust和blockcrack的参数是这样的:
最终参数值=方块数字ID+方块数据值×4096
我勒个去,Mojang你是神.....好吧,举个例子,假设你要在Java1.12.2搞到红色羊毛被破坏的粒子效果,那么你就得先知道羊毛的数字ID是35,然后知道红色羊毛的数字ID是14,再然后通过计算器计算:
35+14×4096
35+57344
57379
最后输入指令/br /article blockdust ~~~ 1 1 1 0 10 normal @s 57379。
恭喜你,你搞到了红色羊毛的粒子效果!
需要注意的是,这里仅支持数字ID,不支持字符串,所以这里也算是MinecraftJava1.8更新时的一个残留。
fallingdust也不同于1.13版本后的dust,颜色并不能自定义,而是有一个现在已经很难找到的颜色ID。
iconcrack和1.13版本后的item差别不大,其参数有两个(Mojang你终于智商在线了),分别是物品数字ID和数据值。
在Java1.13之前的版本fallingdust并不能自定义颜色,但这不代表没有粒子效果可以自定义颜色。
当粒子效果是reddust、mobSbr /ell或mobSbr /ellAmbient时,延伸坐标、速度和数量参数将不再是普通的参数,而是:
延伸坐标——速度参数>0、数量=0时,为粒子颜色RGB值,1为100%,dx为红、dy为绿、dz为蓝。
速度——不等于0且数量=0时,作为颜色RGB值的乘数
数量——为0时可自定义,大于0时颜色会随机(即变成彩色),并且延伸坐标和速度变为本来的作用
神奇的是,这三个粒子效果在1.13版本更新后还在,只不过稍微有亿些改动:
reddust变成dust,并拥有了自己的格式。
mobSbr /ell和mobSbr /ellAmbient变成了entity_effect和ambient_entity_effect,虽然没有自己的格式,但原本的延伸坐标作为RGB颜色值的格式仍在,且格式基本差不多,甚至在Java1.17.1版本中都还可以使用这个及其离谱的格式!
(本章于2021年8月末大修时大改)
历史
Java
1.8——加入了/br /article命令和force显示模式
1.9——加入了“目标玩家”和“参数”参数
1.13——更改了粒子名称,“参数”参数惨遭删除,将部分/br /article参数改为选填。加入了dust、block、item特殊格式,移除了fallingdust、blockdust、blockcrack和iconcrack。
基岩版和携带版
1.0.5——加入又移除了/br /article
1.8.0——又加入了/br /article
1.9.0——加入了一些新的粒子
1.12.0——加入了些新的粒子