見出し画像

MCreatorでMineCraft(マインクラフト)のModをプログラミングする入門。変数で最強のTNTを作る編

こんにちは、K研究員です。
この記事はSansanアドベントカレンダーの3日目として書いております。みんなアドカレって略すけど、なんかインカレみたいな、よくわからないけどなんか意識高い大学生感ある略し方じゃんって思いますね。

今回は、MCreatorというアプリでModを作るプログラミングをしていきますが、ブロックプログラミングなのでそんなに難しくなく作れます。
Modとはマインクラフトの拡張機能でヒカキンも動画にしたりしていますがご存じない方はこちらもご覧ください。


なお、時代はノー・コードらしいですが、これはプログラミングですので今日はイエス・コードです。

インストール

早速、MCreatorをインストールしていきます

こちらからダウンロードできます。

Downloadボタンを押します。ダウンロードされたら、ダブルクリックするとインストールされます。


起動しました。

ブロックを作ろう

早速ブロックを作っていきますが、まずはModの名前を決める必要があります。実はプログラミングとは名前を付けることとだいたい同義です。でもScratchとかはあんまり名前を付けなくても動きますね。MCreatorはバンバン名前を付けさせられます。本格派です。

ここではSaikyoModという名前にしましょう。

そうするとなんかこんな画面が出ます。ここで時間がかかるので終わるまで待ちます。10分ぐらいかかる気がします。


BUILD SUCCESSFULとい文字が出てダイアログが消えると準備完了です。

で、黒い画面が出てるけど何すればいいの??
安心してください。

WindowのShow workspace tabというのをクリックすると、左に緑の+マークが現れます。これをクリックします。

いろいろ作るものを選べるのでBlockをクリック。

また名前を入れる必要があるので好きな名前でいいですがここではSaikyoTNTにしましょう。

こういう、さいころの展開図みたいなのが出てくるので、どれか一つの四角をクリックします。ダイアログが出るのでCreateボタンを押します。

そうするとお絵描きできるので好きな絵を描きましょう。

こんなのでいいかな。目がちかちかするな。

右上のSaveボタンを押します。Saveボタン忘れがちになるので必ず押しましょう。

そうするとこんな感じに。これで外見は完了です。ブロックにいろいろなプロパティを設定できるんですが、今回はプログラミングに焦点を当てていきます。

プログラミングしよう


下にあるTriggersという文字をクリックします。

こんな画面になります。今回はブロックを壊した時の挙動をプログラミングしていきます。
なのでWhen block destroyed by playerを選んで緑の+マークをクリックします。

プログラミングの画面になりました。

本当にプログラミングできるか試してみましょう。ブロックを壊すとTNTを上に作るようにプログラミングしてみます。ここからがイエス・コードです。

Block managementのタブから一番上のPlaceを持ってきます。
Placeは置くという意味です。
x, y, zがはまっています。x, y, zの値は、壊されたブロックの座標が入っています。ちなみにマインクラフトの世界ではy方向が高さ方向です。

こんな感じでPlaceを置いて緑のブロックにくっつけます。そして置くブロックが最初空欄になっていますが、クリックしてTNTを選びます。

検索窓にtnと打つとすぐ出てきます。

Mathのタブから足し算をもってきて、ハマっているyを取り出して足し算に入れます。さらにMathのタブから0をもってきて1に書き換えます。y + 1になるので壊れたブロックの一個上にTNTがおかれることになります。

これをはめて完成。右上のSaveボタンを押します。


さらに右上のSaveを押します。

試してみよう

戻ってきたら右上の▶ボタンを見ます。最初はグレーになっているかもしれないので少し待って緑になったらクリックします。

マインクラフトが立ち上がります。

これ、マイクラ買わなくても遊べるんじゃ。。。。
いや、そんなはずないな。


CreativeモードにしてCreate New Worldします。

世界が開いたらインベントリをEキーで開いて、Search Itemsで先ほど決めた名前のブロックを探します。今回はSaikyoTNTなのでsaで見つかりました。


置ける置ける。

ブロックを壊すとTNTが!やったぜ!!

最強にしよう!

TNTを一個置くだけでは面白くないのでいっぱいおいてみましょう。
そのためには繰り返しが必要です。

repeat -- timesを Flow controlタブから持ってきます。

ここで重要な変数の登場です。変数iを入れます。右のLocal variablesというところに緑の+マークがありますね。これをクリックします。

ダイアログが出るので上にi、下はnumberにしてOKします。
numberにするのが重要です。numberは数ですので数値を表す変数になります。


iを作るとGet Local iというブロックがCustom variablesタブにできています。
では変数iと繰り返しを使って、20個のTNTを配置するプログラムを作りましょう。


こんな感じでrepeatの中にMathタブからとってきた0を入れて20に変えます。Placeは中に入れてしまいます。

次にi に1を入れるコードを作ります。
Custom variablesにあるSet Local i to ---をもってきて、Mathから持ってきた0を入れて1に変えます。

そして、yに+するのを1ではなく、Custom variablesタブから持ってきた Get Local iに変えます。

これだけではiはずっと1なので、iを+1するコードを書きます。
Set Local i to の中にGet Local i +1 を入れます。そうするとi+1をiにセットすることになり、iが1増えます。

これがrepeatにより20回繰り返されます。

実際見てみましょう。

先ほどと同様に保存して、▶マークからマインクラフトの画面を開きます。


帰ってきたな。

でも今回はブロックを壊すと??

じゃーん、TNTがうずたかく積まれました!これで成功です。

ちなみに変数はiに加えてjなどと増やしていけば2次元でブロックを置けます。
もっと大量に20×20でブロックを置くようにしてもいいですし、さらに置くときにレッドストーンブロックを置いたりして自動で起爆するようにしてもいいでしょう。

夢が広がりますね。今回はModをプログラミングしてみました。
それではまた。






無料のプログラミングクラブCoderDojoを運営するにあたり寄付を受け付けています。お金は会場費・Wifiの費用・教科書に使用します。