Руководства / Команды и данные
/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 задают гауссово рассеяние вокруг позиции — насколько частицы разлетаются по каждой оси. 0.5 0.5 0.5 даёт размытый шар; 2 0 0 даёт линию вдоль X.
Это не вектор скорости. Положительные и отрицательные значения не имеют разницы; -2 0 0 и 2 0 0 дают одну и ту же линию.
Если только count не равен 0
Установите count в 0 — и смысл каждого предыдущего числа меняется:
| count | delta означает | 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— скорость по x выбирает цвет: приcount 0это x delta, умноженная наspeed, а0–1проходят один круг по цветовому колесу (нотный блок передаёт высоту тона ÷ 24). При большем count цвет случайныйentity_effect— цвет берётся из аргумента alpha-RGB
Так что /particle note ~ ~1 ~ 0.5 0 0 1 0 — это не быстрая частица: 0.5 и speed 1 вместе делают её другого цвета.
Частицы со своими аргументами
/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 блоков. Для всего, что игрок обязан увидеть — телеграф босса, метка задания — нужен force, и именно поэтому ваши частицы работают у вас, но не у того, у кого частицы урезаны.
Производительность
Частицы — это клиентский рендеринг, так что нагрузка ложится на игроков, а не на сервер. count из 200 за тик на игрока уронит частоту кадров на скромном железе, хотя TPS сервера останется нетронутым. Распределяйте выбросы по тикам вместо одного огромного count.
Просмотрите все типы частиц и 1900+ id звуков с готовыми командами в Галерее частиц и звуков.