今更ながら最近になりマインクラフトにハマってしまった。世界がブロックに感じるようになってしまうという中毒症状がでてる今日このごろ、minecraft をpythonで動かすことができるということで、色々調べました。
丁度この時期、クロスプラットフォームになったようで、マイクラ初心者にとっては、何がなんだか。
サーバーも立てれることができたり、MODやらSpigotやらいっぱい出てきて、混乱してましたが最近ようやくなんとなくわかってきた。
なので自分なりの整理
現在(2017/10/21)は、「マインクラフト(iOS版、Android版、Windows 10版、Gear VR版、Kindle Fire版、Fire TV版、Apple TV版)、いわるゆ bedrock Edition?」と「マインクラフト Java Edition」、それからソニー系のプレステにある「マインクラフト」の3種類ぽい。
知人がやってて、自分もハマったのはプレステ版
pythonを使うことができるのは、マインクラフト Java Edition、あとpythonの使い方次第*1ではPC上で使うマインクラフトBedrockEdition。
マインクラフト Java Editionを買うと、マインクラフト BedrockEditionのwindows10版が無料で手に入るので、PCで使う場合は、JavaEditionを買っとくとお得。
マインクラフト Java Editionは、ノーマルなバージョンとMODという拡張機能を使えるバージョンがある。これは、いろんな人達が作ったMODを使うことで、様々な機能を組み込むことができる。MODを導入するにはMinecraftForgeが必要。
自分でサーバーを立てたい場合は、ノーマルなバージョンは公式サイトからサーバー用をダウンロードする。
自分のサーバーにMODなどの機能をつけるには、Bukkit、あるいは派生版のSpigotを使用する。
pythonを使用できるのは、もともとラズベリーパイ用だったようで、それを利用するみたい。
mcpipyとRaspberryJamModを使うことで、MinecraftForgeを導入したJavaEdtionでも使えるようになる。
自サーバー用(Spigot)では、pluginsにraspberryjuiceを入れ、mcpipyも使うことで機能するようになる。
op権限を自キャラに渡し、コードを実行すると動作する。
上記がわかった上で、導入方法をググればスムーズかなと思います。
Minecraft Building Plannerというソフトがあり、これで設計ができる。一層ごとのブロック位置をPDF形式でも出力されるし、ビューワで実際の感じもわかる優れもの。
ファイルフォーマットもxmlのため、pythonを介せばマインクラフト上にビルドすることが可能。
ただ、本来の自分でコツコツ作る楽しみはだいぶ薄れる。。。サーバー運営するときには、予め作っておくことができるので便利ですね。他にもっと運営者用に良い方法があるのかもしれませんが。。。。

図1 Minecraft Building Planner
今回のコードはminecraft Java Edition, Spigot, raspberryjuiceで動作確認しました。

図2 今回のコード実行結果(色付き羊毛を並べる)
Anaconda 3, python 3.6 64bit
minecraft 1.12.2 Java Edition, Spigot, raspberryjuice
Windows 10 64bit
Bedrock Editionの場合
*1 pythonのキー入力を自動化するモジュールをインポートして、chatのコマンドを1行づつ自動入力するという、だいぶ気長なプログラムで対応。(そういう方法しか思い浮かばなかった。)
追記10/26
Education版ではなくBedrock EditionにMakeCodeが対応したみたいです。
Microsoft、「MakeCode for Minecraft」を発表 ~マイクラで遊びながら楽しく学習
これでJava scriptでコードできるので便利ですね。(ここのブログはpythonのメモなので割愛します。)
LINK
Minecraft Building Planner
参考書


