コマンドで頻繁に利用する「ターゲットセレクター」。誰(もしくは何)に対してコマンドを実行するのかの対象を指定するものになります。このターゲットセレクターの設定方法を紹介します。
ターゲットセレクターはコマンドを実行する対象者(対象物)
コマンドを実行するとき、ワールド全体や必ず全員に影響するコマンド出ない限り、コマンドを実行する対象者を指定する必要があります。
その対象者を「ターゲットセレクター」とよび、例えば、「プレイヤー全員をクリエイティブモードにする」というコマンドを実行するときは次のようなコマンドとなり、赤文字部分がターゲットセレクターとなります。
gamemode␣@a␣creative
また、このターゲットの記載には、次のようなターゲットの種類と絞り込み条件の2つのブロックに分かれています。このターゲットの種類と絞り込み条件を組み合わせることで、細かいターゲットの指定が可能となります。
ターゲットの種類[絞り込み条件]
ターゲットセレクターの設定方法
ターゲットの種類
「ターゲットの種類」では、エンティティー(プレイヤーやブロック)の属性を使ってざっくり対象者を指定することができます。ターゲットの種類で指定できる値を一覧化しましたので、こちらを参考に設定ください。
コマンド | 説明 |
---|---|
@a | すべてのプレイヤーが対象となる。 |
@p | コマンド実行箇所から最も近いプレイヤーが対象となります。チャットを使って コマンドを実行した場合はもちろん実行者になる。 |
@s | コマンドを実行したエンティティが対象となる。 |
@e | プレイヤーやコマンド実行者を含めたすべてのエンティティが対象となる。 |
@r | (死亡者を除く)全プレイヤーの中からランダムに選ばれたプレイヤーが対象となる。 |
プレイヤー名 | プレイヤー名を名指しで指定して対象にする。 |
絞り込み条件
「絞り込み条件」はターゲットの種類で指定した対象者を、さらに細かく条件指定することができます。現在のプレイヤーの状態を基に、いろいろな条件が指定できます。
現在地を使った範囲指定
例えば「特定の位置を起点としてそこから〇マスの範囲内にいるプレイヤーと対象とする」というような、プレイヤーの現在地を基に、位置を指定することができます。それには、基本的には、起点と起点を中心とした範囲の2つを条件に加えることで指定が可能となります。
起点の指定方法
「起点」の指定方法を紹介します。(起点のみの指定では、範囲指定はできないので、ご注意ください。)
コマンド | 説明 | 例 |
---|---|---|
x | 指定した数値のX座標を起点とする。 (Y座標・Z座標はコマンド実行位置の座標) | x=10 (X座標は10を起点にする。) |
y | 指定した数値のY座標を起点とする。 (X座標・Z座標はコマンド実行位置の座標) | y=10 (Y座標は10を起点にする。) |
z | 指定した数値のZ座標を起点とする。 (X座標・Y座標はコマンド実行位置の座標) | Z=10 (Z座標は10を起点にする。) |
未指定 | コマンド実行位置がそのまま起点となる。 | – |
次のようにX軸、Y軸、Z軸すべてを指定した場合、その位置(X座標=10,Y座標=20,Z座標=30)が起点となり、指定していない座標がある場合はコマンド実行位置を起点とします。
@a[x=10,y=20,z=30]
範囲の指定
起点を中心として、どのぐらいの範囲にいるプレイヤーを対象とするかを指定し、絞り込みます。
コマンド | 説明 | 例 |
---|---|---|
dx | 起点を基準としたX座標の範囲を指定 (デフォルトは「0」で起点の値のX座標のみが対象となる) | dx=5 (X座標が起点座標から起点座標+5の範囲の座標にいるターゲット) |
dy | 起点を基準としたY座標の範囲を指定 (デフォルトは「0」で起点の値のY座標のみが対象となる) | dy=5 (Y座標が起点座標から起点座標+5の範囲の座標にいるターゲット) |
dz | 起点を基準としたZ座標の範囲を指定 (デフォルトは「0」で起点の値のZ座標のみが対象となる) | dz=10 (Z座標が起点座標から起点座標+5の範囲の座標にいるターゲット) |
distance Java版のみ | 起点を中心とした範囲を指定する (「..」を使うことで以上・以下を表現できる) | distance=3..10 (起点から3以上10以内のブロックにいるターゲット) |
r Java版のみ | 起点を中心とした範囲を指定する (指定した値以内にいるターゲット対象) | r=10 (起点から10ブロック以内にいるターゲット) |
rm Java版のみ | 起点を中心とした範囲を指定する (指定した値以内にいるターゲットを除外) | r=3 (起点から3ブロック以内にいるターゲットを除外) |
次のようにX座標、Y座標、Z座標すべてを指定した場合、起点を基準にした範囲内となるが、指定していないX座標、Y座標、Z座標がある場合は、指定していない座標は起点の座標上のみ対象となります。
@a[dx=10,dy=20,dz=30]
スコアボードの値で絞り込み
スコアボードの設定値を使って絞り込みも可能です。絞り込み可能な項目の一覧と指定例を紹介します。
コマンド | 説明 | 例 |
---|---|---|
team Java版のみ | スコアボードのチーム名を指定する | team=sakuruteam チーム名がsakuruteamのターゲット |
tag | スコアボードのタグ名を指定する | tag=sakuru タグ名がsakuruのターゲット |
scores | スコアボードのスコアを指定する (「..」を使うことで以上・以下を表現できる) | scores={exscore=10..15} exscoresスコアボードオブジェクトの値が 10以上15以下のターゲット |
次のようにteam、tagの演算子には「!=」を指定が可能となっており、「〇〇以外」という条件をつけることも可能です。
@a[team!=sakuruteam]
@a[team!=sakuruteam]
また、scoresは複数のスコアボードオブジェクトの値を指定条件にすることも可能です。(and条件)
@a[scores={sakuruscore=10,exscore=20}]
ターゲットの状態・特徴で絞り込む
ターゲットの現在の状況や特徴で絞り込みを行うことも可能です。絞り込み可能な項目の一覧と指定例を紹介します。
コマンド | 説明 | 例 |
---|---|---|
gamemode | ゲームモードを指定してターゲットを絞り込む (「spectator」「survival」「creative」「adventure」のいずれかを指定可能) | gamemode=spectator (スペクテイターモードのターゲットに絞り込む) |
m | ゲームモードを指定してターゲットを絞り込む (「spectator」「survival」「creative」「adventure」のいずれかを指定可能) | m=creative (クリエイティブモードのターゲットに絞り込む) |
name | プレイヤー名を指定してターゲットを絞り込む | name=sakuru (プレイヤー名がsakuruのターゲットに絞り込む) |
type | エンティティの種類を指定してターゲットを絞り込む (エンティティIDかエンティティタグで指定可能) | type=minecraft:diamond (種類がダイヤモンドのターゲットに絞り込む) |
family | エンティティのグループで絞り込む | family=monster (グループがモンスターのターゲットに絞り込む) |
nbt | NBTタグで絞り込む | nbt={id:”minecraft:lime_wool”} (黄緑色の羊毛のターゲットに絞り込む) |
x_rotation | 視線の角度(高さ)でターゲット絞り込む (0が水平方向で正は下方向・負は上方向になる。「..」で以上、以下を指定できる) | xrotation=-20..40 (上向き20°から下向き40°方向を向いているターゲットに絞り込む) |
rx | 視線の角度(高さ)でターゲット絞り込む(下限) | rx=30 (下向き30°より上方向を向いているターゲットに絞り込む) |
rxm | 視線の角度(高さ)でターゲット絞り込む(上限) | rxm=10 (下向き30°より下方向を向いているターゲットに絞り込む) |
y_rotation | 視線の角度(水平方向)でターゲットを絞り込む (0が真南で正は西側・負は東方向になる。「..」で以上、以下を指定できる) | rx=-20..40 (真南を基準に東側20°から西側40°の間の方向を向いているターゲットに絞り込む) |
ry | 視線の角度(水平方向)でターゲットを絞り込む(上限) | ry=20 (真南を基準に西側20°から東・北側を向いているターゲットに絞り込む) |
rym | 視線の角度(水平方向)でターゲットを絞り込む(下限) | rym=40 (真南を基準に東側40°から南・西・北側を向いているターゲットに絞り込む) |
level | レベルでターゲットを絞り込む (「..」で以上、以下を指定できる) | level=10..20 (レベルが10~20のターゲットに絞り込む) |
l | レベルでターゲットを絞り込む(下限) | l=5 (レベルが5以上のターゲットに絞り込む) |
lm | レベルでターゲットを絞り込む(上限) | lm=10 (レベルが10以下のターゲットに絞り込む) |
advancement | 進捗の達成有無でターゲットを絞り込む (「true」→達成、「false」→未達成) | advancement={story/enter_the_nether=true} (「さらなる深みへ」達成済みのターゲットに絞り込む) |
predicate | プレディケートでターゲットを絞り込む | is_macig=true |
hasitem | 指定した条件下のアイテムを持つターゲットに絞り込む(複数条件・複数アイテム指定可) ※指定できるのは「item」「data」「quantity」「location」「slot」の5種類 | hasitem={quantity} (1アイテムを条件指定) hasitem[{quantity=2},{location=slot.armor.feet,slot=0}] (2アイテムを条件指定) |
コメント