/particle: deltaとspeedの本当の意味、そしてcount=0のトリック
位置の後に続く4つの数字は方向ではありません。deltaとspeedが何をするのか、count=0がなぜ全く異なる振る舞いをするのか、そしてパーティクルを狙う方法を解説します。
/particle flame ~ ~1 ~ 0.5 0.5 0.5 0.01 20
└─ delta ─┘ spd count
これら4つの数字は、このコマンドで最も誤解されやすい部分です。
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
これがパーティクルを狙う唯一の方法です。「ビームを作るにはどうすればいいですか」という質問は、最終的にここにたどり着きます。コストはコマンドごとに1つのパーティクルなので、ビームはループまたはチェーンで作成します。
speedは常に速度ではない
ほとんどのパーティクルでは、speed は速度の乗数です。一部のパーティクルでは、完全に別の目的で使用されます。
dust— サイズがパラメータであり、speedは何もしませんnote— speedが色を選択し、0から24が色相環にマッピングされますentity_effect— 色はアルファ-RGB引数から取得されます
したがって、note パーティクルで 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 が必要であり、パーティクルが自分には表示されるのに、パーティクルを減らしている人には表示されないのはそのためです。
パフォーマンス
パーティクルはクライアント側のレンダリングであるため、コストはサーバーではなくプレイヤーにかかります。プレイヤー1人あたり1ティックで count が200の場合、サーバーのTPSは影響を受けなくても、控えめなハードウェアではフレームレートが低下します。一度に大量のパーティクルを生成するのではなく、複数のティックにわたって排出を分散させましょう。
パーティクル&サウンドギャラリーで、すべてのパーティクルタイプと1,900以上のサウンドIDを、すぐに使えるコマンドで閲覧できます。