Python

スクラッチ(scratch)とマインクラフト(minecraft)を連携させて子ども向けプログラミングのネタを増やしてみた

CoderDojo熊本を立ち上げてからというもの、日々お勉強の毎日になっています。

CoderDojo熊本サイトはこちら *参加者随時募集中♩

世界には子ども向けプログラミング教材というものがたくさんあるのですね。

小さなロボットから、ミニドローン、センサーをつないでWifi飛ばしたり扇風機動かしたり。

とはいえいっきに道具を揃えようとすると破産してしまうので、

安価にできる、そして楽しく『プログラミング思考』を身につけられる方法がないかなと調べていたら、ありました、えぇ。

それはずばり、

『スクラッチ(scratch)とマインクラフト(minecraft)を連携させる』

というもの。

この記事では、スクラッチ(scratch)とマインクラフト(minecraft)を連携させる方法をまとめています。

前半多少脱線するので、連携させる方法のみ確認したい場合は 『本編』からご覧ください。

(自宅にMacしかないのでMacで解説していますが、Windowsでも大丈夫と思います。)

Sponsored link

スクラッチとマインクラフトに思うこと

CoderDojo熊本を立ち上げてまずはじめにやったことは、スクラッチ(scratch)を覚えることでした。

何はともあれ本から入りたい性分な身としては、近所のYoumeタウン光の森でこちらを購入。

created by Rinker
¥2,030 (2019/06/19 10:16:09時点 Amazon調べ-詳細)

本の内容はこちらになり、

– 第1章 プログラミングを始めよう
– 第2章 Scratchを始めよう
– 第3章 音を鳴らしてみよう
– 第4章 自動で動く車を作ろう
– 第5章 迷路ゲームを作ろう
– 第6章 もぐらたたきを作ろう
– 第7章 オート紙芝居を作ろう
– 第8章 シューティングゲームを作ろう
– 第9章 電子スノードームを作ろう
– 第10章 クイズ!できるもんを作ろう
– 第11章 幾何学模様を作ろう
– 第12章 ブロックくずしを作ろう

2章、3章、8章、12章を飛ばしながらやってみつつ、他の章もざーっと見て、内容だいたい把握したのでした。

スクラッチでできることをざっくりと把握したつもりで、次は何をしようかと調べていたら、たまたまこの記事がひっかかりました。

平たく言うと、

『スクラッチ(scratch)はあくまで学習用のプログラムであって、仕事に使えるわけではない』と。

スクラッチ(scratch)に飽きてプログラミングを止めてしまっては意味がなく、

実際の仕事などに使えるJavaScriptやPythonなど、本格的なプログラム言語につながっている必要があるということで、

うんうんと頷きながら読み、CoderDojo熊本では、『スクラッチ(scratch)のその先へ』も見据えながら進めないとなぁと思っていたのでした。

あくる日、CoderDojoコミュニティの方から気になる情報が。

CoderDojo先輩1
私の道場ではKindleのマインクラフトで学ぶスクラッチをやってますよ。
CoderDojo先輩2
マインクラフトは大人気ですよね、ニンジャ(子ども)達が夢中でやってます(笑)
アオキ
なんと。スクラッチってマインクラフトにつなげられるんですね・・

早速話に上がっていた Kindleの本を探してみると、すぐ見つかりました。

たまたま出版記念セールだったようで0円で入手できました。

ついでにスクラッチでHTML+CSSを組める本も出版されていました。

個人的にはHTML+CSS はプログラムというよりデザイン寄りだと思っているので、スクラッチでやる必要性はあまり感じなかったのですが、可能性はどっと広がりました。

で、マインクラフトですよ。

Sponsored link

マインクラフトといえばやっぱりこの動画

以前からマインクラフトを知ってはいて、

『ブロックを積み上げて自分の世界を作れるゲーム』というくらいの認識でした。

一気に注目度があがったのは、個人的にはこの動画からでした。

元祖ゲーマーコンビ芸人、よゐこ。

このシリーズが始まってから毎週欠かさず見て、シーズン1もシーズン2も全部見て、マインクラフトの面白さをだいぶ把握したつもりでした。

とはいえ一方で、

アオキ
すごく面白いというのはわかるんだけど、やっぱりゲームだよなぁ。

という気持ちもぬぐえず。

先ほどの記事のように、どれだけ熱中してスキルアップしたとしても、それが仕事につながらなかったらなんかもったいないなぁという気持ちが消えなくて、

実際にマインクラフトをやってみるという気にまではなれませんでした。

そこでこの本ですよ。

早速ダウンロードして、手持ちのIphoneの中のKindleアプリでざーっと見てみると、

ラズベリーパイを使ってスクラッチとマインクラフトを連携させるという方法でした。

ラズベリーパイの中には最初からスクラッチとマインクラフトがインストールされているそうで、連携も簡単なようです。

アオキ
スクラッチとマインクラフトが連携できるのはわかった。けどラズベリーパイ買わないとダメ・・?

ちなみにラズベリーパイってこんなんです。

created by Rinker
Raspberry Pi
¥5,444 (2019/06/19 19:52:32時点 Amazon調べ-詳細)

文字どおり、ちっちゃいパソコンです。

アオキ
でもお高いんでしょ?

スターターキットだとこんな感じです。

1万円弱。

実際はこれに追加でモニター代、キーボード代、マウス代などが乗っかってきます。

アオキ
CoderDojo熊本の発展のためにいずれは必要と思うけれど、今じゃないなぁ。

CoderDojo熊本も多少なりとも広告費とか運営費かかるし、
最近我が家をリフォームして壁紙をがらりと変えたこともあり、できるだけ節約したい身なのです。

アオキ
どうにか手持ちのパソコンで、スクラッチとマインクラフトを連携させる方法がないかしら。

そうやってグーグル先生にいろいろ聞いてみたら、しっかり見つかりました。

ひっかかったサイトを頼りに試しにやってみると、情報がやや古かったり途中で止まっていたりして、
いろんなページをいったりきたりして計4時間くらいかかってどうにか環境構築できましたので、

できるだけわかりやすいようにまとめてみたいと思います。

ちなみに、スクラッチとマインクラフトをつなげるために、Python(パイソン)というプログラミング言語もかませる必要があります。

マインクラフトとPythonと知った時に、以前たまたま見つけたこの動画を思い出しました。

15歳にしてPython歴4年、マインクラフト歴3年というツワモノ・・

彼がもし大学卒業までPythonを続けていたとしたら、22歳大学卒業時点でPython歴11年になっちゃいますね。

こりゃあすごい世界だわぁ。

スーファミに移植されたドラクエ3にはまってた高校生時代の僕にしっかり伝えたいわ・・(遅い

ようやくここから本編です。

Sponsored link

本編 *ここから設定方法になります

スクラッチとマインクラフトをつなげるには多少費用がかかります。と言っても、

  • マインクラフトのソフト代 (約3,000円)

のみです。あとはパソコンがあればOKです。家計にやさしい感じです。

つくる環境をまとめると、

– マインクラフトのソフト
– Forge
– いくつかのmod
– Python 2.7
– Scratch 1.4

になります。

個人的につまづいたのが、Pythonが2.7である必要があるということ。

もともとパソコンにPython 3.5.2 をインストールしていたので、3.5.2のまま設定をすすめていったのですが、途中でつまってしまって、スクラッチからマインクラフトに連携ができなかったんですよね。

こちらの動画のコメント欄に記載がされていました。

アオキ
マジですか。バージョン下げる感じですか。

とはいえ仕事でpython3使うしなぁ。

で、またググって、python3を残したまま、python2をインストールする方法を見つけたのでした。

今回の記事ではpyhtonのインストール方法は解説しないので、こういった記事を参照しつつインストールしてみてください。

python2.7 をインストールできたとして、進めたいと思います。

手順はこんな感じです。

1. マインクラフトを購入(すでに持っていれば買わなくてもOK)
2. modを導入するためにローカルにサーバを建てる
3. マインクラフトをpythonで動かせるようにmodを入れる
4. マインクラフトとpythonの接続確認
5. スクラッチを動かすためのファイルをコピペする
6. スクラッチとマインクラフトを連携

Sponsored link

1.マインクラフトを購入

なにはともあれ、マインクラフトのソフトをパソコンにインストールします。

こちらのサイトから手持ちのPCに合わせてマインクラフトのソフトを選んで購入してください。

Macだとこんな感じで進みます。

購入選んで、

MOJANGのアカウント作って、

メールが届いて認証して、

ログインして、

カード情報入力して、(クレジットカード必要なのでよい子はお父さんお母さんにねだってください。)

購入して、

ダウンロードしてインストールして。

無事インストール終われば2に進みます。

2. modを導入するためにローカルにサーバを建てる

なんのこっちゃな感じでしたが、『Minecraft Forge(マインクラフト フォージ)』というソフトをインストールすればOKです。

こちらのサイトで、

Latest(最新版)とRecommended(おすすめ版) があるのでおすすめ版をダウンロードします。

クリックするとバナーが表示されますが、5秒くらい待っていると右上にSKIPの文字が出て、SKIPを押すとダウンロードがはじまります。

セキュリティ設定によってはダウンロード前に セキュリティ設定の調整が必要な場合もあります。(Macの場合)

ダウンロードしたファイルを早速ダブルクリックでインストール。

Client(クライアント)とServer(サーバー)があるのでClient(クライアント)を選んで進めます。

ここで起動確認。

マインクラフトを立ち上げて、

起動オプションから、新規作成を選んで、

scratch2mpi という名前にしておきます。(名前は自由でいいと思いますが今回の記事ではこの名称で統一してます。)

バージョンは先ほどダインロードしたforgeを選んで、

ゲームディレクトリをONにして、scratch2cpi というフォルダを作っておきます。

MACの場合こういうフォルダパスになると思います。

/Users/ユーザー名/Library/Application Support/minecraft/scratch2mcpi

※ユーザー名の箇所はログインしているユーザー名毎に変わります。

このフォルダにscratch連携に関するファイルをインストールすることになります。

メニューのニュースを押して、メイン画面下のボタンの右側の▼を押すと、先ほど作成したscratch2cpiが表示されていればOK。

試しに起動してみると、画面左下にForgeの文字が現れていたらOKです。

ここまでで下準備はOKです。

一旦マインクラフトを終了しておきます。

Sponsored link

3. マインクラフトをpythonで動かせるようにmodを入れる

mod (改造ソフト)をダウンロードしてインストールします。

必要なのは、

  • raspberryjammod.jar
  • mcpipyフォルダ

の2つです。

先に結果をお伝えしておきますと、macの場合minecraft以下のフォルダ構成はこんな感じになります。

minecraft/scratch2mcpi/mods/RaspberryJamMod.jar

minecraft/scratch2mcpi/mods/mcpipy

先ほど作成したscratch2mcpiのフォルダの中にmodsというフォルダがあって、その中に、

  • raspberryjammod.jar
  • mcpipyフォルダ

の2つを保存するという事ですね。

ダウンロード先はこちら。

アクセスすると、mods.zip というファイルがあるのでこれをダウンロードします。

解答すると、modsフォルダの中にいろんなバージョンのフォルダが表示されるので、先ほどインストールしたForgeと同じバージョンのフォルダの中の、(今回は1.12.2)

RaspberryJamMod.jar をコピーして、下記に保存します。

minecraft/scratch2mcpi/mods/RaspberryJamMod.jar

さらに、python-scripts.zipをダウンロードして解凍すると、

mcpipyというフォルダが現れるので、フォルダ毎コピーして、下記のように保存します。

minecraft/scratch2mcpi/mods/mcpipy

4. マインクラフトとpythonの接続確認

ここまででpythonとマインクラフトの連携ができているはずなので、簡単なコードを書いて試してみます。

まずはマインクラフトを立ち上げます。

先ほど作成したscratch2mcpi でプレイを押して、

Single player から Create New World を選んで、

Game modeはcreativeにしつつ、More world Options にて、

World typeをSuper flat(とにかく平ら) にして、Allow Cheats がONになっている事を確認してからDone からの Create New World。

で、こんな画面がでてくることを確認します。

次はPyhtonテキストエディタでこちらのコードを書きます。

hello.py など名前をつけて、下記のフォルダに保存します。

minecraft/scratch2mcpi/mods/mcpipy

ターミナル(例の黒い画面)を開いて、

ターミナルでこのフォルダまでcdコマンドなどで移動して、

minecraft/scratch2mcpi/mods/mcpipy

先ほど保存したhello.pyを実行した後に、

マインクラフトの画面で hello world と表示されればOKです。

アオキ
ここまでたどり着いたあなた。よく頑張ったねと自分を褒めてやってくださいね^^

ここまでで、先ほどのスーパー15際みたく、Pythonを使ったマインクラフトも実現できるかと思います。

続いてスクラッチとマインクラフトの連携もやってみます。

Sponsored link

5. スクラッチを動かすためのファイルをコピペする

必要なファイル/フォルダは5つです。

こちらの動画が参考になります。

保存するパスは、2番で作成したmcpipyフォルダの中に保存することになりまして、

minecraft/scratch2mcpi/mods/mcpipy/scratch.py
minecraft/scratch2mcpi/mods/mcpipy/scratch2mcpi.py
minecraft/scratch2mcpi/mods/mcpipy/mcpi
minecraft/scratch2mcpi/mods/mcpipy/mcpi/minecraft-turtle.py
minecraft/scratch2mcpi/mods/mcpipy/mcpi/minecraft-stuff.py

というフォルダ構成になります。

各ファイルともにリンクをクリックした後、

右側の「Clone or download」ボタンを押し、Download ZIPボタンをクリックします。

解凍したファイルから、scratch.pyファイルをmcpipyフォルダへコピーして、
scratch2mcpi.py もmcpipyフォルダにコピーします。

scratch2mcpi.pyはファイルの中を少し変更する必要があります。

テキストエディタでscratch2mcpi.pyを開いて、8行目と9行目の箇所を下記のように変更します。

import mcpi.minecraftturtle as turtle
import mcpi.minecraftstuff as stuff

修正点は、
8行目:mcturtle –> mcpi
9行目:mcstuff –> mcpi
に変更ですね。

その後、mcpiフォルダを作成して、

minecraft/scratch2mcpi/mods/mcpipy/mcpi

mcpiフォルダの中に、minecraft-turtle.pyminecraft-stuff.pyを保存します。

これで準備OK。

ついに、スクラッチとマインクラフトの連携ができそうです、、もう少し頑張って・・!

スポンサードリンク

6. スクラッチとマインクラフトを連携

スクラッチは、ブラウザ版(2.0以上)とインストール版(1.4)があるのですが、
マインクラフトと連携するにはインストール版(1.4)が必要になるのでこちらをインストールします。

ダウンロードして、

インストールします。

ソフトを起動する順番が決まっている?ようで、マインクラフトを立ち上げた状態で、スクラッチを立ち上げるようにします。

スクラッチを立ち上げたら、

スクラッチ側の「調べる」の中の、「スライダーセンサーの」という項目で右クリックして、右クリックのメニューで「遠隔センサー接続を有効にする」を選びます。

マインクラフト側で、Scratch2MCPI connected to Minecraft Pi.と表示されればOKです。

*Python3xだとここで詰まりました・・

もし表示されない場合は、マインクラフトとスクラッチが立ち上がっている状態で、

ターミナルでmcpipyフォルダまで移動した状態で、python scratch2mcpi.pyと入力してみてください。

Connected to scratchと表示されればOKです。

これで、スクラッチからマインクラフトにプログラムを実行できるようになりました。

アオキ
ここまでたどり着いたあなた、素晴らしい!

よくぞ諦めないで頑張った!感動した!っと自分を褒めてあげてくださいね。

あとはこのKindle本を参考にしながらプログラムを書くもよし、

憧れの家を設計するもよし、
幾何学的な模様をつくるもよし、
発電システムの回路をつくるもよし、
個人的には全自動の農業システムができたらと思ったり。
(自動で明かりを当てたり自動で水をあげたり畑耕したり。)

いずれは現実になりそうな気もして、夢がモリモリ膨らんでまいります。

あくまでも楽しみながら、気づいたらスキルアップしているというのが理想だと思っていますので、

ぜひ自由にのんびりたのしく、プログラミングライフをおくってもらえればと思います。

追記:
次回以降パソコンを立ち上げてPythontとスクラッチを連携させる際は、

  1. マインクラフトを立ち上げる
  2. ターミナルでpython scratch2mcpi.pyを実行する
  3. スクラッチで遠隔センサー接続を有効にする

でOKです。

(2番を見逃して立ち上がらなくてちょっと焦りましたので・・)

まとめ

一気に書き上げましたがなかなか長文になってしまいました。

実際に試した時は egg.pyを試して画面真っ黒になって迷走したり、

スクラッチからマインクラフトにどうやっても連携ができなかったり(これはpython 3が原因でpython2.7に変えたらOKになりました)

紆余曲折してグーグル先生に聞きまくりましたが、結果うまくいってほっとしています。

この記事がニンジャたち(子どもたち)やそのお父さんお母さんにとって少しでも役にたちますように。

いずれはCoderDojo熊本でも15歳にしてPython歴4年なニンジャが現れる事を期待しつつ、

今日も楽しく『プログラミング思考』にいそしみたいと思います。

それではまた。

PS. CoderDojo熊本 月一回ペースで定期的に開催しています。

参加費無料ですのでお近くの方はぜひぜひご参加くださいませ。

ツイッターでも記事ネタ含めちょろちょろ書いていくので、よろしければぜひフォローお願いしますm(_ _ )m
アオキのツイッターアカウント

記事を書くにあたり下記サイトを参考にさせていただきました。ありがとうございます。

参考サイト
https://qiita.com/norizou4/items/f3504cc95a4b6452b748

https://www.timeless-education.com/five-steps-to-start-python-programming-in-minecraft-2607.html

http://minecraft-diary.jp/blog-entry-1247.html

Sponsored link

関連記事

  1. Python

    【Python/Django】Webアプリのテンプレートなら『cookiecutter』がよさげ【簡…

    っとなったとしたら、Pythonの全部入りwebフレームワ…

  2. Laravel

    【Vue.js/Laravel】Webアプリ実践記 37歳おっさんが独学でVue.js+Larave…

    本業Webマーケッターと育児をしながら独学でwebアプリをつくってみる…

  3. Python

    【Python/Django】mysqlとの接続があまりにあっさりしすぎて拍子抜けした話

    DjangoからPostgresqlがどうしてもwin7だと接続できな…

  4. Python

    【Python/Django】webフレームワークを使う6つのコツ〜最短距離でアプリをつくるために【…

    とある業界のWeb予約システムをつくることになりまして、Pytho…

  5. スクラッチ scratch

    【スクラッチ】ジャンプをする方法〜3ステップでジャンプできるようになる〜

    子ども向け無料プログラミング寺子屋『CoderDojo熊本』開催中…

Sponsored link

最近の記事

Sponsored link
  1. IoT

    【Arduino】ラジコンをつくってみた 〜今ドキのプログラミングの覚え方
  2. P5.js (Processing)

    【P5.js】遊ぶようにプログラミングできるクリエイティブコーディング〜はじめの…
  3. HTML/CSS

    【厳選8冊】ホームページを作れるようになるためのおすすめ本【初心者向け】
  4. 検索システム

    新しいホテルを探すサービスをつくってみました【楽天トラベルAPI】【条件付】
  5. 物理学

    物理とプログラミングの関係〜力学のはじめのいっぽ
PAGE TOP