TAGコマンドの使い方 – エンティティ/プレイヤーをタグで分類【Minecraft】
コマンドでプレイヤーやMobを指定する時、例えば「name=名前」「score_スコア名=○」などの条件を決めて指定しますね。でも、いちいちMobの名前やスコア名を入力するのって面倒で、メンテナンスも大変…
そこで、tagコマンドを使いましょう。エンティティに「タグ」を付けて分類できるんです。 タグ付きでMobを召喚したり、複数タグの判定も可能。コマンドの仕掛け作りが劇的に楽になります!
目次
「Tag」とは?
tagは完全にスコアボードの代わりではなく、スコアボードと比べて様々なメリット・デメリットがあります
- – 事前にスコアボードを作成したりする必要がない
- – 追加、削除するだけ
- – 判定できるのは「タグを持っているか/いないか」だけ
- – Scoreboardの「stat」のように自動で付与されたりする機能はない
- – Scoreboardの「dummy」のように、「タグ」は数値のデータを持つことができない
- – 「○秒経ったら○○する」はスコアボードを使わないと無理
新機能「Tag」でエンティティやプレイヤーにタグを追加する方法
tagの追加
- /tag type=Villager,nbt={CustomName:“\”店員さん\””}] add Shop [
構文
/tag <ターゲット> add <タグ名>
/kill @e[tag=Shop]で、「Shop」タグを持っているエンティティをキルします。先ほどのコマンドで、「店員さん」には「Shop」タグが付いたので、ここで一気に殺せるわけです。
最初からタグを付けてMobを召喚すればとっても楽!
いちいちMobにタグを追加するのは面倒なので、最初からタグを付けて召喚してみましょう。
- 最初から「Shop」タグが付いた「店員さん」を召喚するコマンド
- /summon Villager ~ ~ ~ {Tags:[“Shop”],CustomName:店員さん}
エンティティの新しいデータタグ「Tags」を使います。[“タグ1″,”タグ2”]のように書くことで複数のタグを付けて召喚することも可能です。例えば「Shop」と「Town」ならTags:[“Shop”,”Town”]と書くんです。
複数のタグを持っているプレイヤー/エンティティを指定する方法
Mobやプレイヤーにタグを何個も付けて、例えば「タグAとタグBをどちらも持っていると何か起きる」みたいな仕掛けを作る時はどうすればいいのでしょうか。答えは簡単。以下のように指定するんです。
- 「Zako」と「Dekabana」タグをどちらも持っている魔女を奈落へ落とすコマンド
- /execute as [type=Witch,tag=Zako,tag=Dekabana] run teleport ~ ~-300 ~
プレイヤー/エンティティに付いているタグを確認/削除するコマンド
プレイヤー/エンティティの持っているタグは、そのままでは見ることができませんが、コマンドを使えば対象のプレイヤー/エンティティのtag一覧をチャットログに表示させることができます。以下の構文でコマンドを実行しましょう。
- プレイヤー/エンティティの持っているタグを確認するコマンド
- /tag <ターゲット(@eなど)> list
また、タグは削除することもできます。
- プレイヤー/エンティティの持っているタグを削除するコマンド
- /tag <ターゲット> remove タグ名
この時、データタグを条件に削除できるので、例えば「着地したら削除」ならセレクタに[nbt={OnGround:true}]と付けます。コマンドの仕掛けに上手に組み込んで、より高度な仕掛けを作ってみましょう!
11件のコメント
-
SCPを再現しようと頑張ってる人2016年3月31日タグをつけたプレイヤーがハートが1になった時にキルしたいのですがどのようにすればいいのでしょうか
-
匿名2016年4月1日まずはHPをカウントするためのスコアボードを作成します。 /scoreboard objectives add HP health これでプレイヤーのHPが「HP」というスコアボードに自動で代入されるようになりました。 次に以下のコマンドを常時実行します。 /kill @a[tag=タグ名,score_HP=2] ▲♥1つはHP"2"なので、スコア「HP」が2以下でさらにタグを持っている人をキルします。
-
小方こはく2016年6月22日指定したCustomName以外のエンティティをターゲットにすることはできるのでしょうか。 具体的には、{CustomName:p1}を付けた(p1のところはそれぞれp1〜p9)合計9体のアーマースタンドがあってp1にpAというタグを付け、p1以外のアーマースタンドからpAをremoveしたいのです。 そこでpAをremoveする対象を@e[name=!p1]としているのですがCustomNameで付けた名前は引数nameに引っかかるのでしょうか。
-
匿名2016年6月26日はい、!を付ければ否定の指定が可能です。 {CustomName:"test"}ってエンティティがいたとして、 /kill @e[name=!test] とすればtest以外のエンティティをキルできます。
-
SHIKURORO2016年6月29日ご回答ありがとうございました。
-
hiro2016年11月4日アイテムにもTAGはつけられるのですか?(エンダーパールにつけたい
-
匿名2016年11月4日残念ながら、アイテムとして手に持った状態ではタグは付けられません。落ちているアイテムはエンティティなので付けられますが、拾うと消えます... 落ちているエンダーパールにタグを付ける場合は /scoreboard players tag @e[type=Item] add tagName {Item:{id:"minecraft:ender_pearl"}} で付けられます。
-
kaikai2017年6月1日自分にはTAGを付けられますか?
-
疲れたでんでん2017年6月11日/scoreboard players tag @p add {}
-
バタフライ2017年7月10日すいません。質問なのですが、tagにbossと付けているのですが、試しで/killのコマンドをtag指定しても機能しないのです@@; 環境はversion1.12 ボスに設定している物はこういう感じになっています。 /summon zombie -98 35 -190 {CustomName:"ソウルハント",CustomNameVisible:1,Tags:["boss"],ArmorItems:[{},{},{},{id:"minecraft:stained_glass",Damage:14,Count:1b}],HandItems:[{id:"minecraft:stone_sword",Count:1b,tag:{HideFlags:1,AttributeModifiers:[{AttributeName:"generic.maxHealth",Name:"generic.maxHealth",Amount:5,Operation:0,UUIDLeast:831139,UUIDMost:516829,Slot:"mainhand"},{AttributeName:"generic.movementSpeed",Name:"generic.movementSpeed",Amount:0.02,Operation:0,UUIDLeast:659859,UUIDMost:171926,Slot:"mainhand"},{AttributeName:"generic.attackDamage",Name:"generic.attackDamage",Amount:12,Operation:0,UUIDLeast:538483,UUIDMost:231999,Slot:"mainhand"},{AttributeName:"generic.attackSpeed",Name:"generic.attackSpeed",Amount:0.05,Operation:0,UUIDLeast:359298,UUIDMost:260009,Slot:"mainhand"}],Unbreakable:1,display:{Name:"ソウルディール",Lore:["魂を吸い尽くして、満たされて作られた剣"]},ench:[{id:34,lvl:1}]}},{id:"minecraft:flint",Count:1b,tag:{HideFlags:1,display:{Name:"ディグの魂",Lore:["冒険者:ディグの魂"]},ench:[{id:34,lvl:1}]}}],ArmorDropChances:[0.085F,0.085F,0.085F,0.0F],HandDropChances:[0.055F,0.7F],Attributes:[{Name:generic.maxHealth,Base:80},{Name:generic.movementSpeed,Base:0.25},{Name:generic.attackDamage,Base:6},{Name:generic.followRange,Base:10},{Name:generic.knockbackResistance,Base:0.25},{Name:generic.armor,Base:3}],Health:160.0f} そして、tag指定の/killcommandはこういう感じにしています。 /kill @e[tag=boss] これでなぜかできないのですが…誰か原因分かりませんか??
-
zZjurijuirZz2018年1月5日アイテムにタグつけられた気が