Guides / Commands & Data

/particle:delta 和 speed 的真正含义,以及 count=0 的妙用

位置后面的四个数字并非方向。本文将解释 delta 和 speed 的作用、为何 count=0 的行为截然不同,以及如何精确控制粒子方向。

/particle flame ~ ~1 ~ 0.5 0.5 0.5 0.01 20
                      └─ delta ─┘  spd  count

这四个数字是命令中最容易被误解的部分。

delta 是扩散范围,而非方向

dx dy dz 描述了粒子围绕其位置的高斯扩散(Gaussian spread)——即粒子在每个轴上的散射距离。0.5 0.5 0.5 会产生一个模糊的球体;2 0 0 则会沿着 X 轴产生一条线。

它们不是速度矢量。正负值没有区别;-2 0 02 0 0 会产生相同的线条。

除非 count 为 0

count 设置为 0 后,前面所有数字的含义都会改变:

countdelta 含义speed 含义
≥ 1随机扩散随机速度大小
0方向矢量沿该方向的速度
/particle flame ~ ~1 ~ 0 1 0 0.5 0    →  one particle shot straight up at 0.5

这是唯一能够精确控制粒子方向的方法。所有关于“如何制作光束”的问题,最终都会归结到这里。代价是每条命令只能生成一个粒子,所以要制作光束需要循环或链式命令。

speed 并非总是速度

对于大多数粒子,speed 是一个速度乘数。但对于少数粒子,它的用途被完全改变了:

  • dust — 大小是一个参数,speed 不起作用
  • note — speed 选择颜色024 映射到色相环上
  • entity_effect — 颜色取自 alpha-RGB 参数

所以,一个带有 speed 1note 粒子并非速度快,而是颜色不同。

带有独立参数的粒子

/particle dust{color:[1.0,0.0,0.0],scale:1} ~ ~ ~ 0 0 0 0 1
/particle block{block_state:"minecraft:stone"} ~ ~ ~ 0.3 0.3 0.3 0 10
/particle dust_color_transition{from_color:[1,0,0],to_color:[0,0,1],scale:1} ~ ~ ~ 0 0 0 0 1

参数块紧随粒子名称之后,在坐标之前。将其放在末尾是常见的语法错误。

force 和观察者

命令以可选的模式和玩家结束:

/particle flame ~ ~ ~ 0 0 0 0 1 force @a

normal 遵循每个客户端的粒子设置和 32 格的可见性限制。force 则无论如何都会显示粒子,并且可见范围可达 512 格。对于玩家必须看到的内容——例如 Boss 预警、任务标记——force 是必需的,这也是为什么你的粒子对你有效,而对那些减少了粒子设置的玩家无效的原因。

性能

粒子是客户端渲染,所以开销落在玩家身上,而不是服务器。每个玩家每刻 count 达到 200 个粒子,即使服务器 TPS 不受影响,也会在配置一般的硬件上降低帧率。请将粒子发射分散到多个刻中,而不是一次性发出大量粒子。

粒子与音效库中浏览所有粒子类型和 1,900 多个音效 ID,并附带现成的命令。

粒子与音效图鉴 →

More guides

Browse all →

还想找别的我的世界工具?

一整套在浏览器里运行的生成器、查看器和转换器,全部免费。