イベント
[Unite 2015]モバイルでナンバリングに負けないHDクオリティの実現を目指す「MOBIUS FINAL FANTASY」はUnity 5をどう使っているのか
ちなみに,講演に先立って,これまで付けられていた名前の一部が「Mevius」から「Mobius」となったことが発表されている。
Mevius →Mobius
ドイツ人の数学者Möbius(メビウス)さんは,ウムラウト記号のない英語などではMobiusになるようだが,フランスだとMoebiusさんがいたり,Moviusになる地域もあるらしい。Mの次を「e」にした単語はシャープのノートPCやダイハツ版プリウスの名前として使われているので「Mebius」で認知している人も少なくないかもしれない。ちなみに,英語版Wikipediaで真っ先に出てくるのはウルトラマンだった。いずれにせよ,日本以外では「Me〜」はほぼ使われないようだ。
商標などの関係でわざと変えていたのだろうと思うのだが,グローバル展開を目指すということで,素直な英語表記のMobiusになったらしい。
まず,「ナンバリングのFINAL FANTASY」といえばスクウェア・エニックスの看板タイトルそのものであり,そのグラフィックスとなれば1ミリの妥協も許されないことは想像に難くない。MOBIUSの開発には,過去のナンバリングタイトルを手がけたスタッフが結集されているという。浜口氏自身も,XII,XIII,XIII-2などのナンバリングタイトルに関わっている。
スタッフ数も通常のナンバリングタイトルと同等とのことで,「おそらくUnityで開発されているタイトルでは最大規模」と浜口氏は語っていた。さて,Unityはこれまでどちらかというと小規模開発の現場で多く用いられており,共同作業は苦手としていた(そのあたりにもメスが入りつつあるようだが)。
最初に浜口氏から紹介されたのは,Unityで大人数のスタッフが開発作業を行う際の手法や注意点だった。
まず,いろんな人がいじる可能性のあるプレファブについては,Hierarchy Viewに直接入れず,参照設定で読み込むようにすることが推奨された。Hierarchy Viewに入れると,そのプレファブがコピーされて組み込まれ,ファイルを変更しても反映されないのだそうだ。
部署ごとにいじるプレファブを分けて,それぞれをバージョン管理ツールで管理しつつ,その状況を監視するサーバーを設置して,いずれかがコミットされた時点で全体を更新するようにしているとのこと。
また,Hierarchy Viewを使わないとプレファブ構成の視認性が落ちるという問題が発生するのだが,それには自社ツールを作って対応しているという。
続いて,浜口氏らがHDクオリティのゲームを実現するために取った手法が紹介された。
まず,パフォーマンスの確保について,「Unityは遅い」という説に対して,C#(Mono)という言語環境の特性を理解していれば回避可能なものだという。数値演算は不得意なので,物理エンジンなどはネイティブコードで実装しているとのことだが,Unityではネイティブコードとのやり取りも簡単であり,C#の記述性のよさとネイティブを組み合わせて使うのがよいと結論付けていた。
次に出されたのはなかなか興味深い資料だった。端末ごとにどれくらいメモリが使えるかを調べて一覧表にしていたのだ。これは浜口氏らが調べたものだそうだが,利用できるメモリ量は,iOSで350MB〜600MBくらい,Androidで400MB〜1100MBくらいとのこと。CPUコアの種類やOSのバージョンなどではなく,SoCのGPUコア部分に依存しているらしい。
メモリ自体はAndroidのほうが多く搭載される傾向にあるものの,iOSのほうがパフォーマンスが出やすいため,両方のOSに対応したゲームを作るときは,Android先行で開発を行ったほうがよいとのこと。実機用バイナリの生成速度などからもAndroidベースで開発したほうが楽だそうだ。
ハイクオリティのグラフィックスでは,多くのテクスチャが使われるわけだが,テクスチャファイルのサイズはダウンロードファイルサイズに直結する。そこでテクスチャ圧縮形式に関する話が行われた。
実際にMOBIUSで使われているキャラクター一人分に相当する,2048×2048ピクセルの半透明を含むテクスチャの例が挙げられ,iOSで使われるPVRTC(4bit)では2.6MB,Android用SoCで使われるETC2(8bit)では5.2MB,ETC2がサポートされていないチップ用にRGBA32bitデータなどを使うと,実に20.8MBにもなる。MOBIUSでは,使われているGPUコアごとに最適なテクスチャ形式を選択するようにしているという。
ただ,普通にやるとUnityがキャッシュの更新を行うため(丸1日かかるそうだ),別途Unityのファイルを書き換えてから起動してキャッシュの再生成を回避するよう工夫していると浜口氏は語っていた。
また,モバイル端末では使用されているGPUコアがさまざまであるため,シェーダの組み込み時にシェーダプログラムのコンパイルが行われる。同じ種類のシェーダを複数の場所で使っている場合は,コンパイル時間が無駄なので,1か所だけ残して,あとは参照設定にしておけば大幅に時間を節約できるそうだ。
そんなこんなで効率的な開発手法を工夫しており,HDクオリティのゲームをモバイル端末で実現しようとしている。Unity 5を使った大規模開発例となるMOBIUSは,モバイルゲームの最先端には違いない。もうじき公開されるはずなので,その出来栄えに期待しよう。
「MOBIUS FINAL FANTASY」公式サイト
- 関連タイトル:
Unity
- 関連タイトル:
MOBIUS FINAL FANTASY
- 関連タイトル:
MOBIUS FINAL FANTASY
- この記事のURL:
キーワード
(C)2015 SQUARE ENIX CO., LTD. All Rights Reserved.
(C)2015 SQUARE ENIX CO., LTD. All Rights Reserved.