中規模開発ならではの、ユニティの意外な「落とし穴」とは?『三国志コンクエスト』ポストモータム

爆発的な規模で拡大しているデンマーク製ゲームエンジン「ユニティ」。無料版で作ったゲームを商用販売することも可能とあって、日本をはじめとしたアジア圏で急激にシェアを伸ばしています。中でも国内で熱いのがソーシャルゲームのスマホ対応用途です。

ゲームビジネス 開発
ユニティの「中の人」となった伊藤周氏
ユニティの「中の人」となった伊藤周氏 全 15 枚 拡大写真
爆発的な規模で拡大しているデンマーク製ゲームエンジン「ユニティ」。無料版で作ったゲームを商用販売することも可能とあって、日本をはじめとしたアジア圏で急激にシェアを伸ばしています。中でも国内で熱いのがソーシャルゲームのスマホ対応用途です。

しかし、もともとユニティはインディーズ向けにデザインされたこともあり、中規模(十数人)以上のプロジェクトでは注意が必要です。一方で欧米市場ではXBLAやSteamなどのデジタル配信プラットフォームが成長しており、インディゲームといえども「大作化」が進んできました。もはや一昔前のパッケージゲームに迫る完成度のものが、数多く販売されるようになっています。

つまり日本では大手によるスマホ向けソーシャルゲーム開発、欧米ではコンソールやPCベースのインディゲーム開発で、ユニティによる中規模プロジェクトが増殖中。しかし、そこには特有の落とし穴があるようで・・・。

元セガで『三国志コンクエスト』の開発にメインプログラマーとして参加し、現在はユニティ・テクノロジーズ・ジャパンのエバンジェリストとして活躍中の伊藤周氏は、古巣の開発事例をもとにTIPSを語りました。題して「中規模Unityゲーム開発のポストモーテム~三国志コンクエスト SEGAの事例~」です。

ユニティの「中の人」となった伊藤周氏会場は満員となり注目度の高さが伺えた


■EZ GUIは共同作業が考慮されていない?

『三国志コンクエスト』はセガが運営するiOS向けソーシャルゲームです。プレイヤーは三国時代を生きる英雄となり、内政と戦争を繰り返しながら、乱世の統一をめざしていきます。ゲームは街を発展させ、他国と戦争を行うシミュレーションパートと、一騎当千アクションを行いながら、武将カードなどを入手するアクションパートの繰り返しで進んでいきます。

内政や合戦を行うシミュレーションパート武将カードなどを集めるアクションパート大量のメニューや画面が存在する


開発プロジェクトは2011年6月から2012年1月までの7ヶ月で、現在も運営とアップデートが継続中です。アクション部分は60FPSの可変フレームレートで、iPhone4Sで常時35-40FPS程度。ライトマップなどの今風のライティングはなく、陰影表現はすべてテクスチャに焼き付けられています。キャラクターの影は黒丸の板ポリゴンを足下に置く「丸影」で、これもフィールドに凹凸が存在しないからです。

一方でキャラクターのアニメーションは230種類とこだわりました。アクションパートのコンセプトは「できるだけフィールド上に多くの敵を表示して、一騎当千のアクション感を演出すること」。プレイヤーキャラクターは約1000ポリゴンなのに対して、雑魚キャラは約300-400ポリゴンといった仕様も、検証を繰り返しながら、このサイズに落ち着いていったといいます。

主人公キャラの仕様雑魚キャラの仕様
ボスキャラの仕様ステージの仕様


続いて伊藤氏はユニティの長所として「描画エンジンが最初からある」「トライ&エラーが簡単にできる」「デザイナー・プランナーがすぐに使えた」という3点を上げました。特に前二者は強力で、プランナーの仕様に即してサクッと動くモノを創り上げ、実際に遊んでもらい、おもしろさを検証しながら取捨選択ができたとのこと(当初アクションパートは今とはまったく違う内容だったそうです)。逆に苦労した点として「当時は情報が少なかった(現在は解消)」「GUIの実装」「ルールの厳格化」を上げました。まさに後者2点が中規模開発、すなわちチーム開発ならではの障壁となったのです。

前述の通り本作は戦略シミュレーションとアクションゲームの融合タイプ。すなわち内政や外政などの画面やGUI(メニュー)が大量に存在します。一方でユニティでは、当初これらのゲームをそれほど強く意識していた節がなく、強力なGUI管理ライブラリが存在しませんでした。こうした中で昨年夏にアセットストアに登場したのが「EZ GUI」です。現在ではユニティで本格的なGUIを作成するための標準的なライブラリになっています。

しかし伊藤氏は自身の経験から「EZ GUIはGUI担当が複数人いるチーム、すなわち中規模開発を想定して作られていないのでは」と語りました。ユニティでは3Dオブジェクトの情報(座標データ、ボーンデータ、テクスチャ、Scriptなど)を「プレハブ」という概念にまとめて管理していきますが、EZ GUI上で共同作業を進めていくと、これらの関係が破綻しやすいのです。

EZ GUIを複数で使う時の典型的な問題これらの対策で「落とし穴」を回避


そのため伊藤氏は解決方法として▽基本的にプレハブをシーン間で共有してはいけない▽シーンマテリアルを共有化する▽シーン単位でビルドアトラスする▽プレハブはシーンに含めない--などの対策が重要だと言います。こちら(http://togetter.com/li/212609)のツイートでは、まさに伊藤氏が開発中に直面した問題が、周囲のアドバイスをもとに解決されていく様子が、生々しく整理されています。

■本当に美味しいのは二作目から

ここで話はユニティが非プログラマに対して、どのように浸透していったかに移りました。アーティストに対しては「テクスチャの変更やGUIの位置修正など、できるところから、少しずつ慣れていってもらった。最終的にはスクリプト以外はすべて任せられるのでは」と語りました。一方プランナーに対しては、パラメータはExcelで管理してもらったとのこと。これには本作がソーシャルゲームで、データベース連動型のゲームデザインであったことが影響しました。

他に援軍となったのが「PlayMaker」です。同じくアセットストアで販売されている追加ライブラリで、スクリプトをGUIベースで組むことができるというもの。これをチュートリアルとGUI制御に使用したところ、決められた手順通りにプレイヤーが操作を行っているかが、簡単に判定できたそうです。一方で敵キャラクターのAIに使用したところ、重くて使い物にならず、あきらめることになりました。

伊藤氏はユニティといえども、エディタやツールの改善は生産性向上に必須だと語ります。具体的にはシーン分割や、マテリアルの検索、プレハブの分割などです。「ユニティの対応を待つよりは、自分で改造した方が早い。できれば専任者がいるといいですね」(伊藤氏)。特にアーティストは問題の本質がわからず、延々と単調な作業を続けてしまう傾向があるので、アーティストが何度も同じタイミングでマウスクリックを繰り返し始めたら、要注意。プログラマ側で気がついて、対応することが重要とのことです。

PlaymakerはGUIベースのスクリプトエディタ「分割して統治せよ、話はそれからだ」の図ボタンをポチると全自動でビルドが実現


続いてトピックはコンフリクト問題へと移りました。そもそも論として複数の開発者が1つのシーンデータをいじると、必ず衝突や摩擦が発生します。そこでの解答は「分割して統治せよ」。シーンの分割、担当者の分割、プレハブの分割など、あらかじめ大きな問題を構造ごとに分割しておきます。その上で担当者を明確にしておき、誰かがデータを触る時は「触ります宣言」をチーム内で行うように、ルールを明確にしたそうです。

これなどは中規模だからこそ可能なやり方でしょう。1人でゲームを作るなら、こんな面倒なことはしなくてもすみますし、100人以上のチームでは、もっと確実な進捗管理システムが求められます。本作でもアクションのシステムをプログラマがいじったり、背景をアーティストがいじって後でくっつける、などの「前近代的」なやり方が多用されました。もっとも、これは中規模だからこそ可能なやり方。考えてみればこの程度の規模感による、アナログな開発スタイルが日本には適しているのかもしれません。

またスマホなどのモバイル端末ならではの問題として、メモリが慢性的に不足しがちな点が上げられました。特にiPod touchで不足しがちなので、定期的にチェックを行って確認したり、ガベージコレクション(不要なメモリ領域を自動的に解放する機能)の活用が推奨されるとのことです。

このほかプログラムのビルドやテストを自動化するためのツール「Jenkins」を導入することが強く推奨されました。Jenkinsを導入する前はプログラムのビルドは手作業で行われていましたが、ケアレスミスなどが頻発。この手間が導入によって解消され、CI(継続的インテグレーション)が可能になったそうです。まさに「ボタンをポチる」だけでビルドサーバー上からiPhoneにインストールできる環境を実現。ここで大きなブレイクスルーが生まれたと語られました。

中規模ならではの泥臭いスタイルが実際は有効


「いくらユニティだからといって、導入部が楽になるくらいで、簡単にゲームが作れるわけではない」(伊藤氏)。もっとも、一作目を作ってノウハウが蓄積されたので、二作目以降は開発負荷が減るだろうと伊藤氏は予測します。また中規模開発ならではのボトルネックについては、積極的にツール開発で対応していくこと。さらにJenkinsの導入が強く推奨されました。「動くバージョンが常にあるのは、心の安定になります」(伊藤氏)。いうなればユニティを導入した結果、開発チームはワークフローまで改善する必要に迫られたわけですが(でなければユニティ導入の意味がない)、これをすませた二作目からが「収穫期」になることは疑いないと言えそうです。

冒頭で示したとおり、本作のリリース後はセガを退職し、ユニティの「中の人」になった伊藤氏。講演終了後は「これまで外部ユーザーとして感じていた要望を、これからは内側から解決していき、多くの人に広めていきたい」と抱負を語っていました。

《小野憲史》

この記事の写真

/
【注目の記事】[PR]

関連ニュース