えいまぼJEブログ

Minecraft Java Editionに関していろいろ書きます

TNTキャノン開発に便利なコマンド (バニラ・MOD) | Minecraft Java 1.14.4+

はじめに

今回は TNTキャノン開発に便利なコマンドを紹介します。 コマンドの動作を確認した環境はJava Edition 1.14.4~1.19.2です。 前半はバニラ、後半はCarpetというMODを使ったコマンドを紹介します。 前半と後半の間にコマンド周辺の便利な小技を紹介します。

スクリーンショットは載せていないので、辞書的に使ってください。

バニラ編

summon - TNTを召喚

TNTを召喚します:

/summon tnt ~ ~ ~ {Fuse:80,Motion:[0.0d, 1.0d, 0.0d]}

Fuseは爆発までの時間(単位:gt)です。20gtで1秒です。

速度は10以下のみ指定可能です。10を超えた値を入力すると0として解釈されます。

3つのにょろにょろはチルダです。相対座標を指定します。 例えば/summon tnt ~ ~2 ~と書けば、足元から2ブロック上にTNTが召喚されます。

絶対座標で指定する場合は数字を直接書きます:

/summon tnt 10 80.5 0 {Fuse:80,Motion:[0.0d, 1.0d, 0.0d]}

kill - 着火されたTNTを削除

着火された(=エンティティと化した)TNTのみを削除します:

/kill @e[type=tnt]

data - TNTの座標・速度を取得

1つのTNTが持っている情報をすべて表示します:

/data get entity @e[type=tnt,limit=1]

座標だけ取得したい場合:

/data get entity @e[type=tnt,limit=1] Pos

x座標のみ(1行目)、y座標のみ(2行目)、z座標のみ(3行目)取得したい場合:

/data get entity @e[type=tnt,limit=1] Pos[0]
/data get entity @e[type=tnt,limit=1] Pos[1]
/data get entity @e[type=tnt,limit=1] Pos[2]

速度だけ取得したい場合:

/data get entity @e[type=tnt,limit=1] Motion

各軸単独の成分を取得したい場合は座標と同じように[0]などを末尾につけます。

なお、/dataはコマンドブロックで実行してもログに表示されません。 コマンドブロックで座標などを取得したい場合は次で紹介する/tellrawを使います。

tellraw - TNTの座標・速度を取得

/tellrawでは複数のTNTの座標・速度を取得できます。 座標(x, y, z)を表示:

/tellraw @a {"entity":"@e[type=tnt]","nbt":"Pos"}

速度を測定するにはPosMotionに変えます:

/tellraw @a {"entity":"@e[type=tnt]","nbt":"Motion"}

x, y, z軸単独の成分を取得したい場合は/data同様[0], [1], [2]を末尾につけます:

/tellraw @a {"entity":"@e[type=tnt]","nbt":"Pos[0]"}
/tellraw @a {"entity":"@e[type=tnt]","nbt":"Pos[1]"}
/tellraw @a {"entity":"@e[type=tnt]","nbt":"Pos[2]"}

これは速度(Motion)でも同じです:

/tellraw @a {"entity":"@e[type=tnt]","nbt":"Motion[0]"}
/tellraw @a {"entity":"@e[type=tnt]","nbt":"Motion[1]"}
/tellraw @a {"entity":"@e[type=tnt]","nbt":"Motion[2]"}

TNTロッコの場合はtnttnt_minecartに変えます。 これは/summon/dataでも同様です。

便利な小技

コマンド基本操作1

/キーを押したあとキーを押すことで過去に実行したコマンドを復元できます。 で未来のものに戻れます。

コマンド基本操作2

F3+Dで表示を全て消せます。

コマンドのログの場所

C:/Users/(ユーザー名)/AppData/Roaming/.minecraft/logs/latest.logがログです。 ゲームディレクトリを変えていれば、.minecraft以上のパスを変えてください。

latest.logには起動してから書かれたログがすべて載っています。 コマンドを大量に実行してチャット欄から見られなくなったときに使えます。 メモ帳で開くことができます。

MOD編

後半はMOD導入で使えるコマンドの紹介です。 CarpetというMODを導入します。 1.14.4から対応しています。 導入の仕方は各自で調べてください。

ブロック破壊を無効化

爆発によるブロック破壊を無効にします:

/carpet explosionNoBlockDamage true

ブロック破壊を有効にします(デフォルトに戻す):

/carpet explosionNoBlockDamage false

TNTの爆発座標を測定

簡易的に表示します:

/log explosions brief

※ここで表示されるy座標は爆発座標であることに注意してください。TNT自身の座標よりも0.06125 (= 0.98 / 16)高い値が表示されます。

※1.14.4にこのコマンドはありません。1.15.2以上で使えます。1.14.4では/log tnt briefを代わりに使ってください。

詳細に表示します:

/log explosions full

fullを指定すると他のエンティティに対して与えた速度を知ることができます。

表示を停止させるとき:

/log explosions clear

同一tickで爆発したとしても順番を揃えて表示してくれます。 ちなみに、バニラの状態で/data/tellrawを使ったとしても爆発するtickの座標は取得できません。バニラでは取得できない情報を取得できる有用なコマンドです。

TNT着火時のランダムな跳ねを無効化

TNT着火時の横方向の(ランダムな)速度ベクトルをゼロにします:

/carpet tntPrimerMomentumRemoved true

デフォルトに戻します:

/carpet tntPrimerMomentumRemoved false

ブロックをすり抜ける

クリエイティブモードで飛行中、ブロックをすり抜けられるようにします。 スペクテイターモードと同じ感じです。

/carpet creativeNoClip true

入り組んだ機構の内部に入り配線を組み直す場面で活躍します。

※1.14.4にこのコマンドはありません。1.15.2以上で使えます。

デフォルトに戻します:

/carpet creativeNoClip false

tick - 時間停止

時間停止・進行を切り替えます:

/tick freeze

tick - ステップ実行

/tick freezeで時間を止めているときに実行します。 以下は20gt進めるコマンドです:

/tick step 20

tick - 時速の変更

時間の流れの早さを変えます。 以下は1秒あたり2gt進めるコマンドです:

/tick rate 2

なお、以下のコマンドも併用すると良いです:

/carpet smoothClientAnimations true

ピストンやエンティティの描画がスムーズになります。

最後に

筆者がMinecraftに復帰する際にとても役立ったので、共有しました。 みなさんのTNTキャノン製作に役立てられたら嬉しいです。