ArmorStandのNBTでよく使うものをジャンルで整理してみる

ArmorStand

ArmorStand(minecraft:armor_stand。アーマースタンド。以下、アマスタ)っていろんな場面で使うじゃないですか。例えば。

  • 防具立て
  • マーカー(位置指定)
  • 3Dモデル配置用
  • 一時的なスコアボード保管用
  • パーティクル表示の基準

などなど。そういう時に、いざアマスタを召喚しようとしたら、

「このNBTってどうやって書くんだったかなあ…」

ってよくなります。ということで私がよく使うやつだけ整理してみる。

基本セット(当たり判定・透明化・落下防止)

# 当たり判定を消す
{Marker:true}

# 透明化する
{Invisible:true}

# 落下防止する
{NoGravity:true}

# 3つ合わせて
{Marker:true,Invisible:true,NoGravity:true}

上の3つは大体のやつに設定している気がする。特に理由もなく。

※ 宗教上の理由から0b, 1bではなく、false, trueで書いてます。

名前関係

# 名前をつける
{CustomName:'{"text":"名前"}'}

# 名前を表示する
{CustomNameVisible:true}

# 2つ合わせて
{CustomName:'{"text":"名前"}',CustomNameVisible:true}

やっぱり、名前をつけるのはやるよね。普通のモブに対してもやるからね。

判別用途関係

# 最初からタグをつける
{Tags:["aaa","bbb"]}

# 最初からチームに含める
{Team:"red"}

# 2つ合わせて
{Tags:["aaa","bbb"],Team:"red"}

タグとかチームはセレクター指定するときに楽になるから、ついつい使っちゃう。

見た目関係

# 小型化
{Small:true}

# 手あり
{ShowArms:true}

# 下の台なし
{NoBasePlate:true}

全部をあわせて使うことはあまりないけど、見た目をいじるなら、これは設定しておきたいよね。

姿勢関係

# 召喚時の向き
## 1つ目はアマスタの体の方向(-180:北、-90:東、0:南、90:西)
## 2つ目はアマスタの頭の方向(0:正面、90:真上、-90:真下)
Rotation:[0.0f,0.0f]

# 頭、体、左手、右手、左足、右足の角度(別サイトで設定することを推奨)
Pose:{Body:[...],LeftArm:[...],RightArm:[...],LeftLeg:[...],RightLeg:[...],Head:[...]}

いよいよもって使わなくなってきたけど、アマスタの姿勢調整用。

各パーツはこちらで設定することをおすすめするよ。

haselkern.com

アイテム装備関係

# 最初から右手、左手に装備する
## 1つ目は右手
## 2つ目は左手
{HandItems:[{id:"minecraft:stone",Count:1b},{}]}

# 最初から防具を装備する:インベントリとは逆順に装備するって覚えればいけそうだね
## 1つ目は足装備
## 2つ目は腰装備
## 3つ目は体装備
## 4つ目は頭装備
{ArmorItems:[{},{},{},{id:"minecraft:stone",Count:1b}]}

# 装備を付けられる、はずれるの設定
## この値の詳細は後述
{DisableSlots:31}

アマスタの装備関係。最初から装備させなくていいなら、replaceitemでやった方がシンプルだと思う。

装備の付け外し設定

まずは、こちらの表をご確認あれ。

設定 パーツ 数値
装備させない、はずさせない 右手 1
装備させない、はずさせない 2
装備させない、はずさせない 4
装備させない、はずさせない 8
装備させない、はずさせない 16
装備させない、はずさせない 左手 32
装備をはずさせない (装備できる) 右手 256
装備をはずさせない (装備できる) 512
装備をはずさせない (装備できる) 1024
装備をはずさせない (装備できる) 2048
装備をはずさせない (装備できる) 4096
装備をはずさせない (装備できる) 左手 8192
装備させない (はずせる) 右手 65536
装備させない (はずせる) 131072
装備させない (はずせる) 262144
装備させない (はずせる) 524288
装備させない (はずせる) 1048576
装備させない (はずせる) 左手 2097152

全部の値の意味はこんな感じなんだけど、複数指定したい場合はどうするのか。

全部足します。

つまり、両手、足、腰、体は「装備させない、はずさせない」だけど、頭は「装備させない、けどはずせる」ようにしたいのであれば

  • 右手の「装備させない、はずさせない」は、1
  • 左手の「装備させない、はずさせない」は、32
  • 足の「装備させない、はずさせない」は、2
  • 腰の「装備させない、はずさせない」は、4
  • 体の「装備させない、はずさせない」は、8
  • 頭の「装備させない、けどはずせる」は、1048576 (表の最後のやつ)

になるので、「1 + 32 + 2 + 4 + 8 + 1048576」の結果、「1048623」をDisableSlotsに指定すればOK。

面倒ならば、MC Stackerとか使ったほうが良いと思います。

mcstacker.net

ちなみに、全部「装備させない、はずさせない」、アマスタを破壊もできないで良いならばMarkerを使ったほうが楽です。

デバッグ目的

# 光らせる
{Glowing:true}

実際の使い方は、もちろん光らせるためにあるんですけど、私はデバッグ用途で使ってます。

なんのデバッグかって?

透明化したアマスタがどこにいるのか見えるようにするため!

光らせてしまえば、壁の向こう側でも見えますからね。便利です。

最後に

まだ指定できるNBTはいっぱいあるんですが、私はそこまで残りのやつは使わないです。

世の中にはUUIDとか指定してアレコレする人やAttributeでアレコレする人がいるそうですね。

世界は広いですね。