【Raspberry Pi】マインクラフト・パイとScratchを連携してプログラミングを学ぼう!

子どもから大人まで大人気のゲーム「マイクラ」は、Scratchと連携することで本格的なプログラミング教材になります。マイクラとスクラッチを連携する方法を紹介しています。

スクラッチとマイクラを連携してみよう

Raspberry Pi (ラズベリーパイ)には、ラズパイ専用に作られたマインクラフト・パイがインストールされています。PC版マイクラは有料で購入する必要がありますが、マインクラフト・パイは無料で遊べます。マインクラフト・パイで遊べるのは敵が出現しない「クリエイテブモード」です。プログラミングで建物の建設を自動化するのにピッタリの環境ですね。

準備するもの

  • ラズベリーパイ
  • ACアダプター
  • キーボード
  • マウス
  • モニター

ラズベリーパイの画像

スクラッチをアップデート

ラズパイのターミナルからScratch2をアップデートします。「LX Terminal」開いて、以下のコマンドを入力してEnterを押します。

$ sudo apt-get install scratch

スクラッチで日本語を設定

「ラズベリーのアイコン」→「プログラミング」→「Scratch2」をクリックしてみましょう。

ラズパイからScratch2を起動する画像

スクラッチの画面が開きますが、言語が英語になっています。言語を日本語に変更しましょう。画面左上の地球儀のアイコンをクリックして「日本語」を選択します。

ラズパイのScratch2の日本語設定の画像

ブロックの言語が日本語になりました!

ラズパイのScratch2の画面の画像

マインクラフト・パイを起動

マインクラフト・パイは、「ゲーム」→「Minecraft Pi」をクリックすると起動します。

マインクラフト・パイの起動の仕方の画像

「Start Game」をクリックします。

マインクラフト・パイのスタート画像

これでマイクラで遊べます!PC版マイクラのクリエイティブモードと同じようにプレイ出来ますよ。

マインクラフトパイの画面の画像

Scratch2MCPIをインストール

スクラッチ2とマインクラフト・パイを連携するソフトウエア、「Scratch2MCPI」をインストールします。「LX Terminal」に以下のコマンドを入力してEnterを押しましょう。

$ curl http://scratch2mcpi.github.io/install.sh | sh

縦棒はどうやって入力するの?

sh | sh

こちらの縦棒ですが、キーボードでどのように入力したら良いのか戸惑いますよね。こちらは、Shift を押しながら「¥」を押すと出てきますよ!

Scratch2MCPIのインストールが出来ない場合

Wi-Fiの接続状況を確認

もし、インストールできないときはネットに繋がっているか確認してみて下さい。Raspberry PI 3 model b+は無線LANでネットに接続できます。

Raspberry PI 3には無線LANが内蔵されていますが、なんらかの条件で無線LANが認識されない場合があります。そんなときは、無線LANのUSBアダプターを取り付けてみて下さい。筆者は、これで無線LANが使えるようになりました。(4日ほど原因が分からず悩みました)

有線でネットに接続

無線LANが使えないときは、LANケーブルでラズパイとルーターを繋ぐとネットに接続できます。

ラズベリーパイとLANケーブルの画像

Scratch2MCPIをインストールした後はLANケーブルを抜いて大丈夫です!

Scratch2×マインクラフト・パイ

移動する方法

プレイヤーの位置は、(mcpix,mcpiy,mcpiz)と変数ブロックを使って3つの座標で表されます。例えば、3つの変数を全て0にしてスタート🚩をクリックすると、マイクラの世界の(0,0,0)の位置にプレイヤーが移動します。最後の制御ブロック「setPos▼を送る」はScratch2のプログラムをマインクラフト・パイに送るときに使用するブロックです。

マインクラフトパイのコードの画像

整地する方法

これからプログラミングをするので、海や山・木などは邪魔ですよね!Scratch2でリセットをかけて整地しましょう。スタート🚩の下に制御の「reset▼を送る」ブロックを繋げてスタートをクリックします。マイクラの世界がリセットされました!「reset the world」というメッセージが表示されます。

マインクラフトパイ整地の画像

ブロックを置く方法

プレイヤーが居る位置と同じ場所にブロックが置かれます。ブロックを置くには、制御にある「setBlock▼を送る」ブロックを使います。どのブロックを置くかは、変数にはる「block Typed▼を()にする」ブロックを使います。マインクラフト・パイのブロックにはブロックIDが割り振られています。「block Typed▼を()にする」の()の数字でブロックの種類を指定します。

ブロックID「1」は、石ブロックになります!プレイヤーと同じ位置に石ブロックが1個置かれるので、キーボードの「s」でプレイヤーの位置を後ろにずらしたりマウスでプレイヤーの目線を変えると石ブロックが置かれたのを確認することが出来ます。

マインクラフトパイブロックを置くコードの画像

ブロックを10個積み上げるには?

ブロックを1個積み上げるのに「setBlock▼を送る」ブロックが1つ必要なので、ループを使って10回繰り返す命令を出します。「制御」にある「10回繰り返す」を追加しましょう。

マインクラフトパイブロックを置くコードの画像

スタート🚩をクリックすると、一瞬で塔が完成します!

他にも、ブロックで壁を作ったり、剣でブロックを壊したところに他のブロックを出現させるプログラムが日経BP社の「Raspberry Piではじめるどきどきプログラミング増補改訂第2版」で紹介されています。

マインクラフトパイ壁の画像

球体を作ってみた

Scratch2MCPIをインストールすると、スクラッチのサンプルプロジェクトに球体を作るプロジェクト(mcpi_sphere)が保存されます。スクリプトを実行すると、石ブロックで球体を作成し始めます。

サンプルプロジェクト「球体」の画像

難しいプログラムですが、一緒に見ていた娘が「ガラスブロックで作ったら綺麗じゃない?」と言うので実験してみました。「block Typed▼を1(石ブロック)にする」ブロックの数値を「57(ガラスブロック)」に変更して実行してみます。

サンプルプロジェクト「球体」のコードを改変した画像

おおお・・っっ!!

これは良いですね~^^

サンプルプロジェクト「球体」のコードを改変したGIF画像

小学生でもここまで作れる!

いつもwiiUでマイクラをしている息子(小4)が興味を持ったようで、マインクラフト・パイに挑戦してみました。去年からスクラッチでちょこちょこゲームを作ったりもしています。「ビルの建設を自動化したい!」と言って作成したプログラムがこちら。

マインクラフトパイビルの建設自動化のコード

屋根はありませんが、なかなか見事です!「屋根を作るプログラムも作ろう~」と楽しそうに遊んでいました。

マインクラフトパイビルの建設自動化のGIF画像

スクラッチでプログラミングするのとは違って、スプライトに大好きなマイクラのブロックを使えます。ラズパイで子どもにマインクラフト・パイをただ遊ばせるなんてもったいない!ぜひスクラッチと連携して、プログラミングの勉強をしてもらいましょう。 ( ̄m ̄* )

マインクラフトパイビルの建設自動化の画像

後日、床と天井も完成しました!

フォローしてくれたら嬉しいです(*’-‘*)ノ