事例で学ぶ事業会社のDX化ノウハウ(第3回:Scratchでマインクラフト風ゲームを作りながら学ぶプログラミング的思考)
子供が小学校でScratchというプログラミングを学んでいるので理解しておきたい保護者
Scratchとかマインクラフトとか知らないけどプログラミング的思考を習得したい
ゲーム作ってビジネスになるのか、DXにどう繋がるか知りたい世代
Scratchでマインクラフト風ゲームを作りながら学ぶプログラミング的思考目次
- Scratch
- Scratchの制作事例
- マインクラフト
- 画像作成
- 開始処理
- 移動プログラム
- 在庫追加プログラム
Scratchでマインクラフト風ゲームを作りながら学ぶプログラミング的思考
この記事では、Scratchを利用してマインクラフト風ゲームを作りながら、DX管理者としてプログラミング的思考を学びます。
最初にお伝えしたいのが、1行も飛ばさず読んでください。
途中で、どうせ子供のゲームだろうという気持ちが芽生えても、絶対に飛ばさないでください。
私もポケモンの学習を飛ばしたので、ピカチューしか知りません。
その状態だと子供の遊びだとしても、ポケモンの議論に参加すらできません。
Scratchもマインクラフトも子供の遊びです。
しかし、どちらの製品も世界有数の組織が管理している、各分野で世界1の製品です。
皆様のスキルアップの一助になれば嬉しいです。
Scratchとマインクラフト
- Scratch
- Scratchの制作事例
- マインクラフト
Scratch
Scratchは、元々アメリカのマサチューセッツ工科大学(MIT)で開発されたビジュアルプログラミングです。
ビジュアルプログラミングというのは、一般的な文字でプログラミングをするのではなく、ブロックをドラッグ・アンド・ドロップすることで、プログラムを実装する手法です。
一般的なコードと呼ばれる文字でプログラムを実装する場合、記号1つ間違うだけでプログラムが動作しません。
これに対し、ビジュアルプログラミングのメリットとして、タイプミス等による動作エラーが発生しないということです。
あたかも、おもちゃのブロックを積み上げるようなイメージで、簡単にプログラムが完成します。
現在のScratchは、バージョン3系列となり、Scratch財団とマサチューセッツ工科大学(MIT)メディアラボ ライフロングキンダーガーデングループ(MIT Media Lab Lifelong Kindergarten Group)とで共同開発し、無料で利用できます。
日本でも公立私立問わず小学校の授業で取り入れられている為、2022年現在の小学生が大人になる頃には、全員プログラミングができる状態になります。
そういう意味でも、プログラミング経験のない方は、是非Scratchで何ができるか、知っておいていただくと良いですよ。
Scratchの制作事例
Scratchが世界的にすごいプログラミングツールであることはご理解いただけたと思います。
ただ、Scratchでどのようなものが制作できるかイメージが掴みにくいので、制作事例をご紹介します。
全てScratchで制作されており、全て無料です。
つまり、小学生が制作することもできるということです。
ゲームだからと馬鹿にできないことに気づいていただけるきっかけになると思います。
10年後、小学生が社会に出る時に、知らないから任せるという言い訳は通用しません。
Paper Minecraft v11.6 (Minecraft 2D)
Paper Minecraft v11.6 (Minecraft 2D)はgriffpatch作成したマインクラフト風ゲームです。
今回の記事でも紹介するマインクラフト風ゲームを世界最高のクォリティで実現しています。
セーブ機能もあるので、長く楽しむことが出来ます。
もちろん無料ですし、Scratchでゲームを作るきっかけになるので、ゲームを作るプログラミング脳を育てることも可能です。
Paper Minecraft v11.6 (Minecraft 2D)はこちらのリンクから確認可能です。
Megaman X / Rockman X - New Features
マインクラフトはわからないな・・・という保護者の方に朗報です。
ファミコン世代以降に子供時代を過ごした方にお馴染みのロックマンです。
驚くべきクオリティですので、子供時代を思い出しながら遊んでみてください。
Megaman X / Rockman X - New Featuresはこちらのリンクから確認可能です。
Super Mario on Scratch
Super Mario on Scratchはlightblue012作成のスーパーマリオ風ゲームです。
ロックマンもわからない、そんな世代の方にもプログラミングは優しく門を開きます。
オリンピック開会式にも登場した、日本を代表するキャラクターのスーパーマリオです。
見たこと有るキャラクターをScratchで操作すると、きっとScratchの凄さをご理解いただけると思います。
Super Mario on Scratchはこちらのリンクから確認可能です。
マインクラフト
マインクラフトとは、Scratchの制作事例にもでてきたゲームです。
元々Mojang Studioという企業がJavaで開発していました。
2014年にマイクロソフトがMojang Studioを25億ドルで買収して現在に至ります。
25億ドルなので、ざっと2500億円です。
どうでしょう、ゲーム作っているだけというのも馬鹿にできない世の中ですね。
マインクラフトでは、ストーリーが決まっているわけではなく、自由に遊ぶことが出来ます。
例えば、家を作る、料理を作る、動物を狩る、作物を育てる、鉱石を掘る、ドラゴンを倒す、街を作る、自動化工場を作る等、無限の遊び方があります。
マインクラフトでは、世界中のプレイヤーとチャットしながらコミュニケーションを取ることも重要です。
今回の記事では解説しておりませんが、マインクラフトEducationを利用することで、学校のような感じで教育を受けることも可能です。
マインクラフトEducationの利用は、各国政府が許認可した学校でのみ利用可能です。
Scratchでマインクラフト風ゲームを作る
ここではScratchの基本的な使い方を学習します。
まずは、https://scratch.mit.edu/projects/657351364 にアクセスしてみてください。
今回作るプログラムの完成品です。
もし、アカウントをお持ちでなければ、アカウントを作成します。
画面右上のScratchに参加しようをクリックして
必要事項を入力して登録すればすぐ使えます。
小学生でもすぐ使えるので、利用開始までのハードルが非常に低いのが特徴です。
次にhttps://scratch.mit.edu/projects/editor をクリックするとプログラムの新規作成が開始されます。
次のような画面になったら大丈夫です。
- 画像作成
- 開始処理
- 移動プログラム
- 在庫追加プログラム
画像作成
まずキャラクター画像を作成の前に、初期表示されている猫を削除します。
右下の猫をマウスオーバーするとゴミ箱マークが表示されるのでゴミ箱をクリックして猫を削除します。
次に絵を書く操作をします。
右下の猫マークにマウスオーバーさせ、筆ペンのようなマークをクリックします。
これで絵を書く準備ができました。
あとは、□を選択してお絵描きします。
詳しく説明してほしい気持ちはわかりますが、ここはとりあえずいろいろ試してみてください。
大丈夫です。
小学校1年生でも楽しく自分でお絵描きしています。
間違いとかはありませんので、試しに色々やってみてください。
なにか描けたら色を塗ってみましょう。
今回はSteveを作るので、Steveの色見本を表示します。
Steveはマインクラフトの主役です。
次のSteveは私が□だけを組み合わせたものです。
それなりに良いでしょ。
私絵心はないのですが□だけで描けばきれいに書けます。
小学生が書いても大人が書いてもクォリティに差はでません。
色は次の部分で選択できます。
例えば髪の毛の色は次の色パターンですので参考にして作成してみてください。
Steve以外の素材は、Paper Minecraft v11.6 (Minecraft 2D)の素材を引用しています。
開始処理
ここではゲームの開始処理を解説します。
開始処理プログラムは次の内容になります。
Scratchでプログラムを実装するには画面左側に有るブロックを右側の白い部分にドラッグ・アンド・ドロップすればよいです。
大丈夫です、恐くはありません、間違いなんて無いのでとりあえずドラッグ・アンド・ドロップしてみてください。
最初にドラッグ・アンド・ドロップするのは、イベントと言うところにある緑の旗がある黄色いブロックです。
それでは、開始処理に記載した画像を再度見てみます。
画像と同じ様にドラッグ・アンド・ドロップしていただくとよいのですが、画像と全く同じものは最初の緑の旗のブロックのみです。
2個めの座標ブロックは、数値を自分で変更する必要があります。
このとき、文字は半角状態で入力してください。
この中で、画面左側にないものが、オレンジ色の「ダイヤ、金、爆弾」と書いてあるブロックです。
オレンジ色の「ダイヤ、金、爆弾」と書いてあるブロックの作成を解説します。
左側オレンジのブロックにある、変数を作るをクリックしてください
新しい変数の名称を記載します。
今回はダイヤと記載してOKを押してください。
同様に、金や爆弾という変数を作成すると次のような表示になります。
そして、ダイヤを0にするのようなブロックを右側にドラッグ・アンド・ドロップして次のような状態にすると初期表示が完了します。
移動プログラム
ここでは、ご自身で作成されたSteveを移動させるプログラムを作ります。
今回のゲームとしてSteveの移動自体は無くてもよいのですが、マインクラフト風ゲームとしては、Steveが移動したほうが良いので是非実装してみましょう。
先ほど作成した初期表示プログラムの下に、プログラムを実装する予定です。
初期表示と同様にドラッグ・アンド・ドロップしてみてください。
今回は、右向き矢印を押した時に、x座標を10ずつ変える処理になります。
x座標というのは小学校5年生で学習する1次間数で利用するxとyの座標になります。
今回は上下左右のキーを押した時に、それぞれ座標軸で10動作するように次のように実装してみてください。
在庫追加プログラム
今回、金、ダイヤ、爆弾の3つのアイテムの在庫管理をしてみます。
子供に大人気のダイヤをつかってプログラムの解説をします。
ダイヤの画像を選択した状態で次のプログラムを実装してみてください。
真似することが一番大事です。
ここでは、プログラムを日本語で1行ずつ翻訳すると次のようになります。
緑の旗が押されたとき、
ずっと動作させるんだけど、
もし、1キーが押されたら、
自分自身のコピー(クローン)を作り、
作ったコピーどこかの場所に移動して、
変数ダイヤの値を1ずつ増やして、
0.5秒待って、
作ったコピーを削除する処理をします。
日本語で考えるととてもわかり易いですね。
小学生は自然とこの考え方を持ってプログラムを実装しています。
非常に論理的な思考が自然と身につきます。
これが、プログラミング的思考です。
最後に動作している動画を記載しておきます。
まとめ
今回は、Scratchでマインクラフト風ゲームを作りながら学ぶプログラミング的思考を解説しました。
ゲームだから、子供の遊びだからといって侮れません。
なにより、小学生はScratchでの学習を楽しみながら身につけるのです。
私が企業研修で常々重要だと考えるのが、学習を通じて自分自身の成長を楽しめる研修です。
小学生は研修だとも勉強だとも感じず、ひたすら楽しいと感じ2時間席から動かずプログラミング的思考を身に着けています。
是非、Scratchを試してみて、DX管理者としてプログラミング的思考を身に着けてみてください。
ちなみに下のキャラクター作成のイラストレーターは、作成当時小学生でした。
ドメインが実質0円(年間最大3,882円お得)になるサーバーセット割特典を展開中です。
最新のキャンペーンはこちらから
※ユーザーノートの記事は、弊社サービスをご利用のお客様に執筆いただいております。
アジマッチ有限会社(https://asimatch.com) 社長。基幹システムと連携したWebサービス開発から、AIを利用した機械学習の設計、開発、人材育成まで幅広い業務実績。最近は、スタートアップ企業のマネジメント業務のお声がけいただくことが多いです。