【マイクラ】ターゲットセレクタ(@p,@s,@r,@e,@a)と引数の使い方+使用例【コマンド】
今回は、ターゲットセレクタの使い方と使用例+引数による詳細な指定方法について解説していこうと思います。配布ワールドやサーバーの管理などでコマンドを使う場合、大抵ターゲットセレクタを使うことになると思うので覚えておくと便利です!
ターゲットセレクタとは?
ターゲットセレクタとは、コマンドでエンティティを指定するのに使う記号のことです。セレクタは全部で5種類あり、引数によって詳細に指定することもできます。
ターゲットセレクタ | 説明 |
---|---|
@p | 一番近いプレイヤーを指定 |
@r | ランダムなプレイヤーを指定 |
@a | 全てのプレイヤーを指定 |
@e | 全Sてのエンティティを指定 |
@s | コマンドの実行者を指定 |
@p(最も近いプレイヤー)
@p
は、コマンドの実行位置から最も近いプレイヤーを指定します。コマンドの実行者が自分の場合、自分の位置から最も近いプレイヤー、つまり自分を指定することになります。
@p[team=Red]
というセレクタの場合、「コマンド実行位置から最も近い赤チームのプレイヤー」を指定し、赤チーム以外のプレイヤーは無視されます。
使用例:/execute as @e[type=!player] run say "Hi"
結果:プレイヤー以外の全てのエンティティに「Hi」と言わせる。
@r(ランダムなプレイヤー)
@r
は、ゲーム内にいるランダムなプレイヤーを指定します。
ランダムなエンティティを指定したい場合は代わりに@e[sort=random,limit=1]
を使用します。
使用例: /give @r diammond 10 結果: ランダムなプレイヤーにダイヤを10個与える
@a(全てのプレイヤー)
@aは、ゲーム内にいる全てのプレイヤーを指定します。
使用例:/tp @a @p 結果:全てのプレイヤーを自分の元へテレポートさせる
@e(全てのエンティティ)
@eは、ゲーム内にいる全てのエンティティを指定します。エンティティはプレイヤーやMobの他に、トロッコや額縁などのアイテムも含むため、最も指定範囲の広いターゲットセレクタです。
使用例:/kill @e[type=enderman]
結果:全てのエンダーマンをキルする
ターゲットセレクタの引数
ターゲットセレクタの後ろに「@(セレクタ)[引数]
」のように引数をつけることで、選択範囲を自由に設定することができます。引数は何個でも付けることができますが、セレクタの種類によって設定できる引数の種類が違います。(もし構文がおかしいとエラーが出ます)
引数 | 説明 |
---|---|
advancements | エンティティの獲得している進捗 |
distance | エンティティまでの距離 |
dx | エンティティを指定するx方向の範囲 |
dy | エンティティを指定するy方向の範囲 |
dz | エンティティを指定するz方向の範囲 |
gamemode | プレイヤーのゲームモード |
level | プレイヤーのレベル(0以上の整数) |
limit | 指定するエンティティ数の上限(1以上の整数) |
name | エンティティの名前 |
nbt | エンティティのNBTタグ |
scores | エンティティのスコア(スコア名と値を指定) |
sort | エンティティの選択方法 |
tag | エンティティに付与されているスコアボードのタグ |
team | エンティティの所属しているチーム |
type | エンティティの種類 |
x | エンティティのx座標 |
x_rotation | エンティティのx方向(垂直)の回転 |
y | エンティティのy座標 |
y_rotation | エンティティのy方向(水平)の回転 |
z | エンティティのz座標 |
値の範囲指定→ 3..5
, 10..
, ..0
のようにピリオドを2つ打つ
座標の相対指定→ x = ~3
, y = ~15
, z = ~10
のように座標の前チルダをおく
数を指定する
limit = (エンティティ数の上限)
sort = (選択方法)
sort=nearest
→距離が近い順に選択sort=furthest
→距離が遠い順に選択sort=random
→ランダムに選択sort=random
→ソートを行わない(デフォルト)
limit
はエンティティを指定する上限を設定し、sort
はエンティティの選択方法を設定します。
@p
や@r
はデフォルトの上限が1なので、この引数を使うと上限を増やすことができます。 また、@a
や@e
にこの引数を指定すれば、指定する数を減らすこともできます。
@p[limit = 3]
→「実行位置から近い順に3つのエンティティ」を指定
@r[limit=10]
→「ランダムな10人のプレイヤー」を指定
@e[sort=random, limit=1]
→「ランダムな1つのエンティティ」を指定
進捗で絞り込む
advancement={進捗名1=true/false,進捗名2=true/false,・・・}]
進捗の獲得状況でプレイヤーの絞り込みができます。trueの場合はその進捗を獲得しているエンティティのみ指定し、falseの場合はその進捗を獲得していないエンティティを指定します。進捗は何個でも指定可能です。
種類で絞り込む
type=(エンティティID)
type=!(エンティティID)
指定したエンティティIDのエンティティのみを対象に指定します。びっくりマークを付けるとそのエンティティID以外のエンティティを指定します。エンティティIDの一覧は以下のページに載っています。
【マイクラ】「エンティティ」の解説とコマンドで使えるエンティティID一覧【1.14対応】 - Minecraft Life Hacks
距離で絞り込む
distance = (距離)
コマンドの実行位置から指定した距離だけ離れたエンティティのみを対象に指定します。 距離は範囲指定が可能です。
範囲の絞り込みと併用した場合は、どちらの選択範囲とも被っている空間にいるエンティティのみを対象に指定します。また、座標での絞り込みと併用した場合は基準点が指定した座標になります。
範囲(空間)で絞り込む
dx = (x方向の範囲)
dy = (y方向の範囲)
dz = (z方向の範囲)
コマンドが実行された位置を基準として、指定した空間(直方体)に含まれるエンティティを対象に指定します。座標での絞り込みと併用した場合は、基準点が指定した座標になります。
座標で絞り込む
x = (x座標), y = (y座標), z = (z座標)
x = ~(x座標), y = ~(y座標), z = ~(z座標)
その座標にいるエンティティのみを対象に指定します。座標は小数点で指定することもできます。座標の値の前にチルダ(~)を付けると相対座標での指定ができます。
→相対座標とは?
また、距離の指定(disantce
)と組み合わせて使うと、指定座標から指定距離離れたエンティティを対象に指定します。範囲の指定(dx, dy, dz
)と組み合わせて使うと、指定座標から指定した空間に含まれるエンティティのみを対象に指定します。
スコアで絞り込む
score = {(スコア名1) = (スコアの値1), (スコア名2) = (スコアの値2), ・・・}
指定したスコアを持つエンティティのみを対象に指定します。スコアは何個でも指定可能で、スコアの値は範囲指定が可能です。
チームで絞り込む
team=(チーム名)
→ そのチームに所属しているエンティティを指定team=!(チーム名)
→ そのチームに所属していないエンティティを指定team=
→ どのチームにも所属していないエンティティを指定team=!
→ いずれかのチームに所属しているエンティティを指定
タグで絞り込む
tag
=(タグ名) →指定したスコアボードのタグが与えられているエンティティを指定tag
=!(タグ名) → 指定したスコアボードのタグが与えられていないエンティティを指定tag
= → スコアボードのタグが与えられていないエンティティを指定tag
=! → スコアボードに何らかのタグが与えられてるエンティティを指定
レベルで絞り込む
level = (レベル)
指定したレベルのプレイヤーを対象に選択します。レベルは範囲指定が可能。
ゲームモードで絞り込む
gamemode = (ゲームモード)
gamemode = survival
gamemode = creative
gamemode = adventure
gamemode = spectator
gamemode = !(ゲームモード)
指定したゲームモードのプレイヤーを対象に選択します。びっくりマークを付けると、そのゲームモードではないプレイヤーを選択します。
名前で絞り込む
name = (プレイヤー名/エンティティ名)
name = !(プレイヤー名/エンティティ名)
指定した名前のエンティティを対象に選択します。びっくりマークを付けると、その名前ではないエンティティを選択します。
向きで絞り込む
x_rotation = (0~90)
y_rotation = (0~90)
指定した角度を向いているエンティティを対象に指定します。xは縦方向、yは横方向の角度で、どちらも範囲指定が可能です。例えば、x_rotation = 45..
だったら45度よりも上を向いているエンティティを指定します。
ちなみにですが、F3+Bキーを押すとエンティティの向きを見ることができます。
データタグで絞り込む
nbt = {(データタグ)}
エンティティをデータタグで絞り込みます。@a[nbt={OnGround:true}]
だったら「地面に接している全てのプレイヤー」を指定します。
データタグの一覧はJapan Wikiにまとめられていますが、1つ注意してほしいのが「数値は必ず接尾辞をつける」ということです。
例えばエンティティの体力を指定するためにHealth:10
というデータタグを付けた場合、エラーが出ます。なぜかというと、数値に接尾辞が付いていないためです。
Health
のデータ型はShortなので、10
の後ろにsをつけてHealth:10s
とする必要があるということです。
各データタグごとのデータ型や接尾辞などもWikiに載っているため、数値を設定する場合は必ず確認するようにしましょう。
さいごに
以上で終わります。質問があればコメント欄に書いてくれれば分かる範囲で答えます!
それではノシ