2016.11.30Minecraftでプログラミング
マインクラフトとスクラッチをつないでプログラミング
みなさま、こんにちは。
今回は、Raspberry Pi を使ってマインクラフトとスクラッチをつないでプログラミングをしてみます。Raspberry Pi には Minecraft Pi Edition という Raspberry Pi 専用のマインクラフトが最初からインストールされています。このマインクラフトは、単体ではクリエイティブモードで遊べるようになっていますが、今回はプログラミングということで、スクラッチとつなげてみます。すでにRaspberry Pi の環境設定が終わり、ネットワークなども使える状態からの解説になります。環境設定等に関しては、ほかのサイトで紹介されている内容をご確認ください。
1. Scratch2MCPIのインストール
まずは、ツールのインストールを行います。
コマンドを打ち込むためにコマンドプロンプトを立ち上げます。そして、次に示すコマンドを入力してエンタを押してください。
curl http://scratch2mcpi.github.io/install.sh | sh
ちなみに、”curl” はコマンドラインでURL を指定して、指定したURLにあるファイルを取得するコマンドです。”|” はその取得したファイルをそのまま次に続くコマンドに渡す役割をします。そして、”sh” はコマンドを動作させているシェル(shell)という環境を立ち上げてファイルの中に書かれているコマンドを実行することを意味しています。取得した install.sh の中には、必要となるバイナリや設定などをするためのコマンドが書かれています。
動作させてみると図の左にあるように、文字が表示されますが、最後のところに “Installation of scratch2mcpi is completed.” と表示されていれば成功です。成功すると図の右にある様に scratch2mcpi のアイコンが表示されています。
2.起動してみよう
さあ、インストールが終わったら起動してみましょう。
まずは、メニューにあるゲームのところから Minecraft Pi を選択します。すると図の右にあるようにマインクラフトが起動されます。
すでに遊んでいて世界が作られているのであれば、それを選んでいただいていいのですが、そうでない場合は、新しい世界を作りましょう。”Create new” というボタンが新しい世界を作るボタンです。右のように世界ができるはずです。その後、インストールした scratch2mcpi を起動してください。アイコンをダブルクリックすると起動するはずです。
3.Hello World
起動すると図の左のような画面が表示されるはずです。ここで、初期のファイルの書かれているのがテンプレートになります。このテンプレートには、hello_world のプログラムが書かれている状態ですので、まずはこれを動かしてみましょう。緑のはたをクリックすると、右の図のようにメッセージが表示されます。これは、スクラッチからメッセージを送り、マインクラフト側に表示しています。
実際は、過去の記事で解説しているpythonプログラムでマインクラフトを動作させるのが Minecraft Pi APIというmodですが、これはもともとは Minecraft Pi 用のpython インタフェースです。Scratch2MCPIはこのインタフェースを利用してスクラッチからのメッセージをマインクラフトに送っています。
4. 瞬間移動
試しにプレイヤを移動させるプログラムを書いてみましょう。これは、図の左にあるように2つのコマンドを使って行います。getPos コマンドは、プレイヤの現在地の座標を取得するコマンドです。取得したデータは、「調べる」のところにあるセンサーの値で playerX、playerY, playerZ にあります。これらの値をmcpiX, mcpiY, mcpiZ に書き込んでいます。これらの変数は、次に続くsetPos というコマンドに与えるパラメタです。setPosはプレイヤの現在位置を変更するコマンドです。mcpiX, mcpiY, mcpiZ にかかれている座標に移動します。プログラムの例では、Yだけ100足しています。そのため、このプログラムを動かすと突然プレイヤが空に瞬間移動し、しばらくすると落ちます。
5. ブロックを置く
次はブロックを置いてみましょう。
先ほどと同じように getPos でプレイヤの現在地を取り、それらの値を使って mcpiX, mcpiY, mcpiZ を設定します。ここでは、Xに1足していますのでプレイヤの隣にブロックが置かれるはずです。blockTypeId を1としていますが、これは別の記事で書いているブロックを置く際のパラメタです。プログラムを動作させると右の図のようにブロックが出てくるはずです。これでプログラムができることがわかっていただけたでしょうか。
6. まとめ
今回は、Minecraft Pi という Raspberry Pi 用のマインクラフトを使って、スクラッチと連動させる方法について述べました。python プログラムはちょっとハードルが高いと感じている方でも、スクラッチであれば比較的容易に入っていけるのではないでしょうか。
Raspberry Pi を入手するのも一つのハードルかと思いますが、私どもではワークショップなども行っていますので、このような機会を利用いただくのも一つの考え方です。ワークショップの中で環境設定からすべて終わった Raspberry Pi をお持ち帰りいただけます。ご自分で設定する必要がなく、実習で今日紹介したような内容も確認できます。ご興味がある方はこちらのワークショップのページを御覧ください。
東京都文京区小石川で小学生、中学生、高校生を対象としたプログラミング&ロボット教室を開校しています。コース概要のページで説明しております。創造性や協調性などこれからの時代に必要となる素養を育てるコースです。ご興味ありましたらぜひお問い合わせください。また、ワークショップも定期的に開催しています。こちらのワークショップのページにて内容をご確認ください。