読者です 読者をやめる 読者になる 読者になる

Raspberry Π

Raspberry Piでいろんなことをやってみようというブログです。

mincraft

第2回 マインクラフト内のチャットにプログラムからメッセージを送る

機能追加

第1回で説明したとおり、今回から数回に分けて、ラズパイとマイクラの連携をメモしていこうと思います。
今回はプログラムを実行してマインクラフトのチャット枠にメッセージを表示させようと思います。

f:id:taka230035:20161027222855p:plain:w300


マイクラについては第1回を参照してください。
*1

rasp0035.hatenablog.com


マイクラムック本の一部流用もありますが、そのまま公開はしないのでご了承ください。
※ムック本では、マインクラフトで宝探しゲームみたいなものを作ってたり、技術面だと、マイクラ連携プログラムをGit管理する方法など記載されていますので、気になる方は購入ください。

該当するラズパイムック本のレビューは以下の記事となります。

rasp0035.hatenablog.com





マインクラフトの起動

まずは、マインクラフトの起動手順です。

ディスプレイ上のラズパイのメニュー画面より
"メニュー" →"ゲーム" →"Minecraft Pi"を選択してください。
※文字化けスミマセン。
f:id:taka230035:20161027222621p:plain:w200

するとマインクラフトが起動します。
f:id:taka230035:20161027222855p:plain:w200
マインクラフトの操作方法はムック本にも記載されており、ここでは省略いたしますが、PC版と同じだと思います。
f:id:taka230035:20161027222801p:plain:w200




メッセージ送信用プログラムの作成

本題のラズパイからマインクラフトにメッセージを送ります。

コンソールよりプログラムを実行することで、マインクラフト内のチャット枠にメッセージを送ろうというものです。

メッセージが送れることで特にメリットは思い浮かばないのですが、
ラズパイ ✕ マイクラ連携の手始めとしては良いかなと思いました。

プログラムはpython言語にて記載します。

まず、ラズパイ上にてファイルを作成します。
ファイル名は適切に
mine01.py
としました。
ファイルの置き場所は特に指定はありません。


pythonについては、マインクラフトはpython2作られているようですので、同じくpython2を使用します。

ファイルに記載するコードは以下としました。
※インデントに全角空白を使っているので気をつけてください。
※特殊記号文字も使っているのでエラーになる可能性があります。

#!/usr/bin/env python

# -*- coding: utf-8 -*- # 文字コード

from mcpi import minecraft #①

def main(): # 初期設定
  mc = minecraft.Minecraft.create() #②
  mc.postToChat("Minecraft") #③

if __name__ == "__main__": # この辺はおまじない
  main()



上記で準備は完了です。




メッセージを送るプログラムの実行

まず、ラズパイにてマインクラフトを起動しておきます。
その後、ラズパイのターミナルより、

$ python mine01.py


と実行します。
そうすれば、マインクラフトのチャット画面にメッセージが表示されます。
コード上の③で設定した文字が表示されます。

f:id:taka230035:20161027223723p:plain:w200



解説

コードの解説をしたいと思います。 作成したmine01.pyのコードの
①については
minecraftプログラムを読み込むものとなります。

②については
ラズパイ上で実行しているマインクラフトを認識するプログラムです。

③については
メッセージの設定で、ここで記載したメッセージがマイクラ上に表示されます。


あとはほとんどおまじない部分となります。
解説は以上です。

今回は以上で、次回はプログラムでブロックを置いてみます。



*1:もともと今回記載していた一部の文章を第1回に移行しております。