マインクラフト・プログラミング入門‚«ード:kcnより提供するものを使用...

24
マインクラフト・プログラミング入門 2017.05.10 鎌倉シチズンネット(KCN1 © 2017-2017 Kamakura Citizens Net All rights reserved 1Scratchとマインクラフトをつないでみよう 2家を建ててみよう 3プレイヤーの操作に反応する 4Pythonでプログラミング 5PCコース第1回の内容)

Upload: duongdat

Post on 19-May-2018

244 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

マインクラフト・プログラミング入門

2017.05.10鎌倉シチズンネット(KCN)

1© 2017-2017 Kamakura Citizens Net All rights reserved

第1回 Scratchとマインクラフトをつないでみよう第2回 家を建ててみよう第3回 プレイヤーの操作に反応する第4回 Pythonでプログラミング第5回 (PCコース第1回の内容)

Page 2: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

マインクラフト・プログラミング入門

2

マインクラフトのワールドに9.11以前のマンハッタンを再現しました

Page 3: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

マインクラフト・プログラミング入門

3

総戸数100戸の分譲地を作りましたが、遠くの方はかすんで見えません。

Page 4: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

マインクラフト・プログラミング入門

2017.05.10鎌倉シチズンネット(KCN)

4© 2017-2017 Kamakura Citizens Net All rights reserved

第1回 Scratchとマインクラフトをつないでみよう

☆学習用端末の準備☆Minecraft Pi の起動☆Scratch2MCPI の起動☆Minecraft にメッセージを表示する☆ブロックを作成してみよう☆Minecraft Pi のプログラミング環境☆Minecraft プログラミング参考資料

Page 5: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

5

学習用端末の準備(1)

• 使用機器: Raspberry Pi 2 または 3マイクロSDカード: KCNより提供するものを使用

• Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

(http://www.kcn-net.org/org/monodukuri/online.html)~ 学習用端末にRaspberry Pi を用いる場合 ~ のページを参照してください。

• 利用するアプリケーション(KCN提供のマイクロSDカードにインストール済み)

Minecraft Pi (Raspberry Pi 用のマインクラフト)Scratch 1.4Scratch2MCPI ver2 (次頁参照)

Python 2.7

Page 6: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

6

学習用端末の準備(2)

• Scratch2MCPI のインストール

Scratch2MCPI はScratchとMinecraft Pi の橋渡しをするプログラムで、自分でインストールするときは次のように行います。(KCN提供のSDカードを用いる場合には不要です。)

[ 画面左上のラズベリーのアイコン ] - [ アクセサリ ] - [ LXTerminal ] で表示される「ターミナル」のウインドウで次のコマンドを入力します。

curl http://scratch2mcpi.github.io/install.sh | sh

Installation of scratch2mcpi is completedのメッセージが表示されたら、インストール成功です。デスクトップに次のアイコンが表示されます。

Scratch2MCPIの作者は「Raspberry Pi ではじめるどきどきプログラミング」の著者でもある、石原淳也さんです。 Scratch2MCPI はPythonで280行!

https://github.com/scratch2mcpi/scratch2mcpi

(scratch2MCPI)

Page 7: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

7

Minecraft Pi の起動(1)

• Minecraft Pi の起動

[ 画面左上のラズベリーのアイコン ] - [ ゲーム ] - [ Minecraft Pi ] でMinecraft Pi を起動すると次のウインドウが表示されます。

上記のウインドウで、[ Start Game ] ボタンをクリックします。

Page 8: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

8

Minecraft Pi の起動(2)

[ Start Game ] ボタンをクリックすると次のウインドウが表示されます。

上記のウインドウで、[ Create new ] ボタンをクリックします。

Page 9: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

9

Minecraft Pi の起動(3)

• [ Create new ] ボタンをクリックする「ワールドを生成中です」のメッセージが表示されます。

Page 10: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

10

Minecraft Pi の起動(3)

• 「ワールド」の生成が終わると「ワールド」が表示されます。「ワールド」は毎回異なる内容のものが表示されます。

ウインドウの下側に表示されているバーは「ホットバー」と呼ばれます。

ここでTABキーを押し、マウスカーソルをマインクラフトの外へ移動します。

このようにウインドウがずれて表示されるときは[ Raspberry Pi の設定 ] - [ システム ] - [ オーバースキャン ] を[ 無効 ] にすると直ります。

TABキーでマウスカー

ソルをマインクラフトのウインドウの外へ移動してから、再び中に戻るときにはマインクラフトのウインドウの位置で右クリックか左クリックをします。

Page 11: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

11

Minecraft Pi の起動(4)

• Minecraft Pi の操作

キー 機能

Wキー 前に進む

Aキー 左に進む

Sキー 後に進む

Dキー 右に進む

Eキー 持ち物画面を開く

スペースキー ジャンプ。飛行モードでは上昇。

スペースキー2度押し

飛行モードにする。飛行モードでは地上に戻る。

キー 機能

左シフトキー 身をかがめる。飛行モードでは下降する。

ESCキー メニュー画面を開く

TABキー マウスカーソルをMinecraftの外に移動する

マウスの右クリック

ブロックを置く(配置する)

マウスの左クリック

ブロックを壊す(消す)

マウスのホイール操作

ホットバーのブロックを選択

Page 12: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

12

Scratch2MCPIの起動(1)

• Scratch2MCPI の起動

マインクラフトの「ワールド」が開かれた状態で、デスクトップに作成されたScratch2MCPIのアイコンをダブルクリックすると(あるいは右クリックし[ 開く ] を選択すると)、次のようにScratchが表示されます。

「遠隔センサ接続が有効になりました」と表示されるので[ OK ] を押します。

Page 13: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

13

Scratch2MCPIの起動(2)

• サンプルプロジェクトの実行

Scratchの[ 開く ] でScratch2MCPIのサンプルプロジェクトを開くことができます。

mcpi_template、mcpi_shpere、mcpi_stagescanner、turtle_xxxxがサンプルプロジェクトです。下図は turtle_3dnautilus を実行させたときの画面です。

Page 14: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

14

Minecraftにメッセージを表示する(1)

• メッセージの表示

Scratchのプロジェクト「mcpi_template」を開き、 Scratchのウインドウの右上の緑の旗をクリックすると、Minecraftのウインドウに「hello minecraft」と表示されます。

これでScratchとマインクラフトがつながったことが分かります。

Page 15: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

15

Minecraftにメッセージを表示する(2)

Scratchのスクリプトエリアに表示されている「hello_minecraft を送る」の下向き矢印をクリックすると、下図のようにMinecraft に送ることができるメッセージが表示されます。これらのメッセージを用いてMinecraft の操作を行います。

☆ScratchとMinecraft がつ

ながった状態でないと、このメッセージ一覧は表示されません。

☆「reset を送る

」を実行するとワールドがクリアされ何もない原っぱになります。

Page 16: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

16

ブロックを作成してみよう(1)

• ブロックを作成する

Scratchのプロジェクト「mcpi_template」を名前をつけて保存し「block」という名前のプロジェクトを作成します。

Minecraftの座標位置 (x=0, y=0, z=0) にブロックを作成するためにはScratchのスクリプトで次のように記述し、緑の旗をクリックします。

x 座標 = 0 (横)

y 座標 = 0 (高さ)

z 座標 = 0 (奥行)

ブロックタイプID 1 = 石

ブロックを置く

x

yz

x座標とz座標の進

行方向はプレーヤーの立ち位置により変わります。

(東)

(南)

Page 17: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

17

ブロックを作成してみよう(2)

• ブロックの種類を変更する

ブロックの種類を変更するときは、変数 blockTypeId の値を変更します。

また、変数 blockData でブロックの詳細なデータを指定することができます。

ブロックタイプのID、データ値はこちらを参照してください。

blockTypeId の値を57にするとダイヤモンドのブロックになります。

Page 18: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

Scratchの緑の旗をクリックしたとき、下図のようにマインクラフトのウインドウが

真っ黒になる場合は、マウスカーソルをマインクラフトのウインドウに移動し、マウスの右クリックをしてから、s キーを押して後ろに下がるとブロックが置かれているのが見えます。

18

ブロックを作成してみよう(3)

Page 19: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

• 座標位置(x = 0, y = 0, z = 0)に作成したブロック

ブロックが見えないときは、Scratch(Scratch2MCPI)をいったん終了させ再起動

すると見えることがあります。それでもダメなときは、マインクラフトも再起動します。最後の手段は[ Shutdown ] - [ Reboot ] です(動作がやや不安定です)。 19

ブロックを作成してみよう(4)

Page 20: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

• [ 練習問題1 ] ブロックを5個積み重ねてみよう。

ヒント: 「10回繰り返す」を「5回繰り返す」にして、y座標を1ずつふやします。ブ

ロックを置いた後、「0.1秒待つ」を入れると正しく実行されます。

「tower」 というファイル名でScratchフォルダに保存しよう。20

ブロックを作成してみよう(5)

Page 21: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

• [ 練習問題2 ] 5個積み重ねたブロックを横に5個並べて壁を作ってみよう。

ヒント: 「5回繰り返す」の外側にさらに「5回繰り返す」を使います。

(繰り返しの「入れ子」といいます。) y座標の値に気を付けて!

「wall」 というファイル名でScratchフォルダに保存しよう。

21

ブロックを作成してみよう(6)

Page 22: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

22

Minecraft Piのプログラミング環境

Minecraft Pi

Socket インタフェース(*2)

Python APIJava API

Pythonアプリ

Scratch2MCPI

Scratch

Javaアプリ

(*1)

その他の言語で記述されたアプリ

(*1), (*2) /opt/minecraft-pi/api/ 参照

Python APIとJava API はMinecraft 開発元が提供

scratchpy

Socket インタフェース

scratchpyはScratchと接続するためのPython API

Scratch2MCPIはScratchとMinecraft の橋渡しをするPython のプログラム

Page 23: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

Minecraft プログラミング参考資料(1)タイトル 著者

Raspberry Pi ではじめるどきどきプログラミング(日経BP社) 阿部・石原・塩野・星野

Scratch2MCPI 石原淳也

Scratch2MCPIのgithub 石原淳也

ブロックIDとデータ値 Minecraft WikiMartin O'Hanlon's project blog Martin O'hanlonMinecraft API Martin O'hanlonGetting Started with Minecraft Pi RasPi 財団

(上記の日本語訳) 五十嵐システムズ

RaspberryJuice: plugin to implement Minecraft Pi API for Desktop Bukkit servers

zhuowei

RaspberryJuice - A Bukkit plugin which implements the Minecraft Pi Socket API.

zhuowei

Raspberry Pi なしでMinecraft APIをプログラミング 石原淳也23

Page 24: マインクラフト・プログラミング入門‚«ード:KCNより提供するものを使用 • Raspberry Pi の接続・起動方法はKCNオンライン教室のホームページを参照

Minecraft プログラミング参考資料(2)タイトル 著者

Raspberry Jam Mod - most Raspberry Pi/Juice protocol arprussPython Coding for Minecraft arprussMinecraft1.11.2にRaspberry Jam Modをインストール HajimeteProgramMinecraft×Scratch ~on windows~ #1 子供達のプログラミング マイクラ幼稚園

Minecraft×Scratch ~on windows~ #2 子供達のプログラミング マイクラ幼稚園

24