【マイクラ】プログラミングで一瞬で豆腐建築をする!【メイクコード】
今回の内容
おすすめ記事
「豆腐建築」プログラムを作る

やっほー 春日部つむぎだよ

なのなのだ ずんだもんなのだ

つむぎおねーちゃん、簡単に家を作るようプログラムを作りたいんだけど何かいい方法はないのだ?

手が込むと複雑になっちゃうから、四角い形で中身をくり抜いただけの「豆腐建築」っていうのならそんなに難しくないと思うよ!

だったらチャレンジしてみたいのだ!

それなら今回は「豆腐建築」プログラムを勉強して建物を作ってみよう!

それじゃあ『マイクラ』と『メイクコード』を準備してプログラミングを始めよう!
- 『MineCraft(マインクラフト)』はMicrosoftが提供しているサンドボックスゲームです。プレイヤーはブロックを積み上げて建物を作り上げたり、広い世界を冒険してモンスターと戦うことができます。メイクコードを使ってプログラミングをするためには統合版が必要です。
- 『MakeCode(メイクコード)』はMicrosoftが提供するオープンソースのプログラミング学習プラットフォームです。ブロックを使ったビジュアルコーディングとJavaScriptによるテキストコーディングの2種類のエディタを切り替えながら、プログラミングできます。
準備をしよう

まずは『マイクラ』の方で準備をするんだけど、今回は「2種類の目印」を置くね

2種類なのだ?

1つは壁とか床なんかを作る「家の外側用の目印」、もう1つは「家の中を空っぽにするための目印」だよ

外?中?…。 言葉だけだとわかりづらいから実際に置いていきながら確認するのだ!
作る形と座標の関係について復習しましょう。
- 立体的なもの(【マイクラ】立体の建物を作ってみよう【プログラミング】)
→ 「縦の長さ、横の長さ、高さ」の3つの要素が必要
- 面(【マイクラ】好きなブロックを並べて床を作ってみよう【プログラミング】)
→ 「縦の長さ、横の長さ、高さ」の内の2つの要素が必要
- ブロック1つ(点)(【マイクラ】好きなブロックを好きな場所に置いてみよう【プログラミング】)
→ 「その場所を示す座標」が1つ必要
縦の長さ・横の長さはx座標・z座標(どちらが縦か横かはプレイヤーの向きによります)、高さはy座標に対応しています。
「家の外側用の目印」を置こう

まずは外側用の目印だね。 自分が立っている場所が[-57,-61,87]と[-72,-50,103]の座標になるようにブロックを置いてみて
座標とはプレイヤーの場所を表すもの(足元の場所)です
『マインクラフト』では座標はx座標(東西)、y座標(高さ)、z座標(南北)の3つがあり、[x,y,z]の順番で表示されています。
「-」記号のついた数字は、ついていない数字の反対方向になる場所と覚えておきましょう!

今回は2種類の目印を置く予定だから、外側用は《赤のステンドグラス》を目印にするのだ



[-57,-61,87]と[-72,-50,103]になるように置けたのだ。 でも、[-57,-61,87]の目印が地面の下の方にあるけど大丈夫なのだ?

良く気付いたね! 今回は床を作るからそこに目印を置いたんだ!

そういうことだったのだね! 大丈夫ってことも分かったし次は中側用の目印を置いていくのだ
「家の中側用の目印」を置こう

そしたら、次は中を空っぽにするための目印を置こうか

わかったのだ! …って、中を空っぽにするっていうのはどういうことなのだ?

それじゃあその説明をするね。 まずはこの画像を見て!

ずんだもんはこの画像の中に何のブロックが置かれているかわかるかな?


簡単なのだ! 草ブロックが地面いっぱいにあるだけなのだ!

大正解! …っていいたいところだけど、実はこの画面にはあともう1種類のブロックが置かれているんだ!

えぇ?! そんなの見えないのだ!!!

そう、プレイヤーには見えない《空気ブロック》っていうのが置かれているんだ!
《空気ブロック》とは、ブロックのない空間に存在する目に見えないブロックのことです。
《空気ブロック》で置き換えた場所は何もない状態になります。

そんなブロックがあったのだね。 《空気ブロック》、しっかり覚えたのだ!

それで、今回はブロックを並べた後でその中に《空気ブロック》を並べて空っぽにするのだね

そういうことだよ! ここまでわかったら残りの目印を置こう!

置く場所はさっき置いた目印の内側にそれぞれ座標を1つ移動させた位置だよ。 座標で表すなら[-58,-60,88]と[-71,-51,102]が足元に来るように置いてね

そしたら、《空気ブロック》を並べるための目印には《青のステンドグラス》を使うのだ

足元が[-58,-60,88]と[-71,-51,102]になるように《青のステンドグラス》を置けたのだ




これで2種類の目印が置き終わったから、準備完了!

あとは『メイクコード』に切り替えてプログラミングを始めていこう!
プログラミングをはじめよう
コードを準備しよう

それじゃあコードを準備していくね。今回は【《アイテム》が使われた時】【《ブロック》を並べる】【ワールド[0,0,0]】を使うから準備しておいてね

コードは画面左にある項目のように分かれています。今回必要となるブロックと対応する項目は以下の通りです。
- プレイヤー ⇨ 【《アイテム》が使われた時】
- ブロック ⇨ 【《ブロック》を並べる】
- ポジション ⇨ 【ワールド[0,0,0]】

準備ができたからプログラミングを始めるのだ
コードを組み合わせていこう
メイクコードでは以下のようにブロックを組み合わせてプログラミングしていきます。
- 凹凸のついたブロックは組み合わせられます
- 入力・選択部分が丸い形やをしているものは同じ形のコードをはめ込めます
凹凸の付いたブロックを組み合わて作る大まかな動きと入力・選択欄を変更して詳細な動きを設定していくのが、プログラミングの基本となります。

まずは【ワールド[0,0,0]】コードと【《ブロック》を並べる】コードを組み合わせるんだけど、【《ブロック》を並べる】には座標の部分が2箇所あるよね

だから【ワールド[0,0,0]】を複製で1つ増やして、2か所にはめ込めるようにしておくよ!
普通の座標指定([~0,~0,~0]表記)では自分が今いる位置が基準になり、ワールド座標指定([0,0,0]表記)ではそのワールドの座標が基準になるという違いがあります

複製は複製したいコードの上でマウスを右クリックしてメニューを開き、「複製する」を左クリックでできるのだ


まずは《赤のステンドグラス》の1つめの座標[-57,-61,87]を入力するのだ


次に、2つ目の座標[-72,-50,103]を入力してっと…


あとは【《ブロック》を並べる】の始まりの範囲と終わりの範囲に今作った【ワールド[0,0,0]】をそれぞれはめ込めばOK!


これで家の外側を作るプログラムができたから、次は中を《空気ブロック》にするプログラムだね

今作ったプログラムを複製して、今度は《青のステンドグラス》の2つの座標を入力するのだ!

1つめの座標は[-58,-60,88]、2つ目の座標は[-71,-51,102]なのだ



ちなみに、中側用の座標は外側用の座標をコピーしてそれをすべて内側に向けて移動させるイメージで覚えておくと確認しなくてもきれいに置くことができるよ!


ここまで出来たら2つのプログラムを【《アイテム》が使われた時】と組み合わせるんだけど、順番に気を付けてね!

プログラムは上から順番に動くから、「外側 → 内側」の順番で組み合わせよう!

わかったのだ。 組み合わせるにはコードを掴んで持っていくのだ


ちなみに、組み合わせる順番を逆にしちゃうとどうなるのだ?

今回のプログラムなら、空気化された場所にブロックが並べられるだけになっちゃうから、ただブロックを並べているのと同じになるんだ!

順番が少しでもずれると結果が多きく変わってしまうのだね…。 これからも気を付けていくのだ!

最後に、「どのアイテムを使って動作させるか」と「ブロックの種類」を決めよう
動かす条件を変更しよう

僕は《りんご》を右クリックで使った時に《トウヒの木材》を置くようにするのだ

中側用のプログラムは《空気ブロック》にするのを忘れないようにね!

アイテムやブロックの種類は、アイコンが描いてある場所を押すと変えることができるよ。 みんなも好きなものを選んでね。


これで完成なのだ!

それじゃあ実際にプログラムを動かしてみよう!

動かすには右下のスタートボタンを押して、ボタンの色が緑色から赤色になったら準備完了!


あとは『マイクラ』でプログラムを動かすために決めた条件の行動をすればOK!

動かす前にはプログラムが合っているか最終確認しておくのだ!
プログラムを動かそう!

《りんご》を右クリックで使ってプログラムを動かしてみるのだ

「目印を置いた範囲に《トウヒの木材》の豆腐建築ができた」なら今回の目標は達成だね!


大丈夫だったのだ!
さいごに

おつかれさま! 今回は「豆腐建築」プログラムを覚えたね!
- 《空気ブロック》の使い方を覚えておこう!
- 中を空っぽにする方法を覚えておこう!
- 【《ブロック》を並べる】の動き方を覚えておこう!

これで手作業でブロックを置かずに済むから、家を作るのが楽になったのだ!

形はシンプルだけど組み合わせ方次第でかっこいい家も作れるから、いろんな大きさでいっぱい作って練習してみてね!

最後に練習問題を用意してみたから、よかったら挑戦してみてね!
プログラムを変更してみよう!
問題1

外壁の分厚さを2ブロック分にしてみよう!

《空気ブロック》で置き換える範囲を「大きくする」のか「小さくする」のかを考えてみよう!
問題2

家の大きさを「x方向のブロック5個 × z方向のブロック5個 × y方向のブロック6個」にしてみよう!

《空気ブロック》で置き換える範囲も変更が必要なことに気を付けよう!
問題3

アイテムを使うと「今回学んだ家」と「その上に違う大きさの家」の計2つを作る2階建て建築プログラムを作ってみよう!
2階を作る時のはじまりの座標を考えてみよう!
