この記事では、Minecraft Java Edition(バージョン1.18.1)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
地形を破壊されたくないマインクラフター
「クリーパーとかが爆発した時に、地形が破壊されないようにしたんだけど、そんな事ってできる? TNTとかにも対応していたら嬉しいな」
こんな疑問を解決します!
- クリーパーによる地形破壊を無効にする
- TNTの破壊対策には別のコマンドが必要
こんにちは! マインクラフターのなつめ(@natsume_717b)です。
マイクラ歴は5年程で、最近は脱出マップを配布・制作しています!
→配布マップ・ダウンロードページ
この記事では、地形の破壊を対策する方法について解説。
具体的には、クリーパーの爆発とTNTの爆発に焦点を当ててお話しています。
PVPなどを制作しようとすると、爆発は派手で楽しいのですが地形が破壊されてしまうと都度直す必要が出てきます。
そんなことは面倒極まりないので、破壊できないように設定してしまおうということですね。
さっそく見ていきましょう!
クリーパーによる地形破壊を無効にする
gameruleコマンドを使うことで、クリーパーの爆発による破壊を無効にすることができます。
具体的には、gameruleコマンドのmobGriefingをfalseに設定することで、mobなどによる地形の変化を無効にすることが可能となっています。
なので、エンダーマンがブロックを持っていってしまうことやガストの攻撃による損壊、スノーゴーレムが歩いた場所が雪のカーペットが敷かれる、なんてことも無くなります。
実際に打ち込むコマンドは以下の通りです。
/gamerule mobGriefing false
1度実行してしまえば、そのワールドはmobによる地形の変化が起きなくなるので、リピートする必要などはありません。
もし元々のようにmobによる地形の変更を許可したい場合には、再度上記のコマンドをmobGriefingまで打ちこみ、文末のfalseをtrueに変更して実行すればOKです。
TNTの破壊対策には別のコマンドが必要
クリーパーによる破壊は防ぐことができましたが、mobGriefingはTNTの破壊を無効にすることはできません。
なので、TNTの破壊に対しては別のコマンドが必要です。
そこで使用するのが、killコマンドになります。
killコマンドはプレイヤーを倒すために使用するので、比較的有名だと思いますが、プレイヤー以外にもエンティティをキルすることも可能です。
エンティティとは、プレイヤーを含めたmobや防具立てなどといった、ブロックではないものが当てはまると考えれば基本的にOKです。
着火されていない状態のTNTはただのブロックですが、着火されると「着火されたTNT」としてエンティティ扱いになります。
つまり、killコマンドでキルすることが可能になるということですね。
以下のコマンドをリピートコマンドブロックに入力し、無条件、常時実行にしておけば、TNTに着火された瞬間にそのTNTを消すことが可能となります。
kill @e[type=minecraft:tnt]
ただし、この方法のデメリットとして爆発する前にTNTを消してしまうことが挙げられます。
それなのにこの方法を紹介したのは、これ以外にTNTの爆発を防ぐ簡単な方法がないためです。
要するにTNTの爆発による破壊を無効にするコマンドが存在しないということになります。
もし、どうしてもTNTを爆発させているように見せつつ地形を破壊させたくない場合は、透明化のエフェクトを得ているクリーパーを利用するのが楽です。
全体的なクオリティが下がったり複雑なコマンドを組む必要があるものの、先述したmobGriefingと合わせてTNTの位置に透明なクリーパーを呼ぶ事で、爆発を起こしつつも地形は破壊されずに済みます。
透明なクリーパーを召喚するコマンドはこちら。
/summon minecraft:creeper ~ ~ ~ {ActiveEffects:[{Id:14,Amplifier:0,Duration:2147483647,ShowParticles:0b}]}
というわけで、TNTの爆発を無効することができないので、爆発する前にキルする方法がおすすめです。
まとめ
というわけで、今回のまとめです。
今回使ったコマンドはこちら。
- mobによる地形変化を無効にするコマンド
/gamerule mobGriefing false
- 着火されたTNTを消すコマンド
(リピート、無条件、常時実行)
kill @e[type=minecraft:tnt]
- 透明なクリーパーを召喚するコマンド
/summon minecraft:creeper ~ ~ ~ {ActiveEffects:[{Id:14,Amplifier:0,Duration:2147483647,ShowParticles:0b}]}
- mobGriefingはmobによる地形の変更を設定することができます。
- TNTの爆発を無効にするコマンドは存在していません。
この記事は以上になります。