Epic Games Japanが主催するUnreal Engineの公式大型勉強会「UNREAL FEST EXTREME 2021 SUMMER」が、5月17日(月)~22日(土) にかけてオンラインで開催された。本稿では、株式会社アーゼスト株式会社スクウェア・エニックスによる5月20日(木)のGAME講演「『バランワンダーワールド』でのマルチプラットフォーム対応について」の模様をお届けする。

関連記事
Epic Games Japanが語る、MetaHuman Creatorの魅力と新たな可能性~UNREAL FEST EXTREME 2021 SUMMER(1)~
バレンシアガの世界観をゲームに。Streamline Media Groupの新たな挑戦~UNREAL FEST EXTREME 2021 SUMMER(2)~
海外向けアクションゲーム『SAMURAI JACK』開発の裏側~UNREAL FEST EXTREME 2021 SUMMER(3)~

TEXT_楳園麻美 / Asami Umezono(Playce)
EDIT_小村仁美 / Hitomi Komura(CGWORLD)、山田桃子 / Momoko Yamada

プラットフォーム以外にも、様々なマルチに対応

20日のGAME講演では、2021年3月にスクウェア・エニックスより発売された『バランワンダーワールド』について解説が行われた。本作は、舞台ミュージカルをモチーフとした3Dアクションゲーム。主人公が、ステージ上にある個性豊かな能力が宿った「衣装」を切り替えながら、現実世界での思い出や風景、大切なものなどが入り混じった不思議な心象世界「ワンダーワールド」を冒険するという内容だ。全世界同時、かつ、PlayStation 5、PlayStation 4、Nintendo Switch、Xbox Series X|S、Xbox One、Steamと、計6つのマルチプラットフォームで発売されている。

本講演に登壇したのは、株式会社アーゼスト上級執行役員であり、『バランワンダーワールド』のテクニカルディレクターを務めた渡邉孝一氏。本題であるマルチプラットフォーム対応についての紹介に入る前に、まず、マルチリンガルサポート、マルチプレイ、マルチキャラクターという、プラットフォーム以外の3つのマルチ対応についての説明が行われた。

具体的には、対応言語として日本語や英語をはじめ、全24言語に対応していることや、コントローラーを2つ繋ぐことで、2人同時プレイが可能であることを紹介。2人同時プレイは全プラットフォーム共通だが、PlayStation4では"シェアプレイ"に、Nintendo Switchでは"おすそわけプレイ"に対応といったように、個々のプラットフォーム用の対応も行なったと言う。

また、本作では主人公を「レオ」と「エマ」から選択することが可能で、さらに、レオとエマにはそれぞれ4タイプの見た目が存在しており、その中から自分の好きなタイプを選んでプレイすることができると説明。選択したキャラクターは、ゲーム中はもちろん、プリレンダリングムービー内の見た目にも反映されることを紹介した。

▲「レオ」と「エマ」のオープニングムービーより。キャラクター選択で選択したタイプごとに、オープニングムービーが再生されるようになっている

さらに「1キャラクターにつき4タイプのムービーを実現できたのは、CRI・ミドルウェアのCRI Sofdec2を本ゲーム用にカスタマイズし、マルチキャラクター機能を追加したからだ」と話し、同社への感謝を述べた。

UEを活用して、マルチプラットフォーム対応を実現するまで

ここからは、いよいよ本題であるマルチプラットフォーム対応についての紹介。まず、Blueprintについては、プロトタイプまでは開発効率を上げるために多用していたが、その後は処理速度を上げるために多くのBlueprintをC++に置き換え、C++での実装が主になっていると説明した。

Blueprint Nativization(Blueprintのネイティブ化)については、「有効にした際にバイナリのサイズが大きくなってしまうものの、速度的には10数%向上と、パフォーマンスがかなり上がることを確認していた」と渡邉氏。しかし、そもそもBlueprintをほとんど使用しなくなったことに加え、わずかに残っていたBlueprintでも、UEのバージョンを移行する際にトラブルが多発したり、特にマルチプラットフォームの場合、トラブルの発覚が遅れるなどリスクが高かったため、最終的にはExclusiveオプションで限定的な使用にとどめたと語った。

次に、本作の開発に使用したUEのバージョンの変遷について紹介が行われた。具体的には、2018年7月にUE4.20.1を使用し始め、バージョンアップをくり返し、2020年6月頃に4.25Plusへの移行を実施。その後、チェンジリストの同期や、Epic Gamesにも協力を仰ぎながら修正を多数行なったが、リリースバージョンとしては、4.25plusでフィックスしたと説明した。

続いて行われたのは、プラットフォーム独自の対応が必要な案件の実装に関する紹介。まず、PS5の新機能であるアダプティブトリガーについて、本作では80種類の衣装があることから、衣装のアクションごとに触り心地を設定することになったと説明。80種類の物量をこなすためにも、PS5用にベースの実装を済ませ、PS5専用のアダプティブトリガー設定エディタを作成して実装したと言う。

Steam版については、ユーザーがプレイするPCのスペックには大きく差が出るため、ユーザーが自身に適した設定を行えるよう、ディスプレイのウィンドウモード/フルスクリーンモードの切り替えや、画面解像度の変更、QWERTY以外のキーボード配列への対応などの設定画面を用意した。

その他、「トロフィーや実績、トレーディングカードなどの対応も、それぞれのプラットフォームの実装を行なっている」と渡邉氏。また、体験版をプレイしたユーザー用に、プラットフォーム別に隠し衣装を実装していることも紹介された。

次は、プラットフォーム別のクオリティ設定について。キャラクターや地形、エフェクトなどのテクスチャグループを拡張し、それぞれにLow、Middle、High、Fullの4種類が用意された。そうすることで、例えばキャラクターの中でもFullのテクスチャグループに属しているものは、どのプラットフォームでもLODバイアスをかけず、高品質が保たれるようになっていると言う。

ただし、このようなグループの追加を行うと、TEXTUREGROUP_Project01などの拡張分だけでは足りなかったため、TEXTUREGROUP_Vehicleなど本作で未使用だったグループをリネームすることで対応。また、テクスチャストリーミングでは、キャラクターがエンジンによって優先的に読み込まれるため、追加したCharacter Low、Character Middleといったようなテクスチャグループも、これまでのキャラクターのテクスチャグループと同様に扱われるようエンジン改造したことなども紹介した。

続いて紹介されたのは、ワールドワイド対応について。本作のデフォルト言語は日本語で開発されているが、「フォールバックする際には、全世界共通で英語を指定したかった」と渡邉氏。そのため、フォールバックカルチャーの値をエディタのネイティブ言語ではなく、iniファイルから読み込めるようにエンジン改造を行なったとのこと。

Epic Gamesに相談しながら、多くの課題を解決

次に取り上げられたのは、プラットフォーム固有の不具合について。開発当時、プラットフォームによって発生する不具合がハードによるものなのか、SDKによるものなのか、UEによるものなのか、原因の特定自体が難しかった。そのためEpic Gamesに相談し、UEの修正を行なってもらった結果、解決したという。

▲【不具合の例①】メッシュが突然ワープしてしまうような現象が、PS4でのみ発生。「発生するタイミングやトリガーになるものがつかみにくく、Epic Gamesに相談した」と渡邉氏。PS4RHI内でバッファのロックとロック解除のタイミングによって競合状態を記憶されていたことが原因であり、4.25Plus用のチェンジリストを用意してもらったことで解決した

▲【不具合の例②】マテリアルがチラつく現象が発生。テンポラルアンチエイリアシングを有効にすればおさまることはわかっていたものの、本作では使用しない方向で進めていたため、Epic Gamesに相談。1つ目の不具合と同様、4.25Plus用のチェンジリストを用意してもらったことで解決

その後は、本作のビルドオプションなどについて紹介された。本作では各プラットフォーム向けに合計6パッケージを作成。1パッケージあたりのビルド時間は平均30分から1時間程度だが、エンジンビルドの必要があったり、キャッシュに異常があったりした場合などは、3時間を超えるビルドもあったと言う。

さらに、QAチームとの間で、プラットフォームごとにTestビルドとShippingビルドの2つを提出すると決めていたため、ビルド量は2倍に。スタンダードなスペックの位置づけにしていたPS4用については、Developmentビルドも毎日1つ作成していたため計13パッケージ、体験版も加えて合計26パッケージを毎日用意していたと述べた。

「ビルド時間が非常に長かったため、なんとか短縮できないか検討した」と渡邉氏。ビルド時間の大半を占めているのはアセットのクック処理だと考え、再クックや再デプロイをスキップできるiterate、iterativecooking、iterativedeployなどのビルドオプションに注目。UEのバージョンを上げるたびに検証したが、iterateオプションを有効にしたビルドでは、ゲームのロード時や動作中にクラッシュが発生するなど、特にBlueprint Nativizationとの相性が良くなかったため、使用することはできなかったと語った。

最後に、「2020年の緊急事態宣言に基づき、テレワークというこれまで経験したことのない開発環境でプロジェクトを進めた」と渡邉氏。その際、開発実機は会社に保管したまま、自宅での作業はWindows上でUnreal Editorを使用して進めたが、これはUEだからこそ行えたことだと話した。また、「UDN(Unreal Developer Network)に加え、新ハードのPS5やXbox Series X|S専用の相談窓口が開設されていたため非常に助かった」とEpic Gamesへの感謝を述べ、講演を終了した。

「『バランワンダーワールド』でのマルチプラットフォーム対応について」講演動画

© 2021 SQUARE ENIX CO., LTD. All Rights Reserved.