【マイクラ】コマンドブロックを使って足元がTNTになる世界を再現する方法を解説【Minecraft】
マインクラフト(マイクラ)を多くプレイしている人気Youtuberの企画に「足元がTNTに変わる世界」というものがあります。
歩いたところがTNTに変わり、なんらかの理由でTNTが起動すると大爆発が起こる危険な世界です。
この世界を作る方法は複数ありますが、この記事ではexecuteコマンドとコマンドブロックを使って、足元がTNTになる世界を再現する方法を解説します。
TNTが爆発する際に大きな負荷がかかります。ゲームがクラッシュしたり固まったりする可能性がありますので、ゲーム機やスマホ、低スペックPCでの実行はおすすめしません。
1)コマンドやコマンドブロックを使えるようにする
コマンドブロックを使うには、コマンドを使えるようにしておく必要があります。設定方法は以下の記事で解説しています。
コマンドブロックの入手方法や基本的な使い方は、以下の記事で解説しています。
2)足元をTNTに変えるコマンドブロックの設定
コマンド設定
コマンドブロックの画面を開き、以下のコマンドを入力してください。
コマンドブロックの種類は「リピート」、動力は「常時実行」としておきます。
※画面はJava版です。統合版とは入力欄やボタンの位置が異なりますが、同じように設定してください。
コマンド解説
executeはさまざまな使い方があるコマンドで、その後に続けるサブコマンドによって役割が変わります。
「execute at @p …」としたとき、「一番近くのプレイヤーに…する」となります。@aならすべてのプレイヤーが対象になります。@eならすべてのエンティティが対象となりますが、処理が重くなるためおすすめしません。
続く「run」もexecuteのサブコマンドのひとつで、「その後に続くコマンドを実行する」の意味です。
「setblock」は、ブロックを置き換えるコマンドです。座標と置き換えるブロックを指定します。
今回は「~ ~-1 ~」としているので、プレイヤーから見てX座標とZ座標は同じ、Y座標は-1、つまり足元をTNTに変えるという意味になります。
黒曜石など一部ブロックを対象外にするコマンド設定
前のコマンドで足元をTNTに変えることはできますが、このままではどんなブロックもTNTに変わってしまいます。それはそれで面白いのですが、水や空気まで変わってしまったり、ネザーゲートが作れなかったりといった不便さもあります。
そこで、一部のブロックをTNTに変わる対象から外すコマンドに書き換えます。今回は、「黒曜石」「エンドポータルフレーム」「岩盤」「水」「空気」「コマンドブロック(リピート)」は変わらないよう設定します。
先程のコマンドの@pとrunの間に、新たなコマンドを書き加えています。
「unless block (座標) (ブロックID)」もexecuteのサブコマンドで、「座標の位置にあるのが指定したブロックでなかった場合、run以下の処理を実行する」という意味になります。
この場合なら、「一番近くのプレイヤーの足元が黒曜石、エンドポータルフレーム、岩盤、水、空気、コマンドブロック(リピート)でなかったら、足元をTNTに変える」という意味になります。「unless block ~ ~-1 ~ obsidian」のブロックID部分を変えて繰り返し入力しています。
unlessの代わりに「if」を使えば、「~だったら」の指示になります。また、blockではなく「entity」「dimension」などを指定することもできます。
足元TNT世界の参考動画
【Java版】慣れたら関数にしてデータパック化がおすすめ
Java版では、今回紹介したような重い処理、長いコマンドは、関数(function)のテキストファイルを作成し、データパック化して読み込むことをおすすめします。
関数にしておけば、以下のようなメリットがあります。
- テキストファイルのため編集が簡単
- (コマンドブロックより)ラグが少ない
- 簡単に使いまわせる
一時的な遊びやテストならコマンドブロックで十分ですが、今後も使えそうだなと思ったらデータパック化を検討してみてください。
まとめ
今回は、executeコマンドとコマンドブロックを使って、足元をTNTにする世界を再現する方法を紹介しました。
少し変えるだけでもさまざまな遊び方ができますし、executeコマンド自体も紹介しきれていない機能がたくさんありますので、興味があったら勉強してみてください。
コマンドを使いこなす
主なコマンドの使い方や基本を解説しています。統合版・Java版共通
Java版限定
【attribute】 モブのパラメーターを変更 | 【spawnpoint】 リスポーン地点を設定 |
【tick】 時の流れをコントロール | 【rotate】 向きを変える |