>   >  新人講師がゼロから挑むUnityによる人材教育:No.10:サンプルを魔改造してランゲームをつくる
No.10:サンプルを魔改造してランゲームをつくる

No.10:サンプルを魔改造してランゲームをつくる

ゲーム専門学校の新人講師がUnityを勉強しながら、「ゲームのおもしろさとは何か」について授業を行う泥縄式レポートの第十弾。水先案内人になるのがユニティ・テクノロジーズ・ジャパン(以後、ユニティ)から提供中の無料教材「あそびのデザイン講座」だ。今回はランゲームのサンプルを提供し、それを元に自由に改造してもらいながら、レベルデザインについて学ぶ様子をレポートする。

TEXT_小野憲史 / Kenji Ono
EDIT_尾形美幸 / Miyuki Ogata(CGWORLD)

魔改造レベルデザインを実施

お久しぶりです。泥縄式授業が身上のゲームジャーナリスト兼、専門学校東京ネットウエイブ非常勤講師の小野憲史です。3月になり、2018年度の授業もすべて終了。卒業制作展示会などの学校行事をこなしつつ、次年度に向けて授業準備を進められている......そんな季節ではないでしょうか。自分が受け持つ「ゲームメディア概論」も1月18日、1月25日、2月1日の3回で終了しましたので、簡単にふり返ってみたいと思います。

以前にも触れましたが「あそびのデザイン講座」は「スロープをつくってボールを転がす(0〜4回)」「ピンボールゲームをつくる(5〜11回)」「ランゲームをつくる(12〜17回(予定))」という三部構成をとっています。その上で本授業とのからみでいえば、前回まででピンボール編が終了し、今回から新たに、自由に動かせるキャラクターを使って簡単なランゲームをつくっていくことになります。ただし、授業時点で第14回までの教材しか公開されておらず、残りの授業回数もちょうど3回でしたので、この3回分をまるっとまとめて、ランゲームによるレベルデザイン演習を行いました。

具体的にはカーソルキーでオブジェクトを操作し、ゴールエリアにたどり着くと「GOAL」と表示されて処理が終了するステージを用意します。触れると「ジャンプする」「ダッシュする」「跳ね返る」「爆破する(ミスとなる)」オブジェクトもPrefabとして配置します。その上でステージを自由に拡張したり、前述のPrefabを自由に配置したりして、オリジナルのステージを作成してもらうというわけです。ステージ完成後は、Windows 10付属のゲームバー機能でプレイ動画を作成し、後期の課題として提出してもらいました。

要するにサンプルステージを用意して、これを自由に魔改造してください、というわけですね。スクリプトを作成する必要がないので、Unityに苦手意識をもっていた学生も、比較的楽しんで演習を進めてくれたようです。

▲授業風景


1月18日 遊びのデザイン講座 第12回「自由に動くプレイヤー」
サンプルステージを改造してもらい、後期課題として提出することを説明

1月25日 遊びのデザイン講座 第13回「演出効果・パーティクル」
合わせてカメラシステムについて補足

2月1日  遊びのデザイン講座 第14回「驚きとめまい」
合わせてレベルデザインについて解説 

ただし、授業を進める上で課題がありました。「あそびのデザイン講座」の第13回では爆発エフェクトをUnity Asset Storeからダウンロードするやり方が紹介されています。しかし教室内の一部PCで無線LANによるインターネット接続が完全ではなく、Unity Asset Storeにアクセスできない状況が予測されました。そのため事前に「Unityのパーティクルシステムで爆発を作る_からあげ編」の内容を参考に、Githubで公開されているデータを活用して、エフェクトを組み込んでおきました。鶏のからあげの写真を素材にして爆発のエフェクトをつくるというユニークな内容で、Web上で具体的なやり方が解説されています。

▲魔改造してもらったサンプルステージ


また、実際に授業を進める過程で気づきがありましたので、授業内で適時補足を試みました。

はじめに第14回までの内容ではカメラの位置が固定されているため、ステージを拡張していくと画面から見切れてしまう問題が発生しました。これを防ぐにはカメラをステージから遠ざけるしかなく、キャラクターが小さくなってしまいます。そのためキャラクターの移動にともない、カメラが追随するようにスクリプトを自作し、設定方法と合わせて資料を作成して、学生に配布しました。参考にしたのは公式サイトの「カメラでプレイヤーを追う」チュートリアルページです。

もっとも、学生の中には自分でネットを検索したり、Unity Asset Storeで必要なカメラを適時インストールしたりして、自分で解決した者もいました。また、これにともないサイドビューではなく、ステージ全体を90度回転させて、サードパーソンビュー(画面の奥に向かってキャラクターが進んでいく)のステージを作成した者もいました。ほとんどの学生がUnityの初心者でしたが、1年間授業を進めていく中で泥縄式制作、もとい必要な情報をその都度、自分で調べながら制作していくやり方を習得してきたようです。

その一方で学生の作業を見ていると、特定の方針を決めることなく、自由に(あまりに自由に)レベルデザインを進めている印象を受けるようになりました。「遊びのデザイン講座」でも「ゴールを明確に示す」「適度な不安や緊張を克服するよう考えさせることが、あそびにゲームの楽しさを与える」(第12回)と解説されているのですが、あまり深く理解できていないようでした。そこでユニティの大野功二氏がワークショップで解説したレベルデザインに関する資料「ProBuilderで学ぶレベルデザイン」を参考にしつつ、MDAフレームワークの復習も兼ねて、ユーザー体験を念頭においたレベルデザインのコツについて、簡単に解説しました。

▲「あそびのデザイン講座」PDFの抜粋


ピンボール編で何度も解説したように、同じメカニクスでもレベルデザインのちがいでユーザー体験は変化します。ランゲームでも同様で、スピードスケートのリンクのようなステージと、「電撃イライラ棒」のようなステージでは、体験の質が異なります。そこでサンプルとして提示したのがモータースポーツのサーキットです。多くのサーキットではホームストレートとバックストレートがあり、両者がコーナーの連続でつながっています。これにより、直線でスピードを出す爽快感と、コーナーをテクニカルに攻める楽しさを盛り込み、緩急のリズム感を生み出しているのです。ほかにジェットコースターのコースレイアウトなど、レベルデザインの参考になる情報は、身の回りに多数存在します。

▲筆者が自作した講義用スライド
※ スライド内の画像は、以下のWebサイトより引用させていただきました。
www.seaside-circuit.com/course/ko-suzu.html


一方で学生が提出した動画を見ると、ジャンプを効果的に活用した作品が多いのが印象的でした。中には建築中のビルのように足場だけを設定し、どんどん上にジャンプを繰り返してゴールを目指すステージや、2つの小さいステージを大ジャンプでつなげたようなステージもありました。サンプルとして用意したメカニクスの中でも、ジャンプの爽快感が学生の心をとらえたようです。また数は少ないながら、作成したレベルにタイトルをつけた学生もいました。タイトル決めはステージのコンセプト策定や、ユーザー体験を念頭においたレベルデザインの基礎ともいえるものです。自分も演習前に、タイトルを設定した上で取りかかるように指導すればよかったと反省しました。

これに対して時間の関係か、サンプル以上のメカニクスを組み込んだ学生はいませんでした。過去の授業で行なったような、タイマーやスコア、サウンド、オブジェクトの回転などの要素です。その一方でWebの地図サービスの検索結果をキャプチャしてステージのテクスチャ素材に使用し、最寄り駅から学校までのルートをもとにレベルデザインを行なった学生がいたことには驚かされました。ジャンプを駆使しなければ到達できない「隠しゴール」も設定するなど、なかなか凝ったつくりでした。今後「パックマン」のような鬼ごっこのメカニクスを加えると、おもしろいゲームに発展しそうです。また本演習の派生形として、プレイ動画にBGMをつけて映像作品にするなどの可能性も感じられました。

▲筆者が自作したランゲームの作例


自分もサーキットをテーマに改造を試みました。当初は立体的なコースをつくることを目的としましたが、操作キャラクターがCylinder(円柱)のままでは影が自動生成されず、高さがつかみにくいように感じられました。いくつか試してみたところ、操作キャラクターをSphere(球)にすると影が生成されましたので、そのまま採用しました。その上で転がる様がわかりやすいように、Materialにテクスチャを貼っています。ほかに操作キャラクターが高く上がりすぎないようにするため、下向きにBounceさせる透明の天井を空中に設定したり、公式チュートリアルサイト「アイテムを数え、スコアを表示する」を参考に周回数を数え、2周したらゴールするようにしたりと、いろいろ遊んでみました。調子に乗ってタイマー機能も組み込んであります。もっともゴールしてもカウントが止まらない「なんちゃってタイマー」に留まってしまいましたが......。

これ以外にもBGMを鳴らしたり、SEの種類を増やしたり、キャラクターの挙動を調整したり、色ちがいのキャラクターを表示して画面分割で対戦できるようにしたり......と、妄想はいろいろと広がっていきます。実際、時間をかけて調整すればするほど、総合的なゲーム体験は向上していきます。もっとも、なにごとも締切が存在するのも事実。壁の配置などもガタガタで心苦しいのですが、今回はここまでとしました。

※ ちなみにUnityでは画面分割によるマルチプレイ化が比較的簡単に実現できます。自分も下記ブログを参考に、コードを1行も書くことなく実現できました。ここから対戦レースゲームなどにも発展させられそうです。学生が希望する定番ネタでもあるので、「あそびのデザイン講座」でも15回以降で補則解説があるとおもしろいかもしれません。

・画面分割について
www.urablog.xyz/entry/2017/11/26/081423

・複数人プレイにおける入力設定について
gametukurikata.com/program/offlinecompetition


次ページ:
年間を通した授業内容を学生が判定

その他の連載