[CEDEC 2017]最近の「Unreal Engine 4」はモバイル開発もいける。見えてきた活用ノウハウと最新機能
岡田和也氏 |
星野瑠美子氏 |
岡田氏による講演の最初のトピックは「Hit」や「リネージュ2 レボリューション」の成功について。
初代iPhoneが登場した瞬間からスマートフォンには3Dレンダリング機能が搭載されていたが,3Dゲームが一般化するにはかなり時間がかかった。UE4は,モバイルもターゲットに含めたゲームエンジンとして開発されてはいたが,実際に利用されるのはごく一部のタイトルに限られていた。
しかし,UE4の機能整備と端末の高性能化によって,その状況は変わりつつある。最近のモバイルゲームで最も注目されるものの一つである「リネージュ2 レボリューション」はUE4で開発されたタイトルであり,しかもUE4の標準機能だけで作られているというのだから,なかなか衝撃的だ。
UE4はAAAタイトルで使われるようなリッチな表現力を特徴とするものの,モバイルレンダラでは利用できる機能が制限されていた。それが最近,OpenGL ES 3.1がサポートされ,格段に制限が少なくなったという。
どのようなことができるのかについては,星野氏から紹介された。例として,Epic GamesがSamsungと共同で制作したというProtoStarデモが紹介された。このデモはGalaxy S7上で1080P解像度(@30fps)をターゲットに作られたものだそうだ。
細かい機能紹介は省略するが,かなりリッチな映像が実現できることが分かる。OpenGL ES 3.1プロファイルではValcanがサポートされており,高機能なフィーチャーが使用できるだけでなく,性能自体も向上するという。
Blueprintレベルでも十分にゲーム開発ができるUE4は開発効率が高く,モバイル開発のほうがその恩恵を受けやすい。端末の高性能化が進んでいることも追い風になっている。
続いて,モバイルゲームの開発で要求されるさまざまな機能のサポート状況についての解説が行われた。
開発時の描画エミュレーションによるプレビュー機能については,描画結果をツールバーで簡単に切り替えることができているが,UE4の次期バージョンとなる4.18で搭載が予定されているプレビュー機能の拡張では,さらに細かいデバイス設定が可能になっているとのこと。
もっとも,その機能はなぜか現行バージョンにもこっそり入っており,チェックボックスを付けるだけで利用可能になるという。気になる人は試してみるといいだろう。
AndroidやiOSが提供するプラットフォームサービスへの基本的な機能は,すべて対応済みだ。それぞれのプラットフォームへのログインやアプリ内課金,リーダーボード,アチーブメント,プッシュ通知などの機能はBlueprintでも実装できる。
そのほか,モバイルでよく使われるゲーム内広告やアナリティクス機能などの対応状況が紹介された。バナー広告とインターステーシャル広告については,Blueprintから簡単に設定可能だが,動画広告については現状では未対応とのことだった。
アナリティクス機能については,3種の外部サービスに対応したプラグインが用意されており,Blueprintレベルで対応できる。そのほかのサービスにもプラグインで対応可能なものがある。
続いて解説されたのが,UE4で作成したゲームの配信やアップデートに関する情報だ。配信には3つのタイプがあると岡田氏は説明した。バイナリ全体を配信するリリース,差分のみのパッチ,拡張要素となるDLCだ。
どのように使い分けるのか,どのような注意事項があるのかについて,岡田氏は「キャラクター追加」を例に説明した。
リリースだけで対応する場合,キャラクターが追加されたバイナリ全体をストアにアップロードし,ユーザーはアプリを丸ごとダウンロードして入れ替えることになる。依存関係などに付随する問題は発生しないが,ダウンロード量は大きくなる。
パッチで対応する場合は,従来のバイナリによるリリースファイルはそのままに,新たな差分となるパッチをどこかにアップロードすることになり,ストアを利用する必要はないという。また,差分だけなので最小限のダウンロードで運用できる。
ただし,パッチが当たったファイルにさらにパッチを当てることはできず,リリースに対して適用できるパッチは1個のみとなる。さらに新しいキャラクターを追加したいという場合には,新たなリリースを行うか,2回分のパッチをまとめた1個のパッチを作る必要がある。
パッチが重なるとダウンロード量も増えてくるので,適当なタイミングでリリースを新しくする必要が出てくると注意を促していた。
DLCは,ストアを経由せず適用可能で,すでにEpic Gamesでは「Battle Breakers」でストアを介さないキャラクター追加に成功しているとのことだった。また,複数個の使用も可能で,DLCに対するパッチも適用できるという。構成上は非常に柔軟だが,アクセスは少し面倒で,DLC内のアセットに対してはAsset Registryを使って間接的にアクセスする必要があるという。
これら3種類の方法すべてで提供するバイナリの作成では「Project Launcher」を使えば面倒な依存関係などを解決して,すべての種類を作成してくれる。
できあがったバイナリをインストールするためには,「HTTP Chunk Installer」がすべてやってくれるので非常にお勧めとのこと。残念ながらこのツールにはまだドキュメントが存在しないが,後日,公式Blogで紹介される予定だそうだ。
そのほか,駆け足で紹介されたのは誰もが気になりそうな項目で,デバイスごとに最適化された設定にする方法や,発熱を抑えて電池を長持ちさせる方法,UIの最適化でパフォーマンスを上げる方法などだった。
デバイスの性能を発揮させるにも発熱を抑えるにも大前提となるのが,端末に合った設定で動作させることだ。できるだけ高度なグラフィックスを使いたいが,一方でなるべく広いユーザー層に遊んでほしい。これを両立させるには,プロファイルを分けて管理するしかない。なんにせよプロファイリングをしっかり行う必要があるのだ。
デバイスのプロファイルでは,SoCやGPUコアの種類ごとにさまざまな設定を変更できるという。これはCVar(Console Variable)という調整項目で行うが,レンダリング解像度の変更やポストプロセスのクオリティなどを指定できる。また,テクスチャのMIP-MAPレベルをグループごとに一括して変更することも可能だ。
端末の種類ごとのグラフィックス負荷の調整項目で挙げられたMIP-MAPレベルだが,これは,これは同じテクスチャをどれくらい大きく,あるいは小さく使うかの選択になる。
さらにシェーダやマテリアルそのものを低負荷のものに置き換えるという対応も可能だが,その場合はFeature Level(OpenGL ES 2.0か3.1か)とQuality Level(Low,Midium,Highのどれか),いずれかの指定を行ことになる。
発熱やバッテリー消費で一般に知られている対策としては,フレームレート上限を落とすものがある。ある実験では,60fps上限に設定したときよりも40fps上限に設定したときのほうが,動作が安定しており,しかも平均して速いという結果が出ている。
これは,過熱によりクロックが強制低下させられるためだ。UE4ではCvarのt.MAXFPSという項目で最大フレームレートを指定でき,これを30程度にすることが推奨された。
また,ゲーム途中のリザルト画面などでフレームレートを10fps程度にすれば,短時間でもプロセッサ温度をかなり下げられるという。このあたりはゲームデザインで対策することも可能な項目だ。
そのほか,多くのモバイル機器用のTipsが紹介されていたので,興味がある人は公開されているスライドなどを参考にしてみるとよいだろう。
最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介!
リネージュ2 レボリューションの成功は,UE4のモバイルでの可能性を引き出しており,今後UE4への注目は高まっていくものと思われる。モバイル端末がさらに高性能化すれば,PCやコンシューマ機で展開するAAAクラスのグラフィックスがモバイルゲームで再現されるようになるかもしれない。