I'm curious about... -コレが気になる-

技術系サラリーマンの生活実験

【雑記】マインクラフト(Windows10版)にMakeCode for Minecraftを導入した話

昨年、息子とマインクラフトでマルチプレイをするためにMac Mini(Late2012)にWindows10を導入し、Windows10版とiOS版でマルチプレイを楽しんでいるのですが、旧Mac版でできた「ComputerCraftEdu」が使えなくなり、プログラミングで遊ぶ事が出来なくなったのが不満でした。OSを切り替えればいいのですが、デュアルブート環境ではイマイチ面倒です。

 

そんな中、2017年の10月にMicrosoftから公式プログラミングツールである「MakeCode for Minecraft」がリリースされていた事を知り、早速インストールしてみました。

 

minecraft.makecode.com

 

結論から言うと昨年遊んでみた「ComputerCraftEdu」よりもプログラミングしやすく、かつ高度なプログラミングが可能になっており、公式の本気を感じます。ですが、日本のマインクラフターの間ではイマイチ話題ではないらしく、Webで検索してもプレスリリースか英語の情報しかなく、個人のブログなどではあんまり紹介されていません。公式からマトモな日本語サイトが公開されていないせいでしょうか。

と言うわけでこのGWの連休で遊んでみた結果をまとめてみたいと思います。

 

 

◼︎MakeCode for Minecraftとは?

昨年は気づいていなかったのですが、「窓の杜」で以下の通りプレスリリースがあったようです。

forest.watch.impress.co.jp


概要を図示するとこんな感じです。

 

f:id:tkcx3110:20180501221116p:plain

 

MakeCode for Minecraft」で作ったプログラムを、「Code Connection」が橋渡しして「マインクラフト」で動作させるという仕組みになっています。後述しますが、「Code Connection」で橋渡し出来るプログラミングツールなら、他の言語も使えるようです。「MakeCode for Minecraft」はJAVA Scriptで組まれており、JAVA Scriptが使える方なら直接記述も可能です。

 

◼︎インストール

Minecraft(Windows10版)がインストールされたPCで、以下のサイトにアクセスして「MakeCode for Minecraft」をダウンロードします。

 

minecraft.makecode.com

 

サイト中段にある「Download Code Connection」をクリックします。

f:id:tkcx3110:20180501173224p:plain

 写真1:ダウンロードボタン

 

ブラウザが「Edge」の場合は以下のダイアログが表示されるので、「実行」をクリックしてインストール開始です。

f:id:tkcx3110:20180501173246p:plain

写真2:インストールの実行

 

後はWindowsアプリケーション定番のインストールの流れです。

f:id:tkcx3110:20180501173306p:plain

写真3:おなじみのインストールダイアログ

 

そのままインストールが終わるとデスクトップに以下のアイコンが表示されます。

f:id:tkcx3110:20180501173322p:plain

写真4:いかにもマインクラフトなアイコン

 

これで準備完了です。

 

◼︎マインクラフト(Windows10版)と連携する

マインクラフトを起動してから「Code Connection」を起動すると、以下のようにメッセージが出ます。書類アイコンのボタンを押すと、コマンドがクリップポードにコピーされます。

f:id:tkcx3110:20180501173337p:plain

写真5:仮想サーバへのアクセスコマンドをコピーする

 

Minecraft Education Edition」と書いてありますが、普通のマインクラフトWindows10版で問題ありません。

 

チートONのクリエイティブモードでワールドを作ります。常に昼間、天候変化なしのオプションは付けておいた方がウザくないでしょう。チャットウィンドウを開いて先ほどコピーしたコマンドを貼り付けて、Enterキーを押すか右側の実行ボタンを押します。

f:id:tkcx3110:20180501173526p:plain

写真6:チャットウィンドウへコマンドを貼り付けて実行

 

「サーバーへの接続を確率しました」のメッセージが出ると準備完了です。

f:id:tkcx3110:20180501173658p:plain

写真7:サーバへ接続を確立

 

接続が完了すると、「Code Connection」の画面が切り替わります。

f:id:tkcx3110:20180501173719p:plain

写真8:MakeCode以外のプログラミング学習ツールが使えるようである。

 

ブロック積み上げ型のプログラミング学習ツール「Scratch」も使えるようです。すでに「Scratch」で遊んでいる場合はそちらでも良さそうですね。今回はエントリの表題通り「MakeCode」を使います。

 

先ほどの画面で「MakeCode」をクリックすると、「MakeCode」のホームが開きます。

f:id:tkcx3110:20180501173739p:plain

写真9:「MakeCode」のホーム画面。すでに何件かプロジェクトを作った後です。

 

ここで写真9の「新しいプロジェクト」をクリックすると、新しくプログラムが作成できます。 

 

◼︎プログラミングの基本

実際のプログラミングは、公式サイトにチュートリアルがあるので、それで試すとよく分かると思います。ここからは自分で実際に試してみた結果を示します。 

 

「新しいプロジェクト」をクリックすると、以下のような写真10の状態に切り替わります。写真10は、画面左側の「プレイヤー」という青色のボタンをクリックした状態です。

f:id:tkcx3110:20180501174100p:plain

写真10:左側のボタンでプログラムのブロックが各種選べる

 

赤枠で囲った大カッコのようなものが、プログラムの一括りになります。

ここからはとりあえず、「ComputerCraftEdu」でいうところの「タートル」にあたる「エージェント」の姿を拝みたいので、「エージェントを自分のところに移動させる」を実際に作ってみます。

 

写真10の赤枠で囲った青い大カッコをクリックすると、プログラムを記述する領域に反映されます。写真11の状態では、マインクラフト上でチャットウィンドウにコマンド "jump" を入力した時に、カッコ内が実行されるプログラムになります。

f:id:tkcx3110:20180501174206p:plain

 写真11:大カッコのようなものがプログラムの一括り

 

"jump" をクリックすると選択状態になり、文字列を書き換える事ができます。

f:id:tkcx3110:20180501174252p:plain

写真12:文字列を選択した状態

 

"come" に書き換えました。

f:id:tkcx3110:20180501174337p:plain

 写真13:文字列を書き換え

 

今度は、左側の「エージェント」ボタンをクリックし、「エージェントを自分の位置にもどす」と書かれた短冊をクリックします。

f:id:tkcx3110:20180501174513p:plain

写真14:エージェントに対する命令を選ぶ

 

プログラムを記述する領域に、「エージェントを自分の位置にもどす」の短冊が網掛け状態で追加されました。

f:id:tkcx3110:20180501174652p:plain

写真15:プログラム記述領域に命令がコピーされる

 

ドラッグして、「チャットコマンド "come" を入力した時」の大カッコ内に短冊を移動します。

f:id:tkcx3110:20180501174740p:plain

写真16:ドラッグして組み込み

 

収まりました。コレでプログラミングは完了です。

f:id:tkcx3110:20180501174844p:plain

写真17:プログラムの完成

 

では実際にチャットウィンドウを開いて、コマンド "come" を入力します。

f:id:tkcx3110:20180501174905p:plain

写真18:作ったプログラムを実行してみる

 

 自分の足元に、「エージェント」がやってきました。写真19では一歩引いてスクリーンショットを撮っていますが、実際には自分と同じ座標に来ます。この「エージェント」を使って自分の代わりに建築をしたり、畑を作ったり色々遊べるのですが、それは別の機会にします。

f:id:tkcx3110:20180501174921p:plain

写真19:呼び寄せた「エージェント」

 

◼︎遊んでみた

公式サイトにはサンプルプログラムが示されており、それを試しに遊んでみることにしました。写真20のプログラムは、「Chicken Rain」と名付けられた「ニワトリを、自分の上空100の座標に100羽スポーン(発生)させる」というプログラムです。写真9の公式サイトトップ画像にそのプログラムが表示されているので採用しました。他にもいろんな動物がスポーンできるのですが、飛べない動物は落下ダメージで◯んでしまいまうのでニワトリです。 

f:id:tkcx3110:20180501175943p:plain

写真20:「ループ」と「生き物」を組み合わせて作る

 

作ったプログラムを実行すると、しばらくすると空からニワトリが降ってきます。

何とも異様な光景で笑えます。

f:id:tkcx3110:20180501180006p:plain

写真21:「親方!!空からニワトリが!!」

 

息子から、「1万回繰り返しにしたら、ニワトリは1万羽スポーンするの!?」と注文が入ったので実際に試すことにしました。実行結果は写真23の通り、100羽の時より圧倒的なニワトリが降ってきます。 

f:id:tkcx3110:20180501180043p:plain

写真23:一万羽のニワトリ

 

引きで撮影するとその異様さが更にはっきりわかります。息子は爆笑して腹が捩れそうな勢いでした。

f:id:tkcx3110:20180501180107p:plain

写真24:ニワトリタワー状態

 

爆笑している息子と同時に、ニワトリ1万羽はMac Mini(Late2012)には負荷が高すぎるらしく、CPUファンが激しい音を立てて回り始めました。コレはあんまりよくない。せめてニワトリの動きを止めないと、と思い写真25のプログラムを作成しました。

f:id:tkcx3110:20180501180334p:plain

写真25:禁断のプログラムを作る

 

赤いブチの卵はニワトリです。それにしてもなぜこんなプログラムが実装できるように設計されているのでしょうか・・・

なんにせよ実行します。

 

実行前、辺り一面に広がるニワトリと、さらに降り続けるニワトリでエライコッチャな状態だったのですが、

f:id:tkcx3110:20180501180520p:plain

写真26:うわぁ

 

プログラムを実行するとあたり一面のニワトリは「コケーッ!」という断末魔と共に皆行動不能になり、大量の生のトリ肉と羽が残されました。まだ地上に降下しきっていないニワトリも生のトリ肉になり、地上に勢い良く落下してきます。

f:id:tkcx3110:20180501180537p:plain

写真27:「私残酷ですわよ」

 

このまま5分程度待てば生のトリ肉と羽はみんな自然消滅し、バニラ世界に平穏が訪れることでしょう。コンピューターはプログラミングしたとおりに動く、ということを息子に示すことができましたが、果たしてコレでよかったのかは疑問が残ります。

 

◼︎ちょっと遊んでみた感想

プログラミングの基礎があり、マインクラフトで遊んだことがある方であれば、「簡単で楽しい」と思います。プログラミング学習教材としても、マインクラフトが好きな子供であれば、日本語でプログラミングできることからかなりとっつきやすいのではないでしょうか。また、今回は書きませんでしたが、「MakeCode for Minecraft」で作成したプログラムは、JAVA Scriptに切り替える事ができ、逆にJAVA Scriptで記述すれば「MakeCode for Minecraft」に簡単に切り替えられます。アルゴリズムの基礎がある方であれば、JAVA Scriptがわからなくても簡単にプログラミングできるでしょう。逆にマインクラフト用のメソッドがわからなくても、JAVA Scriptで記述する際にはメソッドのオートコンプリート機能もありますし、学習教材として優れているのではないでしょうか。

 

マイクロソフトとしては、こういう遊びを提供することで将来のソフトウェアエンジニアを育てたいという狙いがあると思われますが、日本語チュートリアルが簡単に見つけられない現状では、日本ではあまり広がらない気がします。少しもったいないですね。

 

そして、子供がマインクラフトに熱中している技術職の親であれば、ぜひWindows10版の環境を子供に用意してあげて欲しいと個人的には思っています。息子と一緒に「どんなプログラムを作ろうか?」と考える時間は楽しくて、とても貴重な時間に感じています。