イベント
「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
このセミナーは前後半に分かれており,前半ではガンホーがUnityを導入した経緯や使用してみての知見,注意点などを解説する講演が行われ,後半では参加者が実際にUnityを使っての実習形式で基本的なUnityの使い方などが示された。
氏は,まずガンホーがUnityを導入するに至った経緯を明かした。なんでも,社内でゲームエンジンを導入してみようという機運が高まり,いろいろなゲームエンジンを試していたそうだ。ガンホーが求めていたものは,手間の少ない「オールインワン」タイプで「マルチプラットフォーム対応」,「少人数開発」に向いており,できるだけ「ローコスト」なもの。そんな条件に最も合致したのがUnityだったという。
ゲームの構成は,二つのパートに分かれており,夢の中の世界となる「収集ステージ」では,3Dの地形が毎回ランダムで生成され,その中を探検する形式。そこで集めたアイテムを配置する「育成ステージ」は,画面に収まる大きさの惑星状のステージとなる。
開発スタッフは,プランナー1人,プログラマ1人,デザイナー1人の計3人で,開発期間は1.5か月ということでテストプロジェクトが開始された。
なお,Unity自体にも地形専用のエディタは標準装備されており,いろんなブラシを使って手描き感覚で地面を盛り上げたり,外部からハイトマップを読み込んだり,木や岩を配置したりといったことはできるようになっている。そういった手動の地形エディタに対して,リトルインフィニティでは,毎回違う3Dマップが自動で生成されるようなものを作り上げている。
以上,計5週間と,予定より1週間早く当初企画していた内容はだいたい盛り込まれた。ここで浅田氏が,ほかのプレイヤーとチャットしたり,お互いの星を訪問したりといった部分を加えたいと提案し,ネットワーク対応が進められたという。サーバーソフトウェアは,なにを組み合わせるのがよいかなども比較検討されたそうだが,さすがに期日内にはネットワーク対応は完成には至らなかったとのこと。
とはいえ,最後の最後で,もっとゲームっぽくしたいと,イベント部分を盛り込み,見事期日内にとりあえずの完成を迎えた。イベント部分はわずか1日の作業でできあがったという。
具体的に,上記の内容がゲーム内でどんなものになるのかについては,会場で紹介されたムービーをご覧いただきたい。
ムービーを見るとそれなりにちゃんとできたゲームになりそうな気配はあるのだが,諸々の事情があって,リトルインフィニティは日の目を見なかったという。しかし,このプロトタイプで得られた知見は,ケリ姫クエスト開発で大いに役立ったようだ。
そして,ケリ姫クエストの開発へ
Unityのプレファブとは,特定のオブジェクトと関連した機能や素材をまとめたもので,ある程度オブジェクト指向を知っている人には,クラスのようなものといえば理解が早いかもしれない。Unity自体にはオブジェクト指向的な側面は多々あるのだが,「GameObject」以外にオブジェクト指向的な用語はほとんど用いられていない。ちなみに,GameObjectという言葉自体はインスタンスのような感じで使われている。
プログラマがロジックを作り
デザイナーが絵を入れ
プランナーが調整する
という分担が行われる開発体制がとられている。
ここでのプログラマの作業は,プランナーが要求する機能を実装し,プランナーが各部を調整できるかたちで仕上げることが中心となる。Unityの場合,各種機能をInspectorペインのGUIでパラメータをいじれるようにしておけば,プランナーやデザイナーでもちょとした調整くらいなら簡単に対応できる。細かなことでプログラマの手を煩わせずにゲームの大部分を作り込めるようになるのだ。
このような分業体制にすることで,Unityに慣れていない人でも開発に参加しやすくなるなどのメリットもあるという。
ケリ姫クエストの場合は,メインプログラマとGUI担当プログラマを分け,この2人が中心で,部分的に助っ人が入るといった感じだったようだ。一方,プランナーは,浅田氏一人で乗り切ったという。ガンホーでは,デザイナーはスクリプトなどには一切触らない方針で分業していたそうで,作り込みの部分はもっぱらプランナーが行う体制である。
プランナーの増員も検討されたようだが,一人で全体を把握しているということが作業の効率を上げていた側面もあって,プランナーを増員するかどうかはトレードオフになるようだ。
ケリ姫クエスト公式サイト(PC用体験版ページあり)
使ってみて分かったUnity開発での注意点
Unityを使う場合の注意点として,浅田氏は,まずプレファブを入れ子にした場合の挙動を挙げた。
ケリ姫クエストでは,すでに作っていたプレファブを大きな括りのプレファブにまとめて階層的に管理しようとすると,いままでそのプレファブを参照していた部分のリンクが切れてしまうことが問題になったという。
グローバルで宣言されているクラスはどこでも使えるが,クラス内に入れてローカルクラスにしてしまうと,外からのスコープが切れてしまうという感じで理解すればよいだろうか。
この問題に対し,ガンホーではプレファブ自体にプレファブを組み込む形での実装をやめ,プレファブの使用時に動的に子供のプレファブを呼び出すようなコードを追加して階層構造を実現したとのこと。
また,スマートフォン用などではプログラム容量にも気を遣う必要がある。iOSのAppStoreでは20MB以上はWi-Fiが必須になったり,Android Marketには25MB以上はそもそもアップロードできなかったりと,容量制限がきつい。ケリ姫クエストは38MB程度の容量に達しており,この制限を回避する必要が出てきたという。
幸い,Unityにはアセットバンドルという機能が用意されており,必要なアセットを実行時にダウンロードしてくることができる。ケリ姫クエストでもこの機能が使われたのだが,ここで注意点が挙げられた。アセットバンドルという機能は,そのアセットで必要なものを丸ごとパッケージしてくれるという便利機能なわけだが,テクスチャや効果音など,すでに読み込まれているものも別物として読み直すため,最終的な容量が膨れ上がってしまうという。ケリ姫クエストの場合,500MB程度になっていたそうだ。
これについては,細かいバンドルに分けることはやめ,ステージ丸ごとバンドルすることで対応したとのこと。BGMは一つのアセットにまとめるなど,アセットの分け方を機能別にすることなどで,多少は緩和することもできるようだ。
なにか新しい機能がほしい場合は,まずAsset Storeを探したほうがいいと浅田氏は語る。Twitter連動機能やGUIなど,ちょっと気の利いたものを導入したいと思った場合,たいていは,誰かが先に作っているので,それらを活用すれば大幅に開発期間とコストを軽減できるというのは分かりやすい話だろう。
ただし,質についてはピンキリで,非常に高品質でサポートのよいものもあれば,連絡しても返答までに1か月かかるようなとこともあって,若干注意は必要なようだ。「とりあえず全部買って試せ」というのがお勧めとのこと。かなり安価なものが多いので,全部買っても自前で開発するよりはコストは軽減できるということだろう。また,公式フォーラムではアセットに関する情報交換も盛んなので,評判のよいものを選ぶのもよさそうだ。
実際にガンホーが使ったアドオンとしては,「EZ GUI」がセミナー中でも何度か話題になっていた。標準のGUIでは,要素を個別に描画しているため,ちょっと複雑なGUIを作ると,簡単にドローコールが100を超えてしまうのだという。スマートフォンでは,ドローコールが100を超えると描画がかなり厳しくなるため,1回のドローコールで全GUIを描画してくれるEZ GUIは有用だったとのこと。
ケリ姫クエストでは,お姫様が兵士や爆弾などを蹴飛ばして標的にぶつけることと,蹴飛ばされた兵士の持っているスキルを発動することで,モンスターにダメージを与えることができる。
ゲームで実装されているスキルには,例えばソードマンだと昇竜拳のように切り上げたり,アーチャーだと多方向に矢を乱れ撃ちしたりと,職業によりさまざまな種類があるのだが,素材を揃えてパラメータを調整するだけで,それらをまとめて扱えるのが,このスキルエディタである。
スキルエディタでは,技の方向や強さを変えたり,矢などのオブジェクトの発射数やグラフィックスパターンを変更するなどの単純な指定から,キャラクターの移動方向や移動に要する力の強さ,方向など,汎用的な機能を組み合わせて複雑なスキルを設定することまでできる。
実習では,Unityエディタの実践的な使い方を交えつつ,スキルエディタの機能を使ってどこまで調整できるかなどが紹介されていた。このようなアドオンを作ってプランナーレベルでゲームを作り込んでいくゲーム制作スタイルでこそ,Unityの本領が発揮できるのだろう。
じゃあ,スキルエディタはなんのために作ったのかというと,ユーザー向けのスキルのプレビュー機能を作る必要があって,そのためにあとから追加されたものだとのこと。
最後に,「Unityの導入により,ゲーム制作の工数は間違いなく減るので,その浮いた分の半分でもゲームの質的向上に振り向けてほしい」と,氏はセミナーを締めくくった。
IGM取締役執行役員 古畑憲和氏 |
ユニティ・テクノロジーズ・ジャパン 大前広樹氏 |
また,セミナー本編の前に挨拶したユニティ・テクノロジーズ・ジャパンの大前広樹氏が,Unityが生まれた経緯についての話を明かしていたので簡単に紹介しておこう。
2001年,コペンハーゲンで3人の若者がゲームを作ろうとしていたのだが,いつまで経っても企画がまとまらない。企画がまとまらないと,プログラムの作りようがない。業を煮やしたプログラマのヨアキム氏が「なんでも作れるゲームエンジンを作っておく」と始めたのがUnityの原型になるエンジンだったようだ。できあがったゲーム自体はあまり成功しなかったようなのだが,数年経って,自分達が本当に作りたかったのはゲームではなくて,ゲームエンジンのほうだったと気づき,本格的にUnityの開発が始まったのだという。
「誰でも簡単に3Dゲームが作れる」ような凄いゲームエンジンを作りたいというUnity Technologiesの思いは,コミュニティの支持を得て,いまや80万人の開発者を抱えており,ゲーム業界を席巻するような大きな流れとなりつつある。セミナー当日は,ゲーム業界から熱心な開発者が集まっており,日本でもUnityの輪が広がっていることが確認できた。今後のUnityの展開に注目しよう。
寝そべっている人がヨアキム氏 |
UNITY公式サイト(日本語)
- この記事のURL: