お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2011/11/22 00:00

イベント

「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例

画像集#002のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 2011年11月20日,東京・秋葉原で開発者向けのイベント「スマートフォンゲーム開発者向けUnityエンジンセミナー」が開催された。このイベントでは,最近ガンホー・オンライン・エンターテイメントから発表された,Unityエンジンを使用したスマートフォン向けゲーム「ケリ姫クエスト」を題材にしたゲーム開発についての解説が行われた。
 このセミナーは前後半に分かれており,前半ではガンホーがUnityを導入した経緯や使用してみての知見,注意点などを解説する講演が行われ,後半では参加者が実際にUnityを使っての実習形式で基本的なUnityの使い方などが示された。

ガンホー・オンラインゲ・エンターテイメント ケリ姫クエスト制作統括ディレクター兼プランナー 浅田一輝氏
画像集#001のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 講演を行ったのは,ガンホー・オンラインゲ・エンターテイメントのケリ姫クエスト制作統括ディレクター兼プランナーである浅田一輝氏だ。

 氏は,まずガンホーがUnityを導入するに至った経緯を明かした。なんでも,社内でゲームエンジンを導入してみようという機運が高まり,いろいろなゲームエンジンを試していたそうだ。ガンホーが求めていたものは,手間の少ない「オールインワン」タイプで「マルチプラットフォーム対応」「少人数開発」に向いており,できるだけ「ローコスト」なもの。そんな条件に最も合致したのがUnityだったという。

画像集#004のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 とりあえず,使ってみなければどんなエンジンか分からないということで,ゲームのプロトタイプ開発が行われた。そのゲームのタイトルは「リトルインフィニティ」,夢の中の世界を探検していろんなものを集めて,現実に戻って各自の星に集めたアイテムを配置していき,世界を育てていくというゲームだ。
 ゲームの構成は,二つのパートに分かれており,夢の中の世界となる「収集ステージ」では,3Dの地形が毎回ランダムで生成され,その中を探検する形式。そこで集めたアイテムを配置する「育成ステージ」は,画面に収まる大きさの惑星状のステージとなる。

画像集#003のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例

 開発スタッフは,プランナー1人,プログラマ1人,デザイナー1人の計3人で,開発期間は1.5か月ということでテストプロジェクトが開始された。

画像集#005のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 最初の2週間で,ランダムマップ生成部分が作られた。ざっと見た感じ,ランダムフラクタルをスケーリング/フィルタリングするタイプで,この手のものではオーソドックスな構成だが,植生なども自動配置されるようになっている。
 なお,Unity自体にも地形専用のエディタは標準装備されており,いろんなブラシを使って手描き感覚で地面を盛り上げたり,外部からハイトマップを読み込んだり,木や岩を配置したりといったことはできるようになっている。そういった手動の地形エディタに対して,リトルインフィニティでは,毎回違う3Dマップが自動で生成されるようなものを作り上げている。

ガンホー製のランダムマップ作成機能
画像集#014のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#015のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例

画像集#006のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 次の2週間で,そのマップ上に置くギミックやアバターの操作などが加えられた。物理エンジンを活用したギミックが主体で,道をふさぐ岩を爆破したり,崖に橋をかけたりといった具合だ。そのほか,単にキャラクターを歩き回らせたり,マップ内でいろんなものを採集したりといった,採集ステージの内容全般が作られたという。

画像集#007のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 採集ステージの作業が終わると,次は育成ステージだ。拾ってきたアイテムを星の上に配置する部分などが作られたのだが,前の工程でキャラクターの移動などの基本的な部分は開発が終わっていたため,この部分は1週間で完成したそうだ。

 以上,計5週間と,予定より1週間早く当初企画していた内容はだいたい盛り込まれた。ここで浅田氏が,ほかのプレイヤーとチャットしたり,お互いの星を訪問したりといった部分を加えたいと提案し,ネットワーク対応が進められたという。サーバーソフトウェアは,なにを組み合わせるのがよいかなども比較検討されたそうだが,さすがに期日内にはネットワーク対応は完成には至らなかったとのこと。
 とはいえ,最後の最後で,もっとゲームっぽくしたいと,イベント部分を盛り込み,見事期日内にとりあえずの完成を迎えた。イベント部分はわずか1日の作業でできあがったという。

画像集#008のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#009のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例

 具体的に,上記の内容がゲーム内でどんなものになるのかについては,会場で紹介されたムービーをご覧いただきたい。


 ムービーを見るとそれなりにちゃんとできたゲームになりそうな気配はあるのだが,諸々の事情があって,リトルインフィニティは日の目を見なかったという。しかし,このプロトタイプで得られた知見は,ケリ姫クエスト開発で大いに役立ったようだ。


そして,ケリ姫クエストの開発へ


画像集#011のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 続いて浅田氏は,プロトタイプ開発の過程で自分なりに理解した「Unityの思想」について紹介した。氏によれば,Unityの思想を正しく理解して使うことで生産性が向上するのだという。まず,Unityの核となる概念は「プレファブ」であり,ゲーム設計の段階からプレファブを意識したゲーム作りをすることが重要だと説いていた。

 Unityのプレファブとは,特定のオブジェクトと関連した機能や素材をまとめたもので,ある程度オブジェクト指向を知っている人には,クラスのようなものといえば理解が早いかもしれない。Unity自体にはオブジェクト指向的な側面は多々あるのだが,「GameObject」以外にオブジェクト指向的な用語はほとんど用いられていない。ちなみに,GameObjectという言葉自体はインスタンスのような感じで使われている。

画像集#012のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#013のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例

画像集#025のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例

画像集#027のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
画像集#024のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 プロトタイプ開発でUnityの手ごたえをつかみ,続くプロジェクトとして今回の題材となるケリ姫クエストが作られたわけだが,そこでは最初からプレファブを意識した開発体制がとられたという。すなわち,ゲームステージという大きなプレファブと,地形,キャラクター,モンスター,ギミックといった要素のプレファブが存在する構成で設計され,それらのプレファブを軸として,

  プログラマがロジックを作り
  デザイナーが絵を入れ
  プランナーが調整する


という分担が行われる開発体制がとられている。

 ここでのプログラマの作業は,プランナーが要求する機能を実装し,プランナーが各部を調整できるかたちで仕上げることが中心となる。Unityの場合,各種機能をInspectorペインのGUIでパラメータをいじれるようにしておけば,プランナーやデザイナーでもちょとした調整くらいなら簡単に対応できる。細かなことでプログラマの手を煩わせずにゲームの大部分を作り込めるようになるのだ。

チーム内の役割分担と作業の流れ
画像集#016のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#017のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#018のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#019のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
画像集#020のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#021のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#022のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#023のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例

画像集#025のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 ケリ姫クエストは,各部門が一人ずつだった前回のプロトタイプ開発とは異なり,延べ10人程度が参加したプロジェクトだったという。プログラマやデザイナーが増員されているのだが,あくまでプレファブ単位で並行して開発するのが基本でり,同じプレファブ内を同分野の複数人で触らないようにすることが,トラブルを防ぐコツだそうだ。
 このような分業体制にすることで,Unityに慣れていない人でも開発に参加しやすくなるなどのメリットもあるという。

画像集#028のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#029のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例

 ケリ姫クエストの場合は,メインプログラマとGUI担当プログラマを分け,この2人が中心で,部分的に助っ人が入るといった感じだったようだ。一方,プランナーは,浅田氏一人で乗り切ったという。ガンホーでは,デザイナーはスクリプトなどには一切触らない方針で分業していたそうで,作り込みの部分はもっぱらプランナーが行う体制である。
 プランナーの増員も検討されたようだが,一人で全体を把握しているということが作業の効率を上げていた側面もあって,プランナーを増員するかどうかはトレードオフになるようだ。

ケリ姫クエスト公式サイト(PC用体験版ページあり)



使ってみて分かったUnity開発での注意点


 Unityを使う場合の注意点として,浅田氏は,まずプレファブを入れ子にした場合の挙動を挙げた。
 ケリ姫クエストでは,すでに作っていたプレファブを大きな括りのプレファブにまとめて階層的に管理しようとすると,いままでそのプレファブを参照していた部分のリンクが切れてしまうことが問題になったという。
 グローバルで宣言されているクラスはどこでも使えるが,クラス内に入れてローカルクラスにしてしまうと,外からのスコープが切れてしまうという感じで理解すればよいだろうか。
 この問題に対し,ガンホーではプレファブ自体にプレファブを組み込む形での実装をやめ,プレファブの使用時に動的に子供のプレファブを呼び出すようなコードを追加して階層構造を実現したとのこと。

 また,スマートフォン用などではプログラム容量にも気を遣う必要がある。iOSのAppStoreでは20MB以上はWi-Fiが必須になったり,Android Marketには25MB以上はそもそもアップロードできなかったりと,容量制限がきつい。ケリ姫クエストは38MB程度の容量に達しており,この制限を回避する必要が出てきたという。
 幸い,Unityにはアセットバンドルという機能が用意されており,必要なアセットを実行時にダウンロードしてくることができる。ケリ姫クエストでもこの機能が使われたのだが,ここで注意点が挙げられた。アセットバンドルという機能は,そのアセットで必要なものを丸ごとパッケージしてくれるという便利機能なわけだが,テクスチャや効果音など,すでに読み込まれているものも別物として読み直すため,最終的な容量が膨れ上がってしまうという。ケリ姫クエストの場合,500MB程度になっていたそうだ。
 これについては,細かいバンドルに分けることはやめ,ステージ丸ごとバンドルすることで対応したとのこと。BGMは一つのアセットにまとめるなど,アセットの分け方を機能別にすることなどで,多少は緩和することもできるようだ。

画像集#030のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 そのほか,Unityを使ううえでのコツとして,Asset Storeの活用も挙げられた。Unityでは,ゲームに必要な機能をプレファブとしてまとめたり,ゲームを作るのと同じ要領でアドオンツールを作ることができる。ゲームを開発する過程で,プレファブやアドオンをどんどん作っていくわけだが,そのようにして作られたさまざまなものを販売できるサイトが用意されており,大小さまざまなアセットが公開されている。
 なにか新しい機能がほしい場合は,まずAsset Storeを探したほうがいいと浅田氏は語る。Twitter連動機能やGUIなど,ちょっと気の利いたものを導入したいと思った場合,たいていは,誰かが先に作っているので,それらを活用すれば大幅に開発期間とコストを軽減できるというのは分かりやすい話だろう。
 ただし,質についてはピンキリで,非常に高品質でサポートのよいものもあれば,連絡しても返答までに1か月かかるようなとこともあって,若干注意は必要なようだ。「とりあえず全部買って試せ」というのがお勧めとのこと。かなり安価なものが多いので,全部買っても自前で開発するよりはコストは軽減できるということだろう。また,公式フォーラムではアセットに関する情報交換も盛んなので,評判のよいものを選ぶのもよさそうだ。

UnrealEngineのKismetのように,Unityでグラフィカルにスクリプトを記述できるようにする「uScript」と,Unityにベクターグラフィックスを追加する「RageSpline」
画像集#034のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#035のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例

画像集#031のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 関連して紹介されたのは,公式ではないUnity用アセットの販売サイトだ。こちらはかなり高品質なものが多く,ライセンスについての注意などもしっかり書いてあるそうで,商用レベルで使うにはそういったサイトのほうが信頼できそうだ。
 実際にガンホーが使ったアドオンとしては,「EZ GUI」がセミナー中でも何度か話題になっていた。標準のGUIでは,要素を個別に描画しているため,ちょっと複雑なGUIを作ると,簡単にドローコールが100を超えてしまうのだという。スマートフォンでは,ドローコールが100を超えると描画がかなり厳しくなるため,1回のドローコールで全GUIを描画してくれるEZ GUIは有用だったとのこと。

画像集#032のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
画像集#033のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 セミナーの後半では,ケリ姫クエストの内部ツールとして作られた「スキルエディタ」を用いて,プランナーレベルでもできるUnityでのゲームの調整法などが紹介された。ここからは,聴講者が持参したノートPCを使っての実習形式となる。
 ケリ姫クエストでは,お姫様が兵士や爆弾などを蹴飛ばして標的にぶつけることと,蹴飛ばされた兵士の持っているスキルを発動することで,モンスターにダメージを与えることができる。
 ゲームで実装されているスキルには,例えばソードマンだと昇竜拳のように切り上げたり,アーチャーだと多方向に矢を乱れ撃ちしたりと,職業によりさまざまな種類があるのだが,素材を揃えてパラメータを調整するだけで,それらをまとめて扱えるのが,このスキルエディタである。
 スキルエディタでは,技の方向や強さを変えたり,矢などのオブジェクトの発射数やグラフィックスパターンを変更するなどの単純な指定から,キャラクターの移動方向や移動に要する力の強さ,方向など,汎用的な機能を組み合わせて複雑なスキルを設定することまでできる。
 実習では,Unityエディタの実践的な使い方を交えつつ,スキルエディタの機能を使ってどこまで調整できるかなどが紹介されていた。このようなアドオンを作ってプランナーレベルでゲームを作り込んでいくゲーム制作スタイルでこそ,Unityの本領が発揮できるのだろう。

ケリ姫クエストのスキルエディタ画面
画像集#043のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例

画像集#044のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
 ただし,このスキルエディタを使ってケリ姫クエストのスキルが作られたわけではないのだという。実際の制作中には,すでに浅田氏は,だいたいこんな数値でこんな感じになるというのを把握していたとのことで,ほぼ普通のパラメータ調整だけで仕上げていたようだ。
 じゃあ,スキルエディタはなんのために作ったのかというと,ユーザー向けのスキルのプレビュー機能を作る必要があって,そのためにあとから追加されたものだとのこと。

 最後に,「Unityの導入により,ゲーム制作の工数は間違いなく減るので,その浮いた分の半分でもゲームの質的向上に振り向けてほしい」と,氏はセミナーを締めくくった。

画像集#036のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#037のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
画像集#038のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例 画像集#039のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例

画像集#040のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
IGM取締役執行役員 古畑憲和氏
画像集#041のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
ユニティ・テクノロジーズ・ジャパン 大前広樹氏
 ちなみに,このセミナーを主催しているIGMは,元々各種ゲーム開発用ミドルウェアなどを扱っている会社だが,Unity自体を扱っているわけではない。それでも,昨今のゲーム開発業界でのUnityの勢いは注目に値し,異例なことだが,他社扱いのゲームエンジンでのセミナーを開催したのだという。

 また,セミナー本編の前に挨拶したユニティ・テクノロジーズ・ジャパンの大前広樹氏が,Unityが生まれた経緯についての話を明かしていたので簡単に紹介しておこう。
 2001年,コペンハーゲンで3人の若者がゲームを作ろうとしていたのだが,いつまで経っても企画がまとまらない。企画がまとまらないと,プログラムの作りようがない。業を煮やしたプログラマのヨアキム氏が「なんでも作れるゲームエンジンを作っておく」と始めたのがUnityの原型になるエンジンだったようだ。できあがったゲーム自体はあまり成功しなかったようなのだが,数年経って,自分達が本当に作りたかったのはゲームではなくて,ゲームエンジンのほうだったと気づき,本格的にUnityの開発が始まったのだという。
 「誰でも簡単に3Dゲームが作れる」ような凄いゲームエンジンを作りたいというUnity Technologiesの思いは,コミュニティの支持を得て,いまや80万人の開発者を抱えており,ゲーム業界を席巻するような大きな流れとなりつつある。セミナー当日は,ゲーム業界から熱心な開発者が集まっており,日本でもUnityの輪が広がっていることが確認できた。今後のUnityの展開に注目しよう。

画像集#042のサムネイル/「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
寝そべっている人がヨアキム氏

UNITY公式サイト(日本語)

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:04月25日〜04月26日