ユキミ大福のマイクラBE生活

Minecraft統合版で遊んだりゲーム作ったりするブログ

コマンド構文解説-エンティティをランダムに配置!?/spreadplayers-

  投稿日:2021/10/02

最終更新日:2021/10/02

 

どうも、ユキミ大福です。

今回はMinecraft統合版のコマンドの内の1つである『 /spreadplayers 』について解説をしていきます。

ここで解説するコマンド等は、解説する注意事項等をよく読み、個人でより詳しく調べた上で、個人の責任において使用して下さい。コマンド等の使用によって如何なる損害が発生しても、筆者であり当ブログの管理者でもあるわたくしユキミ大福は一切の責任を負いかねますので、ご了承下さい。

 

今回のコマンドは?

今回ご紹介するコマンドは『 /spreadplayers (スプレッドプレイヤーズ)』です。このコマンドは、エンティティを特定の範囲内へランダムに配置できるというものです。まずは構文を見てみましょう。

 

/spreadplayers のコマンド構文

 

/spreadplayers <X座標(int/float)> <Z座標(int/float)> <拡散距離(float)> <最大範囲(float)> <セレクター>

 

  • <X座標(int/float)><Z座標(int/float)>:必須
    拡散基準になるXZ座標をそれぞれint型かfloat型で指定するか「~ (チルダ)」を使用して相対座標を入力する(「^ (キャレット)」は使用できない)。相対座標を入力する場合、基準座標からの距離を指定する。

  • <拡散距離(float)>:必須
    拡散後のエンティティ同士の距離をfloat型で指定する。値は0.00~約100.00でなければならない(上限値は不明だが大きすぎるとマイクラがクラッシュする)

  • <最大範囲(float)>:必須
    エンティティが拡散する、<X座標(int/float)><Z座標(int/float)>を中心とした最大範囲の半径をfloat型で指定する。値は<拡散距離(float)>よりも1.00大きい値でなければならない(上限値は不明だが大きすぎるとマイクラがクラッシュする)
  • <セレクター>:必須
    ターゲットセレクター。ゲーマータグを直接入力可。

 

/spreadplayers の失敗条件

  • 構文が適切でない(スペルミス等)。
  • <拡散距離(float)>の値が0.00未満の場合。
  • <拡散距離(float)><最大範囲(float)>が大きすぎる場合(マイクラがクラッシュする)
  • <セレクター>の対象数と<拡散距離(float)>に対して<最大範囲(float)>が小さすぎる場合(具体的な計算式は不明。情報求む!)
  • 指定したセレクターの条件に合う対象が存在しないか、読み込まれているチャンク内に存在していない。

 

/spreadplayers の成功条件

  • 上記の失敗条件を満たしていない場合。
  • <拡散距離(float)>と<最大範囲(float)>の上限値が不明なので大きすぎる値を入れないように注意。

 

/spreadplayers の実行例

例1)

コマンド:/spreadplayers 100 120 5.0 20.0 @a

実行結果:全てのプレイヤーを座標( 100, y ,120 )を中心とした半径20.0ブロック内に5.0以上の間隔でランダムに配置する。

 

例2)

コマンド:/spreadplayers ~ ~5 4.0 100.0 @e[type=!painting]

実行結果:絵画(painting)以外の全てのエンティティを座標( ~, y ,~5 )を中心とした半径100.0ブロック内に4.0以上の間隔でランダムに配置する。

 

/spreadplayers の詳細解説

/spreadplayers の概要

/spreadplayersは指定した範囲内へ対象エンティティを指定した距離以上の間隔でランダムに配置するコマンドです。対象エンティティは配置されるそのXZ座標内で最もY座標が高いブロックの上に配置されます。

 

/spreadplayers の実行結果等々

コマンドがエラーとなった場合には以下のように返ってきます。

  • セレクターに合う対象がありません」
    <セレクター>に合う対象エンティティが存在していない場合のエラー。

  • 「(対象数)人のプレイヤーを <X座標(int/float)>,<Z座標(int/float)> の周りに散開させることはできませんでした (人数が多すぎます。<<値>>以下で散開させてみてください)」
    <セレクター>の対象数と<拡散距離(float)>に対して<最大範囲(float)>が小さすぎる場合のエラー。対象数を<<値>>以下にしてもこのエラーが出ることがある。<<値>>の算出式は不明。情報求む!

 

コマンドブロックが保持・出力する結果は「コマンドの実行に成功したか(True or False)」「コマンドが何人に対して成功したか(int)」の2点です。コマンドが成功した人数については、RSコンパレーターを用いてRS動力の形で取り出せます。

 

/spreadplayers の強み・使い道

ゲーム制作においては、プレイヤーやその他エンティティを完全ランダムで配置させる目的で使用します。/spreadplayersを使用せずにある程度ランダムな位置にエンティティを配置する方法はありますが、ここまで完全なランダム性を作り出すことはできません。

 

/spreadplayers の弱み・弱点

このコマンドでエンティティを配置しようとすると、配置される予定のXZ座標内で最もY座標が高いブロックの上に配置されます。ビルのようなステージを作ってそこに配置しようとすると、対象エンティティが全てビルの屋上に配置されてしまうということが発生します。/spreadplayers を使用したい場合は、それを熟知した上でステージを作りましょう。

 

今回のまとめ

  • 『 /spreadplayers 』は指定範囲内へ対象エンティティを、指定した間隔以上の距離でランダムに配置するコマンド!

 

関連記事

  • コマンド構文解説-霧を操る…?/fog-
  • コマンド構文解説-エンティティにライド・オン!/ride-

  • コマンド構文解説-モブがアクションを起こす!?/event, /mobevent-
  • コマンド構文解説-あのモブのあのモーションを!?/playanimation-
  • コマンド構文解説-何が起こるんだ!?PART1!/connect ( /wsserver ), /help ( /? ), /kick
  • コマンド構文解説-何が起こるんだ!?PART2!/list, /locate, /schedule-
  • コマンド構文解説-コマンドに革命を起こす…!?/function, /reload-

 

当記事及び当ブログへのご意見・ご質問はいつでも受け付けております。

お気軽にコメント欄までどうぞ!

↓良ければポチッとお願いします。