この記事では、Minecraft Java Edition(バージョン1.17.1)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
コマンドの対象指定で悩んでいるマインクラフター
「名前で対象を指定する方法ってどうやればいいのかな? 同名のmobが複数いる場合とかどうなるのかも知りたい」
こんな疑問を解決します!
- 対象の名前指定にはnameを指定する
- 同名が複数いる場合は、選択したターゲットセレクターで挙動が変わる
こんにちは! マインクラフターのなつめ(@natsume_717b)です。
マイクラ歴は5年程で、最近は脱出マップを配布・制作しています!
→配布マップ・ダウンロードページ
今回は、コマンドの対象を選択する際に名前で指定する方法について解説していきます。
要するにターゲットセレクタ―の使い方について、一歩踏み込んだ内容を話していくということですね。
といっても難しいことをしていくわけではありません。
従来のターゲットセレクタ―に、「○○という名前を持っているものだけを対象にする」という条件を加えていくだけです。
また、指定した名前を持っているものが複数存在する場合についても触れています。
どのように対象が選択されるのかということを解説するということですね。
この記事を読めば、コマンドの対象を名前で指定することができるようになるほか、名前で指定すべきかどうかについても分かるようになります。
それでは、さっそく見ていきましょう!
対象の名前指定にはnameを指定する
コマンドを使う際に名前で対象を指定したい場合は、ターゲットセレクタ―に「name=」を追記します。
具体的には対象の部分を
@e[name="対象にしたい名前"]
といった感じに入力すればOKです。
日本語で名前を指定したい場合は、”(ダブルクォーテーション)が必要ですが、英数字だけならばダブルクォーテーションで囲む必要はありません。
今回は@eで表記しましたが、他のターゲットセレクタ―でも同様に指定することが可能です。
なので
@p[name="対象にしたい名前"]
なんてことも可能です。
このように「name=」を指定することで、選択したターゲットセレクタ―の対象となっているエンティティやプレイヤーの中から、「name=」で指定した名前と同じものだけを対象とすることができます。
また、特定のmobをキルしたい場合に
/kill @e[name="コウモリ"]
といった感じに入力すれば、コウモリだけをキルすることも可能です。
ですが、このコマンドの場合コウモリでないmobの名前がコウモリになっている場合、そのmobもキルされてしまいます。
なので、mobの種類で対象を指定したい場合は「type=」で指定すべきです。
「type=」を使うことで、種類ごとに対象を選択することができます。
この「type=」を解説している記事として以下の記事がありますので、気になる方はぜひどうぞ。
というわけで、コマンドの対象を選択する際に名前で指定したい場合は、「name=」を利用します。
同名が複数いる場合は、選択したターゲットセレクターで挙動が変わる
同じ名前が複数存在している場合、選択したターゲットセレクタ―によって対象に含まれる範囲が変化します。
というのも、@pを指定すれば「最も近くにいる○○という名前のプレイヤー」といった指定になり、@aならば「○○という名前のプレイヤー全て」という対象の選択になります。
使用用途に応じて、ターゲットセレクタ―を選択する必要があるということですね。
ターゲットセレクタ―の詳しいことに関しては、コマンドの対象は全部で6種類!それぞれが意味するものを解説します【マイクラ】を参考にしてください。
プレイヤーを対象としたい場合、名前の指定部分にはプレイヤーIDを指定してください。
同じ名前を持っていてエンティティの種類が違う場合は、先述したように「type=」で判別をつけることができますが、同じ種類のエンティティで同じ名前を持っている場合に差別化を図りたい場合にはtagを使うべきです。
tagは個体ごとに付与できるので、そのタグを持っているかどうかで判別させることができます。
その際は「name=」と同じように、「tag=」を使えばOKです。
tagに関しては【実例付き】タグは対象の判別に役立ちます!【Java版・コマンド】をどうぞ。
というわけで、「name=」を使用した際に同名が複数いる場合は選択したターゲットセレクタ―によってその範囲が変更されます。
まとめ
今回のまとめです。
今回使ったコマンドはこちら。
- 対象となるエンティティを名前で絞り込みたい場合に使うターゲットセレクタ―
@e[name="対象にしたい名前"]
- コウモリという名前のエンティティを全てキルするコマンド
/kill @e[name="コウモリ"]
- 名前で対象を指定したい場合は、通常のターゲットセレクタ―に「name=」を付与します。
- ただし、種類別に判別させたいなら「type=」、より細かく判別させるならば「tag=」の方が向いていますので、状況に応じて適している判別方法を使う必要があります。
この記事は以上になります。