Windows上で、Pythonからマイクラの制御はできている前提。
そして、Scratch2.0をインストールしておく。
次のページから「Adobe AIR」と「Scratch Offline Editor」をインストール。
https://scratch.mit.edu/scratch2download/
Scratchのwikiで、Pythonに関するページを参照。
blockextというPythonのライブラリを使えば、Scratch2.0のブロックを作って連携できるみたい。
次のzipファイルをダウンロードして解凍。
https://github.com/blockext/blockext/archive/master.zip
blockext-masterフォルダにカレントディレクトリを移して、「setup.py install」と実行し、ライブラリをインストール。
blockext-master>setup.py install
エラーメッセージっぽい物が出なけりゃ大丈夫。
でも、一応確かめる。「python」と入力して、Pythonのインタプリタを起動し、「import blockext」と入力。
blockext-master>python
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import blockext
>>>
何も表示されないってことは、大丈夫ってこと。
「exit()」か[Ctrl]+[z]を入力してReturnキーで、終了。
Use exit() or Ctrl-Z plus Return to exit
>>> ^Z
では、サンプルを使ってスクラッチ用の拡張ブロックを作ってみよう。
解凍したblockext-masterフォルダ内のexample.pyを実行。
blockext-master>example.py
Listening on localhost:1234
すると、localhost:1234と、ポートが開かれたとのメッセージが表示される。
webブラウザから、localhost:1234を開く。
リンクが2つ表示される。今回はScratch2用の拡張ファイルがほしいので、上側のリンクを開いて、「Scratch Fancy Spaceship English.s2e」をダウンロード。
コマンドラインには、以下の様なログが表示されている。
127.0.0.1 – – [07/Jun/2017 19:13:58] “GET / HTTP/1.1” 200 –
127.0.0.1 – – [07/Jun/2017 19:14:15] “GET /_generate_blocks/scratch HTTP/1.1” 302 –
127.0.0.1 – – [07/Jun/2017 19:14:15] “GET /_generate_blocks/scratch/en/Scratch%20Fancy%20Spaceship%20English.s2e HTTP/1.1” 200 –
では、続いてScratch2.0を起動して、[Shift]キーを押しながらメニューの「File」を開いて、「Import Experimental Extension」を選択。
今、ダウンロードしたs2eファイルを開く。
「More Blocks」を選択すると、拡張ブロックが表示されているはず。
だが、この画像では「Fancy Spaceship」の右に赤丸が表示されている。
これはPythonのライブラリと接続されていないということ。
何故か?それは、[Ctrl]+[c]キーでプログラムを停止してしまっていたから。
プログラムは停止させないで、Scratch2で簡単なプログラムを作って実行してみる。
変数fooに文字列「ABC」を入れて、5秒間Say!
127.0.0.1 – – [07/Jun/2017 20:33:31] “GET /reset_all HTTP/1.1” 200 –
127.0.0.1 – – [07/Jun/2017 20:33:31] “GET /set_foo/ABC HTTP/1.1” 200 –
ABC
127.0.0.1 – – [07/Jun/2017 20:33:36] “GET /say_for_secs/19/ABC/5 HTTP/1.1” 200 –
よし。動いた。
ここまで行けば、後はマイクラを制御するためのブロックを作ってScratchから実行するだけだ。