マインクラフトでpythonプログラミングをするための5つのステップ

Pocket

みなさま、こんにちは。以前からやってみようと思っていて、なかなか手が出ていなかったもので、Minecraft でのプログラミングがあります。調査のために何度か触ってはいたのですが、もとがゲームなのもあり、ゲームの領域から脱出できないなあ、ということから、なかなか手が進んでませんでした。ただ、小学生には結構人気が高く、ご質問等もいただくこともあるので、ブログにて少しまとめてみたく思います。実際に本教室のコースに取り入れていくかどうかはまだ検討中なのですが、あくまでまずはやってみました、という観点でご覧下さい。

1.環境の準備

ステップ1 PC版のソフトの購入

 まずは環境を準備する必要があります。今回対象とするのは、PC版のマインクラフトです。PC版のマインクラフトは、販売されているもので下記のWebページから購入することが可能です。サポートされているプラットフォームは、Windows, Mac, Linux など、いろいろな環境に対応しています。また、こちらの方がご存知の方も多いでしょうが、PlayStation, Wii U, Xbox などのビデオゲーム機、iOS、Android などにも対応しています。また、Raspberry Pi 上でも動作するフリー版の Minecraft Pi というものもあります。ただ、今回対象とするプログラミングをする場合、PC版をご用意ください。Raspberry Pi版でもプログラミングは可能ですが、これは違う機会に解説いたします。

https://minecraft.net/ja/

Webサイトでクレジットカード支払をするとライセンスが取得でき、ログイン用のIDパスワードが入手できるはずです。購入が終わるとダウンロードできますので、指示に従ってインストールしてください。そして、とりあえず1回起動して動作することを確認してください。Javaを用いて作られているので、Java環境がインストールされていない場合は、Javaもインストールしてください。

ステップ2  Minecraft Forge のインストール

 製品そのままのMinecraftではプログラミング用の受け口はないのですが、拡張してあげることで対応することができます。拡張するモジュールのことを Modと呼んでいますが、このModをインストールしていく必要があります。このModを管理するためのソフトウェアが、Minecraft Forge です。Forge のインストールに関しての情報はいろいろな方がWebページにて紹介しております。

http://minecraft-diary.jp/blog-entry-1247.html

このForgeのrecommended をインストールしてください。私が確認したのは、1.7系のものなのですが、1.10などのバージョンにも次に示している Raspberry Jam Modは対応しているようなのでそちらでも良いかもしれません。

ステップ3  Raspberry Jam Mod のインストール

 Minecraft 1.8に対応した Raspberry Jam Mod という拡張モジュールをインストールします。下記のWebページからダウンロードしてください。

https://github.com/arpruss/raspberryjammod/releases

このページの中の、latest releases の mods.zipならびに、python-scripts.zipをダウンロードします。mods.zip の中にある該当するバージョンの jar ファイルを下記のディレクトリ以下におきます。

/Users/ユーザー名/Library/Application Support/minecraft/mods (Macの場合)
C:¥Users¥ユーザー名¥AppData¥Roaming¥.minecraft¥mods (Windows の場合)

ステップ4 再び起動してみる

 ファイルを置いた後に起動します。起動した時にProfileが Forge になっていることを確認し、play をクリックします。無事に起動できた場合、ボタンにModsというボタンが追加されています。これをクリックしてください。

Minecraft Launcher

すると、Minecraft Pi API というModsがインストールされているのが確認できるはずです。これがあればOKです。

Opening

Mods

ステップ5  Hello World

 伝統的なプログラミング学習の最初の一歩は、Hello Worldです。これは、どの言語や環境であっても、まずは Hello World という文字列を出力してみて動きを確認するというものです。Minecraft Pi API にも、当然おなじみのサンプルとして用意されています。先ほど、ダウンロードしていただいた、python-scripts.zip をどこか適切な場所で展開してください。すると、たくさんのサンプルファイルとライブラリ (mcpiディレクトリにあるファイル群)が出てくるはずです。サンプルファイルの中に helloworld.py というファイルがあるはずです。このファイルを見てみましょう。

  1. import mcpi.minecraft as minecraft
  2. import mcpi.block as block
  3. import server
  4. import sys
  5. mc = minecraft.Minecraft()
  6. mc.postToChat(\”Hello world!\”)
  7. playerPos = mc.player.getPos()
  8. mc.setBlock(playerPos.x,playerPos.y-1,playerPos.z,block.DIAMOND_ORE)

さて、いきなりソースコードを表示されても私は無理です、という方、多いかもしれません。Pythonの文法などを知らないとわからないのはごもっともですが、なんとなくわかっていただけるように、まずはどのような処理をしているか解説してみます。

1行目から4行目の記述は、ライブラリを読み込むための記述です。ライブラリとは、スクラッチの記事などでも少し触れていますが、あらかじめ用意してある機能などのことです。Pythonに限らず多くのプログラミング言語では、いろいろな人が使いやすいツールを作っており、それを利用することで一から自分で書かなくてもすぐにその機能が使えるようになっています。ただ、その機能は最初から使えるわけではなく、「今からこの機能を使うので、よろしく」とシステムに教えてあげる必要があります。それが、ライブラリの読み込みと思ってください。1行目と2行目は、先ほどダウンロードしていただいたマインクラフト用のライブラリ、3行目と4行目はpythonをインストールすると合わせてインストールされる標準的なライブラリです。今回の内容を試す上では、あまり詳しく知らなくても影響はないので詳しい説明は省略します。
 そして、5行目で、mc という変数に対して minecraft.Minecraft() を代入しています。これは、専門的に書くとminecraft というクラスがライブラリの中に定義されていて、そのクラスのインスタンスを呼び出したということなのですが、平たく言えば、Minecraft Pi のコマンドを使うための準備をした、ということです。この行以降で、mc という変数を使ってコマンドを使えば、Minecraft のソフトと通信をすることができます。
 次に、6行目が注目の Hello World を表示するためのコマンドを呼び出しています。postToChat というコマンドを使うと、“で囲まれている部分の文字をゲームの中で表示することができます。そして、7行目ではプレイヤの位置情報を取得しています。これは、詳しく書くと、minecraft というクラスの中に定義されている、プレイヤを表しているplayer というクラスがあり、player の中で定義されている getPos というコマンドを呼び出すと、その位置が取得できるというものです。playerPosという変数は、x、y、zという3つの座標値が含まれています。これを使って、8行目でプレイヤの場所からy-1 だけずれた場所に、ダイヤモンドのブロックを置くというコマンドを実行しています。Minecraft でいう座標軸の向きは、x方向、z方向が平面、y方向が高さ方向になります。そのため、y-1 にブロックを置くということはプレイヤの下にブロックが置かれます。

$ python helloworld.py

さあ、実際にコマンドラインで打ち込んでみましょう。コマンドを打ち込む前にはかならずゲームを開始した状態で、コマンドプロンプトで、該当するファイルを指定して pythonを起動してください。コマンドが実行されるとまち状態になるはずですので、その時にゲームに戻っていただければコマンドが実行されます。

Hello world

Hello world と表示されているのがわかると思います。

Diamonds

また、したにブロックとしてダイヤモンドのブロックが埋め込まれています。これが確認できれば成功です。

2. まとめ

 今回は、マインクラフトでpythonプログラミングをするための最初のステップについて紹介しました。Pythonをインストールしていないと最後のところは試せないので、本当はpythonをインストールするところを書くべきかもしれませんが、他で色々書かれているものを参考にインストールしてみていただければと思います。
 次回以降でもう少し実験的に試してみる予定です。お楽しみに。


東京都文京区小石川で小学生、中学生、高校生を対象としたプログラミング&ロボット教室を開校しています。コース概要のページで説明しております。創造性や協調性などこれからの時代に必要となる素養を育てるコースです。ご興味ありましたらぜひお問い合わせください。

お問い合わせはこちら!

問い合わせをする

Pocket

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この投稿へのトラックバック

  1. […] 実際は、過去の記事で解説しているpythonプログラムでマインクラフトを動作させるのが Minecraft Pi APIというmodですが、これはもともとは Minecraft Pi 用のpython インタフェースです。Scratch2MCP […]

トラックバック URL