Minecraft Programming Python

【Minecraft】Python制御の始まり〜!!

さ、前回「Raspberry Jam Mod」を入れてMinecraftでPythonでの制御を出来るようにしました。今回はPythonがちゃんと使えるか確認します。

確認方法はMinecraftのチャットを使って指定したメッセージが表示出来るかやってみましょう。

では、Minecraftをたちあげて「t」を押すとチャットウィンドウが出ますので、そこで以下のようにPythonのプログラムを読み込みます。

「/python helloworld.py」↩️

すると画面下のチャット画面に「Hello World」と表示されました。

そして真下のブロックがダイヤモンド鉱石(DIAMOND_ORE)になりました。

これは、前回PCのForgeのversionフォルダに格納した「mcpipy」ファイルの中のPythonのプログラム(helloworld.py)を読み込んで動作させた結果です。

helloworld.pyの中身(プログラム)はこんな感じです。

プログラムをみてみましょう。

1行目:import mcpi.minecraft as minecraft
ここではいろいろな機能を提供する「モジュール」をimportを使って読み込みます。
mcpiというライブラリにあるminecraftのモジュールを読み込みます。
で、「as」はmcpiというライブラリにあるminecraftのモジュールを別名「minecraft」でインポート出来るようにします。
別の書き方をすると下のようになります。
from mcpi  import minecraft
mcpiというライブラリにあるminecraftのモジュールを読み込む意味になります。
Forgeのフォルダの中身を確認するとこんな感じです。minecraftのモジュールがありますね。
2行目:import mcpi.block as block
↑mcpiというライブラリにあるblockのモジュールをasで別名「block」で読み込む意味になります。
この「block」モジュールにはblockの様々な種類、blockIDが記載されてます。
例えば「block.py」の中身はこんな感じでIDが記載されてます。
3行目:import server
↑serverモジュールはプログラムをローカルマシンかネットワーク上の別のマシンで実行するか等選択ができるようですが、ここではあまり関係ない気がします。
4行目:import sys
↑sysモジュールは標準ライブラリで、システムに関する処理(システムパラメータと関数)が含まれています。
5行目:mc = minecraft.Minecraft()
↑変数mcにminecraftモジュールの中にあるMinecraft()メソッド(関数)を代入
これでPythonとMinecraftが接続されます。
6行目:mc.postToChat("Hello world!")
↑ここの「"」で囲まれた文字が画面に表示されます。
7行目:playerPos = mc.player.getPos()
 ↑プレイヤーの現在位置(X,Y,Z座標)をgetpos()で取得しplayerPosに格納
8行目:mc.setBlock(playerPos.x,playerPos.y-1,playerPos.z,block.DIAMOND_ORE)
↑プレーヤーの現在位置(playerPosに格納された座標)からY軸のマイナス1のところ、つまりプレイヤーの下にダイアモンド鉱石をsetBlockで1つ設置。XとY軸は変更なし。
というようなプログラムの意味になります。
ということでこれでPythonをつかってMinecraftで遊べる環境が整いました。

hecaton'sの人気記事ランキング

多くの方が当サイトに訪問いただきますが、その中でも特に人気の記事をランキング!!

-Minecraft, Programming, Python