ScratchとUnity PlayGroundを授業で活用
そこで今回考えたのが、以下のながれです。このながれに従って、後期13回分のカリキュラムを立てました。
1 : Scratchでプログラミングの概念を学ぶ
2 : Unity PlayGroundで既存のスクリプトを組み合わせて、ゲームをつくるやり方を学ぶ
3 : Unityで新しくスクリプトを組むやり方を学ぶ
4 : Unity PlayGroundとスクリプトを組み合わせて、より複雑なゲーム体験をつくるやり方を学ぶ
実は当初は「あそびのデザイン講座」を最初からひとつずつやっていくことも考えていました。前期ではレベルデザインに特化して活用した「あそびのデザイン講座」の内容を、自分たちの手でコーディングすることで、より理解が深まると考えたからです。ただ、途中で考えを変更しました。昨年度の経験から、スクリプトの習熟度は個人差が大きいことがわかりました。そのため途中でつまずいた学生のモチベーション管理が難しいだろうな......と感じたのです。そこで授業内容をガラッと変えることにしました。
10月11日 第01回 Scratch 1『猫とネズミ』ゲーム制作
10月18日 第02回 Scratch 2『猫とネズミ』ゲーム制作
10月25日 第03回 Unity PlayGround 1 公式チュートリアル
11月01日 第04回 Unity PlayGround 2 『GalaxyWars』チュートリアル
11月08日 第05回 Unity PlayGround 3 オリジナルのシューティングゲーム制作
11月15日 第06回 Unity 1 迷路ゲーム 1 制作
11月22日 第07回 Unity 2 迷路ゲーム 1 制作
11月29日 第08回 Unity 3 迷路ゲーム 2 制作
12月06日 第09回 Unity 4 迷路ゲーム 3 制作
12月13日 第10回 Unity 5 『バルーントリップ』風ゲーム制作
01月17日 第11回 総合演習 1
01月24日 第12回 総合演習 2
01月31日 第13回 総合演習 3
第01回と第02回で使用したScratchは、MITメディアラボが開発し、2006年から無償公開されているプログラミング言語の学習環境です。命令が書かれたブロックを組み合わせることで、プログラミングを行うことができます。ブロックは色や形が工夫されていて、視覚的にもわかりやすく、日本語対応もなされています。
ScratchはWebアプリケーションとして無償提供されており、つくったゲームをネット上で公開するなど、コミュニティプラットフォームとしての機能が存在する点も特徴です。2020年の小学校でのプログラミング教育必修化をきっかけに、国内でも関心度が急上昇しており、多くのプログラミング教室で採用されています。
最初の授業で使用したのは、文部科学省が全国の学校向けに提供しており、Webでも公開されている「小学校プログラミング教育に関する研修教材」です。この中でScratchのチュートリアルとして有名な『猫とネズミ(cat and rat)』ゲームのつくり方が説明されています。
本作はランダムに動く猫を避けつつ、マウスでネズミを操作して画面上のチーズを全部取るというゲームで、プログラミングの初心者にも無理なくこなせる内容です。実際、大半の学生がScratchに触れるのは初めてでしたが、楽しんで制作してくれました。第2回目の授業では『猫とネズミ』ゲームの制作を終えて、自分なりに考えたオリジナルゲームの制作に進んだ学生もいました。
以下の2作は、学生の原案をもとに筆者が作成したゲームです。
scratch.mit.edu/projects/335956418/
scratch.mit.edu/projects/337645996/
▲授業風景
Quittaで自作チュートリアルを作成
第03回から使用したUnity PlayGroundは、2019年1月にUnityから公開された初心者向けのゲーム開発フレームワークです。通常のUnityがベースとなっており、2Dのアセットや主要なスクリプト、6種類のゲームサンプルが用意されています。公式マニュアルやチュートリアルが手厚いのも特徴で、そのうちのいくつかは日本語訳もされています。同社の安原広和氏によって「Unity道場幕張スペシャル3」で紹介されており、安原氏が授業で使用した教材もWeb上で公開されています。
▲Unity PlayGroundのゲームサンプルのひとつ
ただ、これまでの経験から、初心者はひとつずつ、段階をおって、噛んで含めるように説明していかなければ簡単に脱落してしまうことがわかってきました。そこで、まずはUnity Playgroundのマニュアルで紹介されている、隕石にぶつからないように宇宙船を操作して、スターを集めるゲームのチュートリアルを制作しました。当初はWordやPDFでの配布も検討しましたが、いくつか無償サービスを試したところ、プログラマのための技術情報共有サービスQiitaが使いやすいことがわかりました。こちらが自作のチュートリアルとなります。
▲隕石にぶつからないように宇宙船を操作して、スターを集めるゲームのサンプル
続いて制作したのが、立命館大学 映像学部 09ゼミ(Asobi Lab)の奥出成希教授が制作した『ギャラクシーウォーズ』風ゲームのチュートリアルです。YouTubeで動画も公開されていますが、細かい部分がわかりにくいので(Qiitaではスクリーンショットをワンクリックで拡大できるので便利です)、自分で手順を確認しながらチュートリアルを作成しました。ただ、授業で公開した際はいくつかまちがいがあり、学生に無用な混乱をさせてしまいました。授業で実際に投入する前に、第三者に試してもらって、バグチェックをしてもらうことが大事ですね......。自作チュートリアルはこちらです。
▲『ギャラクシーウォーズ』風ゲームのサンプル
また、第06回では過去2回の経験をもとに、オリジナルのシューティングゲームをUnity PlayGroundでつくってもらうことを考えていました。しかし、残念ながらそこまで到達できた学生はいませんでした。原因のひとつとなったのが、前述した課題のバグです。初心者は教科書通りにつくってきちんと動かないと、つい自分が悪かったと思いがちですよね......。そうじゃないんです。教科書の方がまちがっていることもあるんです......平身低頭です。用意しておいた課題はこちらになります。
▲授業風景
以上の準備期間を終えた後で、第06回から本格的にUnityを用いた演習をスタートさせました。題材としたのが、2017年に制作した迷路ゲームです(このゲームは、連載の第2回で紹介しています)。カーソルキーで床を傾けながら、ボールをゴールまで誘導するというもので、「ボールを動かす」ことと「床を傾けて、間接的にボールを操作する」ことのちがいについて理解してもらうことが目的でした(ちなみに、ここでも教材にまちがいが散見されました。ColliderのIs Trigerのチェック漏れです。おかげで、ボールがゴールに到着したり、障害物に当たっても、ゴールやミスの表示が行われず、迷惑をかけました......)。自作チュートリアルはこちらです。。
▲迷路ゲームのサンプル
続いて迷路ゲームが完成した学生には、その内容をベースにリプレイボタンと、タイム&ベストタイムの各UIを追加してもらうことにしました。中でも大きいのがタイムの追加で、これによってゲームの目的が「障害物を避けてゴールにたどり着く」から、「いち早くゴールにたどり着く」に上書きされます。その結果、求められるレベルデザインが変化することになります。前者の場合、ともすればレベルデザインが複雑になりがちですが、後者ではゴールにたどり着くことが前提で、その上で細かいテクニックを競う遊びになるため、レベルデザインがシンプルになることが期待されます。自作チュートリアルはこちらです。
▲リプレイボタンと、タイム&ベストタイムの各UIを追加した迷路ゲームのサンプル
その上で年内最後の授業として行なったのが、Unity PlayGroundでゲームをつくり、スクリプトで機能を拡張する演習です。題材にあげたのはファミコン向けゲーム『バルーンファイト』に収録されている『バルーントリップ』。この基本的なゲームメカニクスをUnity PlayGroundで再現し、新たにリプレイボタンをつけてもらうことにしました(なお、Unity PlayGroundに収録されているLoadLevelでは上手く動かなかったため、自作の簡単なスクリプトをつけています)。こんな風にUnity PlayGroundをベースに、スクリプトで少しずつ機能を拡張していくことで、学生がちょっとしたアイデアをすぐに実装して確かめられるようになればいいなあと感じています。自作チュートリアルはこちらです。
▲『バルーントリップ』風ゲームのサンプル
もっとも、授業時間の関係で『バルーントリップ』風ゲームの制作を開始したのは、全学生の一部にすぎませんでした。そこで年明けからの3回分の授業を自由演習時間として、好きなゲームをつくってもらうことにしました。前記の授業結果から、メカニクスが確定すれば、レベルデザインについてはそこそこできることがわかっています。どういった発想のゲームが出てくるか楽しみです。
次回の更新は2月以降を予定しています。お楽しみに。
プロフィール
-
PHOTO_弘田 充 / Mitsuru Hirota -
小野憲史
ゲームジャーナリスト
1971年生まれ。関西大学社会学部を卒業後、「ゲーム批評」編集長などを経て2000年よりフリーのゲームジャーナリストとして活動。CGWORLD、毎日新聞、Alienware zoneなどWeb媒体を中心に記事を寄稿し、海外取材や講演などもこなす。ほかにNPO法人IGDA日本名誉理事・事務局長、ゲームライターコミュニティ世話人など、コミュニティ活動にも精力的に取り組んでいる。2017年5月より東京クールジャパン、2019年4月よりヒューマンアカデミー秋葉原校で、それぞれ非常勤講師に就任。
本連載のバックナンバー
No.01:「あそびのデザイン講座」活用レポート
No.02:Unityスクリプトに初挑戦
No.03:Unityアセットストアに初挑戦
No.04:新年度がスタートし、ゼロから仕切り直して授業設計
No.05:到達度のちがいをどのように捉えるか?
No.06:あそびのデザインとMDAフレームワーク
No.07:「あそびのデザイン講座」の根底に流れるデザイン思想とは?
No.08:遊んで楽しい、つくって楽しい、そして......
No.09:レベルデザインで変わるゲーム体験
No.10:サンプルを魔改造してランゲームをつくる
No.11:日本のゲーム教育で学校に求められることとは何か?
No.12:現実を抽象化・誇張化するとゲームになる
No.13:メカニクスとレベルデザインの接続