※本サイトはPRリンクを含みます

【マイクラ統合版】コマンド内で使用するターゲットセレクターの種類と機能

ターゲットセレクターの使い方 コマンドの使い方

ターゲットセレクターはコマンド内で対象者を指定することが出来る機能です。うまく使えばかなり細かいターゲットの指定も可能になります。

スポンサーリンク

ターゲットセレクターの基本

マイクラ統合版で使用できるターゲットセレクター変数には以下があります。

セレクター意味対象数
@a全てのプレイヤー複数
@e全てのエンティティ
(プレイヤー含む)
複数
@p最も近いプレイヤー1名
@rランダムで選ばれたプレイヤー
(引数[type]によりエンティティも可)
1名
@s自分
(コマンド実行者)
1名
@initiatorNPCダイアログボタンを操作したプレイヤー1名

@a

全てのプレイヤーを指定します。

@e

全てのエンティティを指定します。この時、エンティティにはプレイヤーも含まれます。

@p

コマンド実行者から距離的に最も近いプレイヤーを1名指定します。

@r

ランダムに選ばれたプレイヤー1名を指定します。

@s

コマンド実行者自身を指定します。

@initiator

NPCダイアログボタンを操作したプレイヤーを指定します。

NPCダイアログ
ダイアログ詳細設定

例えば、左のNPCダイアログの画像にある「戻る」ボタンには右画像のように
/dialogue open @e[name=サブスキル選択] @initiator
というコマンドが割り当てられています。
これは「戻るボタンを押したプレイヤー(@initiator)に対して”サブスキル選択”という名前のエンティティ(ここではNPC)のダイアログを開いて表示する」という意味になります。

コマンド実行者とは?

プレイヤーがコマンドを実行した場合はプレイヤーが、コマンドブロックでコマンドを実行した場合はコマンドブロックが実行者となります。

ターゲットセレクターのオプション

上記で解説した基本の変数に加えて、オプションとなる引数を[]で追加指定し対象を絞り込むことが出来ます。

記述する際は変数@~の後に[引数=値]として記述します。
また引数を複数記述する場合は[引数=値,引数=値]のように区切ります。

引数意味補足
x,y,z座標を指定ただし他の引数の開始点として使用する座標の為単独で使用してもセレクターの対象には影響しない
dx,dy,dz範囲を指定開始点(指定しない場合は実行者)からd~で指定する点までの直方体範囲を指定する
r半径を指定開始点(指定しない場合は実行者)からの半径の内側を指定する
rm最小半径を指定開始点(指定しない場合は実行者)からの半径の外側を指定する
c近い順の数開始点(指定しない場合は実行者)から近い順にエンティティの数を指定する
l最大レベルを指定lで指定した値以下のレベルを検索する
lm最小レベルを指定lmで指定した値以上のレベルを検索する
scoresスコアを指定スコアの値を指定する
tagタグを指定タグの名前を指定する
name名前を指定エンティティの名前を指定する
type種別を指定エンティティの種別を指定する
family広義種別を指定エンティティの広義種別を指定する
mゲームモードを指定プレイヤーのゲームモードを指定する
hasitemアイテムの所持を指定インベントリ内のアイテムを指定する
haspermission権限を指定エンティティに許可された権限を指定する
rx垂直方向の向きの最大角を指定プレイヤーが見ている垂直方向の最大角度を指定する
水平=0、真上=-90、真下=90
rxm垂直方向の向きの最小角を指定プレイヤーが見ている垂直方向の最小角度を指定する
水平=0、真上=-90、真下=90
ry水平方向の向きの最大角を指定プレイヤーが見ている水平方向の最大角度を指定する
南=0、東=-90、西=90、北=180
rym水平方向の向きの最小角を指定プレイヤーが見ている水平方向の最小角度を指定する
南=0、東=-90、西=90、北=180

座標(x,y,z)

開始点として座標を指定します。ただし単体では機能しません。

範囲(dx,dy,dz)

開始点からd~で指定する点までの直方体範囲を指定します。なお開始点を指定しない場合は実行者が開始点になります。

例)@a[x=0,y=0,z=0,dx=4,dy=4,dz=4]

dxdydz図解

開始点として(x=0,y=0,z=0)を指定し、範囲として(dz=4,dy=4,dz=4)を指定した例。この範囲内にある@aを指定することが出来ます。

開始点を指定しない場合はコマンドの実行者(プレイヤーやコマンドブロック)が開始点となる点に注意してください。

半径(r)

開始点からの半径をrで指定することで、その範囲内にいる対象を指定することができます。

例)@e[r=10]

コマンドの実行者が開始点となり半径10ブロック以内にいるエンティティを対象として指定しています。

最小半径(rm)

開始点からの最小半径をrmで指定することで、その範囲の外にいる対象を指定することができます。

例)@e[rm=2]

半径2ブロックの外にいるエンティティを対象として指定しています。

応用例)@e[r=5,rm=3]

セレクターr,rmの使い方

rとrmを併記すると「半径3ブロック以上〜半径5ブロック以内」の範囲を指定することができます。

近い順の数(c)

cは近い順にエンティティの数を指定することが出来ます。
@a[c=1]は@pと同じ意味になりますが、他にもcは人数を増やしたり、@eに追加で指定したりという使い道があるのが特徴です。

例)@e[c=2]

セレクターcの使い方

実行者に近い順に2体のエンティティを指定しています。

最大レベル(l)

レベル(経験値)の値を(l)で指定します。これにより、レベルがlよりも小さいプレイヤーを指定することが出来ます。

例)@a[l=30]

レベル30以下のプレイヤーを指定しています。

最小レベル(lm)

レベルの最小値を(lm)で指定することにより、レベルがlmよりも大きいプレイヤーを指定することが出来ます。

例)@a[lm=10]

レベル10以上のプレイヤーを指定しています。

応用例)@a[lm=10,l=15]

lとlmを併記することで「レベル10以上、15以下のプレイヤー」を指定することが出来ます。

スコア(scores)

scoresはエンティティのスコアの値を指定することができます。

例)@a[scores={test=8}]

スコアオブジェクト名「test」の値が8のプレイヤーを指定しています。

さらに、スコアの値の指定を以下の方法で拡張することが出来ます。

記述意味
@a[scores={オブジェクト名=..8}]8以下
@a[scores={オブジェクト名=4..8}]4〜8以内
@a[scores={オブジェクト名=8..}]8以上
@a[scores={オブジェクト名=!8}]8以外
@a[scores={オブジェクト名=!4..8}]4〜8以外

例)@a[scores={test1=10,test2=3}]

2つ以上のスコアを指定するときは(,)で区切って併記することができます。
スコアオブジェクト名「test1」の値が10、且つ「test2」の値が3のプレイヤーを指定しています。

タグ(tag)

tagを使ってエンティティに付与されたタグの文字列を指定することが出来ます。

例)@a[tag=red]

タグ名「red」が付与されたプレイヤーを指定しています。

【タグに出来てスコアに出来ないこと】
タグを使用すれば『@a[tag=]』と記述することで『タグが付与されていないプレイヤー』を指定することが出来ますが、スコアでは『スコアが付与されていないプレイヤー』を指定することは出来ず、必ず何かしらの値を指定することになります。

名前(name)

nameを使用することでエンティティの名前を指定することが出来ます。

例)@a[name=okutani]

エンティティ名が「okutani」であるプレイヤーを指定しています。

種別(type)

typeを使用することでエンティティの種別を指定することが出来ます。

例)@e[type=skeleton]

種別「スケルトン」を指定しています。

指定できるtype一覧

指定できる種別には以下のものがあります。

allayアレイ
area_effect_cloud
armadilloアルマジロ
armor_stand防具立て
arrow
axolotlウーパールーパー
batコウモリ
beeハチ
blazeブレイズ
boatボート
boggedボグド
breezeブリーズ
breeze_wind_charge_projectile
camelラクダ
cat
cave_spider洞窟グモ
chest_boatチェスト付きボート
chest_minecartチェスト付きトロッコ
chickenニワトリ
codタラ
command_block_minecartコマブロ付きトロッコ
cow
creeperクリーパー
dolphinイルカ
donkeyロバ
dragon_fireballエンドラの火の玉
drownedドラウンド
egg
elder_duardianエルダーガーディアン
elder_guardian_ghost未使用モブ
ender_crystalエンダークリスタル
ender_dragonエンダードラゴン
ender_pearlエンダーパール
endermanエンダーマン
endermiteエンダーマイト
evocation_fangエヴォーカーのファング攻撃
evocation_illagerエヴォーカー
eye_of_ender_signal投げられたエンダーアイ
falling_block落下中のブロック
fireball火の玉
fireworks_rocket花火
fishing_hook釣り竿のウキ
foxキツネ
frogカエル
ghastガスト
glow_squid光るイカ
goatヤギ
guardianガーディアン
hoglinホグリン
hopper_minecartホッパー付きトロッコ
horse
huskハスク
iron_golemアイアンゴーレム
itemアイテム
leash_knotリードの結び目
lightning_bolt
lingering_potion残留ポーション
llamaラマ
llama_spitラマの唾液
magma_cubeマグマキューブ
minecartトロッコ
npcNPC
ocelotヤマネコ
ominous_item_spawner
painting絵画
pandaパンダ
parrotオウム
phantomファントム
pig
piglinピグリン
piglin_bruteピグリンブルート
pillager略奪者
playerプレイヤー
poler_bearシロクマ
pufferfishフグ
rabbitウサギ
ravagerラベジャー
salmonサケ
sheepヒツジ
shulkerシュルカー
shulker_bulletシュルカーの弾
silverfishシルバーフィッシュ
skeletonスケルトン
skeleton_horseスケルトンホース
slimeスライム
small_fireball小さな火の玉
snifferスニッファ―
snow_golemスノーゴーレム
snowball雪玉
spiderクモ
splash_potionスプラッシュポーション
squidイカ
strayストレイ
striderストライダー
tadpoleオタマジャクシ
thrown_trident投げられたトライデント
tntTNT
tnt_minecartTNT付きトロッコ
trader_llama行商人のラマ
tropicalfish熱帯魚
turtleカメ
vexヴェックス
villager村人
villager_v2村人
vindicatorヴィンディケーター
wandering_trader行商人
wardenウォーデン
wind_charge_projectile投げられたウィンドチャージ
witchウィッチ
witherウィザー
wither_skeletonウィザースケルトン
wither_skullウィザースカル
wither_skull_dangerousウィザー青スカル
wolfオオカミ
xp_bottle経験値ボトル
xp_orb経験値オーブ
zoglinゾグリン
zombieゾンビ
zombie_horse未使用モブ
zombie_pigmanゾンビピグリン
zombie_villager村人ゾンビ
zombie_villager_v2村人ゾンビ

広義種別(family)

familyを使用することでtypeよりも大きい括りの種別を指定することが出来ます。

例)@e[family=inanimate]

family「inanimate」を使用することで「無生物のエンティティ」を指定しています。

※familyの一覧はWikiの記載がわかりやすいので参照してください。

ゲームモード(m)

mを使用することでプレイヤーをゲームモード別に指定することが出来ます。

例)@a[m=1]

ゲームモードが「クリエイティブ」のプレイヤーを指定しています。

指定できるゲームモード一覧

ゲームモード短縮表記数字表記
survivals0
creativec1
adventurea2
defaultd
spectator

所持アイテム(hasitem)

hasitemを使用すると、エンティティのインベントリにあるアイテムを指定することが出来ます。

例)@a[hasitem={item=ender_eye}]

エンダーアイを所持しているプレイヤーを指定しています。

hasitemで指定できる項目

hasitemの指定の中では以下の項目を追加指定することが出来ます。

itemアイテム種別
dataアイテムのデータ値
(指定しない場合はデフォルト0)
quantityアイテムの数
(指定しない場合はデフォルト1)
locationインベントリの種類
(指定しない場合は「どこでも可」)
slotインベントリ内の場所
(指定しない場合は「どこでも可」)

例)@a[hasitem={item=iron_helmet,data=0,quantity=1,location=slot.armor.head,slot=0}]

「鉄ヘルメットの耐久値MAXを一個、頭部の0番に所持しているプレイヤー」を指定しています。

item=iron_helmet
アイテム種別「鉄ヘルメット」を指定しています。

data=0
アイテムのデータ値を指定してます。鉄ヘルメットの場合は「0」は耐久値MAXの状態を指します。
※データ値はアイテムによって指す状態が違い、全体像としてあまりに膨大過ぎる&筆者も全てを知っているわけではないのでここで全てを解説することは不可能です。

quantity=1
鉄ヘルメットの所持数「1個」を指定しています。

location=slot.armor.head
「頭部の装備欄」を指定しています。

slot=0
インベントリ内の場所を指定しています。頭部の装備欄は1か所しかないので「0」のみ有効です。

locationの種類

hasitemで指定できるlocationの種類と対応するslot数は以下になります。

location
(インベントリの種類)
slot説明
slot.armor0馬鎧専用インベントリ
slot.armor.chest0胸部防具用インベントリ
slot.armor.feet0足部防具用インベントリ
slot.armor.head0頭部防具用インベントリ
slot.armor.legs0脚部防具用インベントリ
slot.chest0~53チェスト
slot.enderchest0~26エンダーチェスト
slot.equippable0~(エンティティによる)鞍及び馬鎧用インベントリ
slot.hotbar0~8プレイヤーホットバー
slot.inventory0~(エンティティによる)エンティティ用インベントリ
slot.saddle0鞍用インベントリ
slot.weapon.mainhand0選択されているホットバー
slot.weapon.offhand0オフハンド用インベントリ

プレイヤーの向き(rx,rxm,ry,rym)

rx,rxm,ry,rymを使用すると、プレイヤーの向き(顔の向き)を指定することが出来ます。

rx垂直方向の最大角度を指定。
水平=0、真上=-90、真下=90
rxm垂直方向の最小角度を指定。
水平=0、真上=-90、真下=90
ry水平方向の最大角度を指定
南=0、東=-90、西=90、北=180
rym水平方向の最小角度を指定
南=0、東=-90、西=90、北=180

例)@a[rx=90,rxm=0]

垂直角で0°(正面)~90°(真下)を向いているプレイヤーを指定しています。

あっち向いてホイッ!でも作るんでしょうか。