こんにちは!たかしです!
突然ですが、皆さんは「TNTキャノン」、ご存知でしょうか?マインクラフトを長くやっている人は一度は聞いたことあるでしょう。
一度といわず2度も3度も聞いたことあるどころか、「作ったことある!」という人もいるはず。
今回はこの「TNTキャノン」をコマンドブロックを使って作成していきたいと思います!
TNTキャノン
そもそもTNTキャノンってなんだよ、という方向けに。
マインクラフトには「TNTブロック」というものがございます。
TNTとはトリニトロトルエンという爆薬のことを指しています。リアルではおそらく色々と調合が必要ですが、マイクラでは砂と火薬で作れるのです。なんてお手頃な。
こいつは着火剤で着火するか、レッドストーン動力を送ると起動して爆発します。MineでCraftするのに爆薬は必須。本来なら地下の採掘や整地に使うもの。
しかし悲しいかな、いつだって科学技術は軍事転用が成されるものです。
ダイナマイトもそうだった。マイクラでもそれは例外ではありません。
誰が考えたのかはわかりませんが、TNT爆薬の性質とマイクラの仕様を利用した「TNTキャノン」なるものが創作されるようになりました。
その超基本形がこちら。
おおよそ「砲」と呼ぶのもおこがましい外見ですが、れっきとした兵器です。仕組みは難しくありません。以下の3つの特性を理解していれば。
TNT火薬は着火すると「エンティティ」扱いになります。(エンティティについては後述。)マイクラ内ではエンティティは水流の影響を受け、流されます。
さらに、水に触れているTNTは爆発しても周囲のブロックを破壊しません。つまり爆風だけまき散らすイメージ。
そしてもう一点。エンティティは爆風を受けると吹っ飛びます。
この3点を利用したのがTNTキャノン。処理の流れはこんな感じになります。
これはレッドストーン回路を使用したもので、おそらく一番オーソドックスなもの。
これでも工夫次第で威力も上がるし改良もできます。サバイバルモードでも作れるしね。
しかし、いかんせん場所をとる。そして装填も少し手間。威力の増大もちょっと大変。
そんなお悩みを解決するために、当ブログの開発部はコマンドブロックを使ったTNTキャノンの開発に着手することにいたしました。
何を使おうかな
今回使うのはこちら(予定)
・コマンドブロック
今回の肝。これのためにやっているといっても過言ではない。使うコマンドは"summon"コマンド。
おなじみマイクラ内のエンティティを召喚できるコマンドです。
今回はTNTブロックとかその辺のエンティティを呼び出します。
・TNTブロック
言わずもがな。これがないと始まりません。
・TNT付きトロッコ
これはトロッコにTNTが乗ったもの。クラフト可。
こいつを使うのには理由がありますが、それは後述。
・他爆破耐性のあるブロック、各種材料
サバイバルで入手するなら黒曜石が一番ですが、コマンドブロックを使う関係上、今回はクリエイティブ。なので岩盤を使います。(黒曜石だとちょっと見づらいんすよ)
さて、なんせわが開発部も作成は初めて。先人たちの知恵(Google)を借りてもいいですが、それだと面白くない。
自力で何とか試行錯誤を重ねてやっていきたいと思います。材料も場合によっては追加するかも。
Summonコマンドについて
さて、先ほどSummonコマンドを使うといいました。
構文はこんな感じ。
summon エンティティ名 x, y, z(召喚地点の座標)[データタグ]
エンティティ名はそのまま召喚したいものの名前です。
直訳すると「物」とか「実体」になりますが、マイクラで言うエンティティとはざっくりいうと「動くもの」。
Mobはもちろん、防具立てや雪玉などのアイテム、雷なんかもエンティティ扱いになります。
このエンティティの名前と、呼び出す座標(x、y、z)を指定することで任意の場所にいろいろと召喚できるのです。
(ちなみに座標はF3キーを押すと確認できます。)
起爆時間の調節
さて、ここで少し問題が。
SummonコマンドでTNTを呼び出すと着火されたTNTが取得できますが、このままでは召喚直後に爆破してしまいます。
summon mionecraft:tnt X Y Z(任意の座標)
ということで、少しコマンドをいじります。先ほどの構文で後ろに引っ付いていた[データタグ]の箇所です。
summonの後ろに{Fuse : 80}と書き足してみましょう
そして起動すると、あら不思議。通常のTNTと同じ時間で爆破されるようになりました。
こちらは何をしているのかというと、起爆までの時間を設定してあげているのです。
単位は秒ではなく、「ティック」。
ティックとはマイクラ内時間の単位で、1tickでおよそ1/20秒。
つまり20tick=1秒
TNTの起爆速度は通常は4秒なので
20*4=80tick。
これをマイクラ式にコマンドで書くと{Fuse:80}となるわけです。
この記載を「データタグ」と呼びます。
データタグについて少し
データタグってなんだよ、という方向けにほんの少し、さわりだけ。
詳しくは別で一本記事にします。いつか。
(どうでもいいわ!という人は飛ばしてもOK。ぶっちゃけ知らんでもできる。)
マイクラ内のブロックだったりエンティティというのはすべからく何らかのデータを持っているわけです。
それは名前だったり、状態だったり色々あるのですが、それらのデータを弄るために必要なのがこのデータタグ。
書き方の基本形はこんな感じ。
{データタグ名:値}
今回はTNTブロックのFuseというデータを80に設定するよ、という意味合いです。
{Fuse:80}> Fuse の値を 80 にしてね! という意味
デフォルトだとこのFuseの値が”0”に設定されているため、召喚直後に爆発してしまったというワケ。
本編に行く前のまとめ
いかがでしたでしょうか?
例によって本編に行く前に終わりました。(ごめんなさい)余計な話しすぎたかな?
この記事ではざっくりと
・TNTキャノンてなんぞや?
・使う予定のコマンド(summon)について
を解説しました。
トライ & エラーでやっていくので、後からもしかしたら内容が変わっているかもしれませんが、差し当たっての材料等々を挙げた次第です。
分かりづらかったら申し訳ございません。その場合はカスタマーサービス、もとい当ブログのコメントにて、ご一報くださいませ。
次回のブログでは実際の作成に取り掛かれると考えていますので、どうかお付き合いください。