MC Toolkit

ガイド / コマンドとデータ

/particle:deltaとspeedの本当の意味、そしてcount=0の裏技

座標の後ろに並ぶ4つの数字は、方向ではありません。deltaとspeedが何をするのか、count=0がなぜ全く別の挙動になるのか、そしてパーティクルを狙って飛ばす方法を解説します。deltaは方向ではなく広がりを表します。

/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 にすると、それより前のすべての数字の意味が変わります:

countdeltaの意味speedの意味
1以上ランダムな広がりランダムな速度の大きさ
0方向ベクトルその方向に沿った速度
/particle flame ~ ~1 ~ 0 1 0 0.5 0    →  one particle shot straight up at 0.5

パーティクルを狙って飛ばすには、これが唯一の方法です。「ビームはどう作るの?」という質問は、結局ここに行き着きます。代償として1コマンドにつき1パーティクルしか出せないので、ビームはループかコマンドチェーンで作ることになります。

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 が必須です。これが、自分の環境ではパーティクルが見えるのに、パーティクルを減らす設定の人には見えない理由です。

パフォーマンス

パーティクルはクライアント側のレンダリングなので、負荷はサーバーではなくプレイヤーにかかります。1ティックにつき1プレイヤーあたり count を200個出すと、サーバーのTPSは無事でも、そこそこのスペックのマシンではフレームレートが落ちます。一度に大量のcountを出すのではなく、ティックをまたいで分散させましょう。

すべてのパーティクルタイプと1,900以上のサウンドIDを、すぐ使えるコマンド付きで見るなら Particle & Sound Gallery へ。

パーティクル & 効果音ギャラリー →

その他のガイド

すべて見る →