ScratchプログラミングでMinecraft一級建築士を目指せ!マイクラで始めるプログラミング入門(終)(2/2 ページ)

» 2016年02月29日 05時00分 公開
[薬師寺国安PROJECT KySS]
前のページへ 1|2       

画像スキャナープログラムを利用してブロックで絵や文字を作ってみる

 続いて、Scratch2MCPIに付属している画像スキャナーのプログラム「mcpi_stagescanner」を利用して、ブロックで絵や文字を作ってみる。

 Scratchの「ファイル」→「開く」→「私のプロジェクト」→「mcpi_stagescanner」とたどって、mcpi_stagescannerプロジェクトを読み込む。このプログラムは、Scratchの背景に指定された画像をスキャンして、その背景に指定されている絵や文字を、ブロックで作っていくものだ。

 今回は、「mcpi-stagescanner」に付属する「お化け」のキャラクターや「MINECRAFT」という文字の画像を、Windows PCの画像処理ソフトで作成して、PNG画像として保存し、これらを「Scratch2MCPI」の背景画像として読み込み、プログラムを実行してみた。

 背景に「MINECRAFT」と書いた文字(文字の画像)を表示して、それをスキャンして、Minecraft Piの世界に、その文字通りのブロックを配置しているのが図3になる。

図3 「MINECRAFT」の画像をスキャンして、Minecraftの世界にブロックを配置している

 Scratchの中で、背景画像の上を四角い赤い線がぐるぐると回りながら、画像をスキャンして、それがMinecraftに反映されている。プログラム自体は良くは分からなくても、「MINECRAFT」と書いている文字の色をスキャンしていることが分かるだろう。

 そこで、「もし●色に触れたなら」という命令の●のところに、「MINECRAFT」と書いている青色を指定するだけでいいわけだ。どのように色を指定するかは動画3を参照してほしい。

 動画3では、文字の画像だけではなく、「お化け」キャラクターの画像も読み込んで、ブロックを配置させている。今回のプログラムは、サンプルとして提供されているものを利用しているため、プログラム自体の解説は最低限度の解説にしているが、ご了承願いたい。

動画3 Scratchで背景に指定した画像を読み込んで、Minecraftの世界に、同じ図柄のブロックを配置している

 このように、プログラミングを活用して画像のスキャンができるということを覚えていてほしい。プログラミングを応用することで、Minecraftの世界は自由自在に変えることができるのだ。

世の中には、「天空の城ラピュタ」の世界や「おそ松さん」のアニメーションをマイクラに作る人もいる

 これまでの連載で紹介したように、Minecraft Piは「クリエイティブモード」だけの対応であるため、キャラクターを動かすなどはできず、ブロックで何かを作っていくことしかできないが、いろいろアイデアを出して考えてみると、結構凝った図形なども作成できるのではないかと思う。

 実際、もっと複雑な図形も作ることはできるが、そうなると、当然プログラム自体もさらに複雑になる。ブロック自体も長くなり、Scratchのスクリプトエリアをスクロールしなければブロック全体が見えなくなってしまう。そうなると、ブロック全体の見通しが悪くなるし、解説の動画も長くなるので、今回は、基本的な図形の作成方法の解説にとどめている。

 この基本的な図形の作成をヒントにして、ぜひ、皆さんでユニークな図形さらには、下記のような町やアニメーションを作っていただきたい。

 いったいどうやってこのような景観やアニメーションを作っているのか、想像もつかないかもしれないが、これらも全て、ブロックの組み合わせなのだ。ヒントを出しておくと、今回紹介した平面の図形に高さを加えることで、建築物を作れるし、それを組み合わせることで、町や景観を作ることができる。

マイクラの次にお勧めなプログラミングの世界

 また、本連載で、プログラミングに興味を持った読者は、ぜひScratch以外のプログラミング環境やプログラミング言語にも取り組んでみてはいかがだろうか。

 例えば、Scratchプログラミングで構築した建築物や町、景観を、大人気のゲームエンジン/開発環境である「Unity」の中に読み込むツールがある。

 一部形が崩れてしまうなど、Unityに読み込んだ後の対応が必要な部分があるが、ツール側の改善を期待しつつ、精度をぜひ上げてもらいたいという方は、期待だけではなく寄付をしてメッセージを送ってみてはいかがだろうか。もしかしたらUnityを開発している企業が同様なことを企んでいるかもしれないが……。

 いずれにせよ、Unityは無料でゲームの画面デザインなどは主にマウス操作で行うことができるので、本連載の次のステップとして使い方を学んでみてはいかがだろうか。

動画が取得できませんでした
Unityで開発されたゲームの例

 ゲームのキャラクターの複雑な動きなどは、「C#」「UnityScript」(ほぼ「JavaScript」)といった文字によるプログラミング言語を使って文字でプログラミングする必要があるが、こちらもScratchの次のステップとして、ぜひ挑戦してみてほしい。C#やJavaScriptは、Webサイトやソフトウェア、システムを作るのにも使われているので、覚えたらプログラミングを仕事にすることもできるはずだ。

 なお、どちらかというと、C#よりもJavaScriptの方が初心者には学びやすいだろう。

 本連載が、プログラミングというものの入り口になり、プログラミングを通じて読者の世界が広がればうれしい限りだ。

参考書籍

著者紹介

薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所

薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。

1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。

1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。

2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。

Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。

Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。

Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。

Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。