マイクラでプログラミング(Scratch成功編)

Scrach2.0とマイクラが連携できたので、1.4でも再挑戦してみる。

結論から言うと、Python3系で挑戦していたため、色々とややこしい話になっていたようだ。でも今回は、そのややこしい問題を解決したので、説明しながら進めていこう。

まず、次のページから1.4をインストール。

https://scratch.mit.edu/scratch_1.4/

インストールしたら起動して次からダウンロードしたサンプルプロジェクトをダウンロードして開いてみる。

「遠隔センサーが有効になりました。」と表示されればScratch側の準備はOKでしょう。

ただ、Windowsのファイヤウォールが何か聞いてくるかもしれません。

続いてScratch2MCPIをインストールする。

http://scratch2mcpi.github.io/

ここではcurlという仕組みを使ってインストールする方法が書かれている。が、Windowsなので、今回は手動で入れていく。

まずはscratch2mcpiのzipファイルをダウンロード。

https://github.com/scratch2mcpi/scratch2mcpi/archive/master.zip

解凍してできたscratch2mcpi-masterフォルダを、scratch2mcpiに改名。

このフォルダ内に、色々入れていきますが、このフォルダ自体はどこにあってもOK。そして、フォルダには色々入っているが、必要なのscratch2mcpi.pyだけなので、その他は削除しちゃう。

そして、Python3でも動くように、scratch2mcpi.pyに以下の変更を加える。

print _”~” → print(“~”)

次のフォルダをscratch2mcpiフォルダ内にコピー。

D:\Users\[ユーザ名]\AppData\Roaming\.minecraft\mcpipy\mcpi

次にMinecraft Graphics Turtleをインストール。

次のzipファイルをダウンロード。

https://github.com/scratch2mcpi/minecraft-turtle/archive/master.zip

解凍してできたminecraft-turtle-masterフォルダを、mcturtleに改名。

mcturtleフォルダを先ほどのscratch2mcpiフォルダ内にコピー。

Python3に対応させるために、minecraftturtle.pyのprint文も同じく修正。

次にMinecraft Stuffをインストール。

次のzipファイルをダウンロード。

https://github.com/scratch2mcpi/minecraft-stuff/archive/master.zip

解凍してできたminecraft-stuff-masterフォルダを、mcstuffに改名。

mcstuffフォルダを同じくscratch2mcpiフォルダ内にコピー。

次のzipファイルをダウンロード。

https://github.com/pilliq/scratchpy/archive/master.zip

解凍してできたscratchpy-master/scratchフォルダ内のscratch.pyを、同じくscratch2mcpiフォルダ内にコピー。

さて、このscratch.pyにも細工が必要。byte列とstring型の扱いがPython2とPython3で異なるため、考えながら修正。

例外のエラー番号、文字列なども仕様が変わっている。

で、最終的に次のファイルになった。

scratch.py

著作権的に良いのか?ダメなら連絡して下さい。

では、Scratch1.4とMinecraftをscratch2mcpi.pyを使って連携してみましょう。

コマンドプロンプトから、

>scratch2mcpi.py
Traceback (most recent call last):
File “D:\scratch2mcpi\scratch2mcpi.py”, line 8, in <module>
import mcturtle.minecraftturtle as turtle
File “D:\scratch2mcpi\mcturtle\minecraftturtle.py”, line 5, in <module>
import minecraft
ModuleNotFoundError: No module named ‘minecraft’

はい。エラーです。

mcturtleパケージ内のminecraftturtle.pyから、同じフォルダ内のminecraft.pyが読み込めない。

なぜだ?

すんなり諦めて、minecraftturtle.pyのimport部分をmcpiフォルダ内のファイルを読み込むように変更。

import mcpi.minecraft as minecraft
import mcpi.block as block

どうすればスマートになるのか?誰か教えてください。

とにかく、再度コマンドプロンプトから、

>scratch2mcpi.py
=================
Sratch2MCPI 2.0.1
=================

Connected to Scratch
Received: (‘sensor-update’, {‘blockTypeId’: 1, ‘mcpiX’: 10, ‘mcpiY’: 40, ‘mcpiZ’: 10})

起動していたMinecraftを見ると、何やらブロックが1つ置かれています。

では、Scratch1.4でmcpi_sphere.sbを開いて、緑旗をクリック!

コマンドプロンプトにずらずらと文字列が流れていきます。

見た目は何も変わりません。でも何かが起きているはず。

では、ちょっと上を見てみましょう。

球が出来てきているはずです。

連携が確認出来たことを喜びましょう。

そして私は寝ます。

コメントを残す

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