お久しぶりです。たつひこです。
お久しぶりな今回はNBTについて紹介します。
DATA や SUMMON を多様していると勝手に覚えてくるものですが、果たしてすべて覚えているでしょうか?
そんなNBTを、今回は一気に紹介していきます。
エンティティごとの固有NBTは別の記事にまとめたいと思います。
目次
- テンプレート
- Motion [List/Double]
- Rotation [List/Double]
- Pos [List/Float]
- Fire [Short]
- Air [Short]
- FallDistance [Float]
- PortalCooldown [Int]
- HurtTime [Short]
- DeathTime [Short]
- OnGround [Boolean]
- NoGravity [Boolean]
- Silent [Boolean]
- Invulnerable [Boolean]
- Glowing [Boolean]
- CustomNameVisible [Boolean]
- CustomName [String]
- Team [String]
- Tags [String]
- DeathLootTable [String]
- LeftHanded [Boolean]
- Leashed [Boolean]
- Leash [Compound]
- FallFlying [Boolean]
- PersistenceRequired [Boolean]
- NoAI [Boolean]
- CanPickUpLoot [Boolean]
- HandItems [Compound]
- HandDropChances [Compound]
- ArmorItems [Compound]
- ArmorDropChances [Compound]
- AbsorptionAmount [Float]
- Health [Float]
- SleepingX / SleepingY / SleepingZ [Int]
- ActiveEffects [Compound]
- Passengers [Compound]
- Attributes [Compound]
- [Attributes] max_health [Double]
- [Attributes] follow_range [Double]
- [Attributes] knockback_resistance [Double]
- [Attributes] movement_speed [Double]
- [Attributes] attack_damage [Double]
- [Attributes] armor [Double]
- [Attributes] armor_toughness [Double]
- [Attributes] attack_knockback [Double]
- あとがき
テンプレート
この記事ではNBTを
NBT [属性]
の形で表示します。
属性には byte|double|float|int|long|short の種類があり、[execute store (result|success) entity] を使用する最のpathの後の記述です。
data modifyを使用する際は気にする必要はありません。
また、String|List|Byte Array|Int Array|Long Array|Compound|Boolean は上記の値を記述する形です。各NBTごとに例として表示しているので覚える必要は基本的にありません。
[execute store] の詳細は別の記事にまとめたいと思います。
また、属性についでも別記事で細かくまとめるつもりです。
Motion [List/Double]
エンティティの動きを制御します。左からX・Y・Zで構成されていて、移動に視点は関係ありません。
小数点の入力は必須です。
{Motion:[1.0d,0.3d,-1.0d]}
Rotation [List/Double]
エンティティの向いている方向を制御します。左からX・Yで構成されていいて、F3を押した時左にでるFacingと同じと考えていいです。
TPコマンドを使用した時などにも変更されます。
{Rotation:[0f,-90f]}
Pos [List/Float]
エンティティの座標を制御します。
data mergeで変更すると疑似TPができます。
しかし、~ ~3 ~などの現在の座標を参照しての移動はできません。
{Pos:[0f,100f,0f]}
Fire [Short]
エンティティが燃える時間を制御します。
tick単位なので20/秒となります。
溶岩遊泳を試みた時は300,火に当たったときは160に設定されるようです。
{Pos:20s}
Air [Short]
エンティティが水中で息を止れる時間を制御します。
tick単位なので20/秒となります。
デフォルトは300。水中にいると20/秒で減っていき、0以下になるとダメージを喰らいます。
{Pos:20s}
FallDistance [Float]
エンティティが落下した距離をブロック単位で制御します。
値が3.000001以上になると着地した時に値に応じてダメージを喰らいます。
{FallDistance:5f}
PortalCooldown [Int]
エンティティがポータルに入ることができるようになる時間を制御します。
tick単位なので20/秒となります。
値が0になるとこのNBTはエンティティから消滅し、ポータルに入ることができるようになります。
エンティティがネザーゲートなどのポータルを通ると900に設定されます。
{PortalCooldown:10}
HurtTime [Short]
エンティティがダメージを喰らったときに赤くなる時間を制御するはずのものですが、動作していないようです。
ゲーム内でダメージを喰らった時はしっかりと動作するようで、ダメージを喰らった直前は10になります。
tick単位なので20/秒となります。
data getでダメージを喰らったときの判定に使うことがほとんどです。
{HurtTime:10s}
DeathTime [Short]
エンティティの死亡アニメーションを制御するようですが、直接変更することはできません。
エンティティが死亡したときに変更されるようですが、死亡しときは判定が無くなってしまうのでdata get で使うこともできません。実際に死亡した時の演出のみに使われているようです。
生きている時は0です。
{DeathTime:0s}
OnGround [Boolean]
エンティティが地面に着地しているかを制御します。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
data mergeなどを使用して変更はできますが、すぐに上書きされるのでdata getでの仕様がメインになると思います。
{OnGround:1b}
NoGravity [Boolean]
エンティティが重力の影響を受けるかどうかを制御します。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
1b(true)にするとエンティティは重力の影響を受けないようになります。
デフォルトは0b(false)です。
{NoGravity:1b}
Silent [Boolean]
エンティティがサウンドを発生させるかを制御します。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
1b(true)にするとエンティティは一切の音をはっしなくなります。
デフォルトは0b(false)です。
{Silent:1b}
Invulnerable [Boolean]
エンティティがダメージを受けるかどうかを制御します。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
1b(true)にするとエンティティはほぼすべてのダメージを喰らわなくなります。
デフォルトは0b(false)です。
ダメージを喰らう例外としては、クリエイティブモードのプレイヤー・奈落が存在します。
{Invulnerable:1b}
Glowing [Boolean]
エンティティが発光するかどうかを制御します。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
1b(true)に設定すると、effectの有無関係なく発行するようになります。
デフォルトは0b(false)です。
{Glowing:1b}
CustomNameVisible [Boolean]
エンティティのネームタグが常に表示されるかどうかを制御します。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
1b(true)に設定すると視点関係なくエンティティのネームタグが表示されます。
0b(false)に設定するとエンティティに視点を合わせた時のみ表示されるようになります。
{CustomNameVisible:1b}
CustomName [String]
エンティティの名前を制御します。
様々な項目を設定でき、true・falseを使用する場面もあります。
下記のコマンドを参照に説明を書いていきます。
text – エンティティの名前です。
color – [white|black|dark_blue|dark_green|dark_aqua|dark_red|dark_purple|dark_gray|gold|gray|blue|green|aqua|red|light_purple|yellow] または16進数を使用して色を付けることができます。
bold – テキストの太くするか設定できます。例 [true/false]
italic – テキストを斜めにするか設定できます。例 [true/false]
underlined – テキストに下線をつけるか設定できます。例 [true/false]
strikethrough – テキストに取り消し線をつけるか設定できます。例 [true/false]obfuscated – テキストをバグらせるか設定できます。解読できなくなります。 [true/false]
他にもtranslateなどあるようですが、まだ理解できていないので理解でき次第記述します。
{CustomName:'{“text”:”名前”,”color”:”white”,”bold”:true,”italic”:false,”underlined”:false,”strikethrough”:false,”obfuscated”:false}’}
Team [String]
参加しているチームを制御します。入力したチームが存在している必要があります。
チームに参加したエンティティはそのチームが持っている設定が適用されます。
また、エンティティは一つのチームにしか参加できません。
{Team:”red”}
Tags [String]
所持しているタグを制御します。
タグは”で挟む必要があり、[ , ]を使用することで複数付けることができます。
{Tags:[“shadow”,”kill_ok”]}
DeathLootTable [String]
死んだ時におとすアイテムをLootTableを使用して制御できます。
入力したLootTableが存在している必要があります。
下記のNBTを適用すると、倒したときにニワトリと同じドロップをするようになります。
{DeathLootTable:”minecraft:entities/chicken”}
LeftHanded [Boolean]
右利きか左利きかを制御できます。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
すべてのエンティティに使用できますが、効果を発揮するのはアイテムも持ったときに表示されるエンティティ(ゾンビ・スケルトン・ヴィンディゲーター など)のみです。
1b(true)に設定するとメインハンドの武器を左手に持つようになります。
デフォルトは0b(false)です。
{LeftHanded:1b}
Leashed [Boolean]
リードで繋がれているを制御します。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
1b(true)に設定するとリードでつなぐようになりますが、リードの表示にはLeashの設定が必須です。
{Leashed:1b}
Leash [Compound]
リードで繋がれている座標・エンティティを制御します。
UUIDまたはX・Y・Zで設定することができますが、私の環境だとUUIDでやったときは反応しませんでした。
X・Y・Zで設定したときは、その座標にリードの結び目が同時に生成され、そこと繋がれました。
その場所にフェンスがない場合でもリードは表示されますが、なにかしらのアクションがあると壊れてしまうようです。
UUIDに関してコメントでご意見お待ちしています。
{Leash:{UUID:[I;xxxx,xxxx,xxxx,xxxx]}} (?)
{Leash:{X:2,Y:51,Z:-2}}
FallFlying [Boolean]
エンティティが滑空するかを制御できます。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
1b(true)にした状態でエリトラを装備させるとエンティティが滑空します。
0b(false)にするとエリトラをつけていても滑空しません。}
デフォルトは0b(false)です。
{FallFlying:1b}
PersistenceRequired [Boolean]
エンティティがデスポーンするかを制御できます。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
1b(true)にするとエンティティはデスポーンしなくなります。
デフォルトは0b(false)です。
{PersistenceRequired:1b}
NoAI [Boolean]
エンティティがAIをもっているか制御できます。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
1b(true)にすると、エンティティはAIを持たなくなりその場で停止します。
この時、重力やノックバックの影響も受けなくなります。
{NoAI:1b}
CanPickUpLoot [Boolean]
エンティティがアイテムを拾うかを設定できます。
属性[Boolean]はtrue/falseで制御します。
値にはByteを使用し、1b(true)、0b(false)のようになります。
1b(true)にすると、エンティティは落ちているアイテムと自分のアイテムを比較して落ちているアイテムのほうが高価だった場合持っているアイテムと持ち替えます。ピグリンは価値に関わらず金のアイテムを取ります。
また、村人が野菜を拾うかも設定できるようです。
{CanPickUpLoot:1b}
HandItems [Compound]
エンティティが持っているアイテムを制御できます。
メインハンド・オフハンドの制御に使用します。
左に入力したものがメインハンド、右に入力したものがオフハンドに設定できます。
また、ここに上記のLeftHandedの設定も乗りLeftHandedが1b(true)の場合メインハンドのアイテムが左に持つようになります。
アイテムを持つエンティティに使用するとそのアイテムを持ちますが、そのモーションがないエンティティに使用してもアイテムを持つことはありません。ですがNBT上には保存されているので疑似LootTableなどができるかもしれません。
手動での入力が難しいNBTなので、このサイト を使用することを推奨します。 MCStacker
アイテムの詳細をここに書くときりがないので、下記に使用しているNBTのみ紹介します。
id – アイテムの名前です。 “”で囲む必要があり、minecraft:は必須です。
Count – アイテムの数です。Byte属性です。
{HandItems:[{id:”minecraft:iron_sword”,Count:1b},{id:”minecraft:golden_axe”,Count:1b}]}
HandDropChances [Compound]
エンティティがもっているアイテムのドロップ率を設定できます。
メインハンドとオフハンドの項目があり、左がメイン、右がオフハンドです。
属性はFloatです。
1fを100%、0を0%と設定されます。
1fに設定した場合アイテムは劣化(耐久が減っている)した状態でドロップします。
2fに設定した場合アイテムは劣化しません。はじめに所持した耐久でドロップします。
ゾンビなどがアイテムを拾った場合この値は2fになります。
{HandDropChances:[2f,0.1f]}
ArmorItems [Compound]
エンティティがつけている装備を制御できます。
左から、足・ズボン・胴・頭の順に入力されます。
アイテムを装備するエンティティに使用するとそのアイテムを装備しますが、そのモーションがないエンティティに使用してもアイテムを装備することはありません。ですがNBT上には保存されているので疑似LootTableなどができるかもしれません。
頭枠に頭装備以外のアイテムを入力されるとそのまま頭にのります。
手動での入力が難しいNBTなので、このサイト を使用することを推奨します。 MCStacker
詳細をここに書くときりがないので、下記に使用しているNBTのみ紹介します。
id – アイテムの名前です。 “”で囲む必要があり、minecraft:は必須です。
Count – アイテムの数です。Byte属性です。
{ArmorItems:[{id:”minecraft:iron_boots”,Count:1b},{},{id:”minecraft:elytra”,Count:1b},{id:”minecraft:chest”,Count:1b}]}
ArmorDropChances [Compound]
エンティティが装備しているアイテムのドロップ率を設定できます。
左から足・ズボン・胴・頭の項目になっています。
属性はFloatです。
1fを100%、0を0%と設定されます。
1fに設定した場合アイテムは劣化(耐久が減っている)した状態でドロップします。
2fに設定した場合アイテムは劣化しません。はじめに所持した耐久でドロップします。
ゾンビなどがアイテムを拾った場合この値は2fになります。
{ArmorDropChances:[2f,0f,0f,0.3f]}
AbsorptionAmount [Float]
金リンゴを食べた時の追加HPと同じと考えていいです。
Healthと同じように扱われますが、インスタントヒールや再生などでは回復されません。
{AbsorptionAmount:10f}
Health [Float]
エンティティの体力です。
インスタントヒールや再生などで最大HPまで回復します。
ゾンビのデフォルトは20fです。
{Health:20f}
SleepingX / SleepingY / SleepingZ [Int]
エンティティが寝ている枕元の座標を制御します。
その座標にベッドがないと機能しません。
ベッドがあった場合その座標で横になります。
X・Y・ZでNBTが分かれていますが同時に使うことを推奨します。
{SleepingX:0,SleepingY:60,SleepingZ:10}
ActiveEffects [Compound]
エンティティにポーションと同じ効果を付与します。
下記だと、スピード1を60秒間。再生能力1を30秒間付与します。
手動での入力が難しいNBTなので、このサイト を使用することを推奨します。 MCStacker
詳細をここに書くときりがないので、下記に使用しているNBTのみ紹介します。
id – エフェクトのIDです。詳細はMCStackerを参照してください。
Amplifier – エフェクトの効果の強さです。最低が1、最高が255です。
Duration – エフェクトの効果がかかる時間です。tickなので20/秒となります。
ShowParticles – パーティクルを表示するかどうかです。1b(true)で表示、0b(false)で非表示です。デフォルトは1b(true)。
{ActiveEffects:[{Id:1b,Amplifier:1b,Duration:1200,ShowParticles:0b},{Id:11b,Amplifier:1b,Duration:600}]}
Passengers [Compound]
エンティティの上にエンティティを乗っけます。
具体的に言うとスパイダージョッキーやチキンジョッキーなど。乗っけたエンティティの上にまたエンティティを乗っけたりもできます。
手動での入力が難しいNBTなので、このサイト を使用することを推奨します。 MCStacker
乗っけたエンティティにまたNBTを設定したりと様々なことができるので紹介は省きます。
{Passengers:[{id:”minecraft:zombie”}]}
Attributes [Compound]
エンティティのステータスを制御できます。
手動での入力が難しいNBTなので、このサイト を使用することを推奨します。 MCStacker
詳細をここに書くときりがないので、下記に使用しているNBTのみ紹介します。
Name – 下記のNBTを参照してください。変更するステータスを設定できます。
Base – 変更する値を設定できます。ステータスによって変化が違うので下記を参照の上行ってください。
{}を[ , ] で区切ることで複数のステータスを持つことができます。
{Attributes:[{Name:generic.max_health,Base:30d},{Name:generic.movement_speed,Base:0.3d}]}
[Attributes] max_health [Double]
エンティティの最大HPを設定します。Healthとは違う値になるので、HPを最大まで回復するにはこの値とHealthを合わせてください。
1/❤0.5となっているので、デフォルトのゾンビの値は20です。
{Name:generic.max_health,Base:30d}
[Attributes] follow_range [Double]
エンティティの索敵範囲を設定します。ゾンビがプレイヤーを見つける距離です。
1/ブロック となっています。
ゾンビのデフォルトは35です。
{Name:generic.follow_range,Base:50d}
[Attributes] knockback_resistance [Double]
ノックバックを無効化する確率を設定します。
1で100%、0で0%なので、1に設定すると完全にノックバックを無効化できます。
{Name:generic.knockback_resistance,Base:1d}
[Attributes] movement_speed [Double]
移動速度を設定できます。
ブロック/秒で設定されます。
ゾンビのデフォルトは0.23です。
{Name:generic.movement_speed,Base:0.3d}
[Attributes] attack_damage [Double]
エンティティが攻撃する時のダメージを設定できます。
1/❤0.5となっていて、ゾンビのデフォルトは3です。
{Name:generic.attack_damage,Base:5d}
[Attributes] armor [Double]
エンティティのアーマーを設定できます。
高ければ高いほどダメージを軽減できます。
ゾンビのデフォルトは2です。
{Name:generic.armor,Base:5d}
[Attributes] armor_toughness [Double]
ネザライト装備のみがもっている値です。
ゾンビのデフォルトは0です。
{Name:generic.armor_toughness,Base:0}
[Attributes] attack_knockback [Double]
攻撃した時のノックバック?を設定できるようです。
値が高ければ高いほどノックバックの距離が増えるだと思います。私がやったときは機能しませんでした。
ゾンビのデフォルトは0です。
{Name:generic.attack_knockback,Base:10}
あとがき
記事の観覧ありがとうございます。
たつひこです。
この記事を書き始めたのが夜1時で、「2時間ほどで終わるかな?」と思っていたんですけど、、、
今6時ですね。
たくさん疲れました。
久しぶりにここまで集中した気がします。
この記事を機にコマンドに興味をもってくださるとうれしいです。
それではまた別の記事で会いましょう。
#記述環境は v.1.15.2です。
コメント
CustomNameVisibleの項目の例文、誤字してますよ。Customのmがnになっている