『バランワンダーワールド』でのマルチプラットフォーム対応について【UNREAL FEST EXTREME 2021 SUMMER】

7.5K Views

June 01, 21

スライド概要

動画アーカイブ:
https://www.youtube.com/watch?v=8QbVnXIqkd0&list=PLr_Cbd4sUDTwkjs-dreE91hRpk28ykqie&index=9&t=2440s

講演内容:
UnrealEngine 4を用いて、マルチプラットフォームに対応する際に気を付けなければいけないこと。開発中に直面した様々な問題の事例について『バランワンダーワールド』で行った対処方法などの紹介。

講演者:
渡邉 孝一 (株式会社アーゼスト 上級執行役員)

UNREAL FEST EXTREME 2021 SUMMER公式サイト配信ページ:
https://unrealengine.jp/unrealfest/timetable/game-arzest-squareenix.html

profile-image

Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

© 2021 SQUARE ENIX CO., LTD. All Rights Reserved. 『バランワンダーワールド』での マルチプラットフォーム対応について 株式会社アーゼスト #ue4fest

2.

目次 ・自己紹介 ・バランワンダーワールド紹介 ・プラットフォーム以外のその他のマルチ ・マルチプラットフォーム対応について ・バランワンダーワールドでのビルドについて #ue4fest

3.

自己紹介 名前:渡邉孝一 役職:テクニカルディレクター 役割:技術検証 各プラットフォーマー相談窓口 ビルド作る人 企画とデザイナーとプログラマを繋ぐ人 とにかく色々やった #ue4fest

4.

『バランワンダーワールド』紹介 『BALAN WONDERWORLD(バランワンダーワールド)』は、 舞台ミュージカルをモチーフとした3Dアクションゲームです。 主人公は、ステージ上にある個性豊かな衣装能力を駆使しながら、 現実世界での思い出や風景、大切なものなどが入り混じった 不思議な心象世界「ワンダーワールド」を冒険します。 © 2021 SQUARE ENIX CO., LTD. All Rights Reserved. 本スライドは株式会社スクウェア・エニックスが権利を有する著作物を利用しています。 当該コンテンツの転載・配布は禁止いたします。 #ue4fest

5.

『バランワンダーワールド』紹介 © 2021 SQUARE ENIX CO., LTD. All Rights Reserved. PlayStation®5 PlayStation®4 Nintendo Switch™ Xbox Series X|S Xbox One Steam® https://www.balanwonderworld.com/JP/ 本スライドは株式会社スクウェア・エニックスが権利を有する著作物を利用しています。 当該コンテンツの転載・配布は禁止いたします。 #ue4fest

6.

マルチプラットフォームを説明する前に… #ue4fest

7.

プラットフォーム以外のその他のマルチ ①マルチリンガルサポート ②マルチプレイ ③マルチキャラクター(プリレンダリングムービー) #ue4fest

8.

プラットフォーム以外のその他のマルチ ①マルチリンガルサポート 英語 フランス語 イタリア語 スペイン語(カスティーリャ語) ドイツ語 スペイン語(メキシコ) ブラジルポルトガル語 日本語 韓国語 簡体字中国語 繫体字中国語 ロシア語 アラビア語 オランダ語 ポーランド語 トルコ語 チェコ語 ギリシャ語 タイ語 ハンガリー語 デンマーク語 ノルウェー語 スウェーデン語 インドネシア語 24言語に対応 #ue4fest

9.

プラットフォーム以外のその他のマルチ ②マルチプレイ 80種類の衣装を組み合わせて遊ぶことが出来る。 PlayStation®4ではシェアプレイ対応、 Nintendo Switch™ではおすそわけプレイに対応。 © 2021 SQUARE ENIX CO., LTD. All Rights Reserved. #ue4fest

10.

プラットフォーム以外のその他のマルチ ③マルチキャラクター(プリレンダリングムービー) プレイヤーキャラクターであるレオとエマそれぞれ4タイプ存在。 4タイプの違いはプリレンダリングムービーにも反映。 © 2021 SQUARE ENIX CO., LTD. All Rights Reserved. #ue4fest

11.

プラットフォーム以外のその他のマルチ ③マルチキャラクター(プリレンダリングムービー) 通常であれば1キャラクターにつき4タイプで ムービーの容量が4倍になってしまうところを 約1.5倍相当に抑えました。 © 2021 SQUARE ENIX CO., LTD. All Rights Reserved. #ue4fest

12.

プラットフォーム以外のその他のマルチ ③マルチキャラクター(プリレンダリングムービー) 通常であれば1キャラクターにつき4タイプで ムービーの容量が4倍になってしまうところを 約1.5倍相当に抑えました。 © 2021 SQUARE ENIX CO., LTD. All Rights Reserved. CRI・ミドルウェア様ありがとうございました! #ue4fest

13.

株式会社CRI・ミドルウェア様 ニュースリリース資料 CRI、スクウェア・エニックスの『バランワンダーワールド』 におけるムービーのマルチキャラクター機能で技術協力 ~プリレンダムービーの容量を約6割削減~ https://www.crimw.co.jp/newsrelease/2021/e78k1e00000189r.html #ue4fest

14.

マルチプラットフォーム対応について Unreal Engine プラットフォーム固有機能の対応 プラットフォーム別クオリティ設定 ワールドワイド対応 プラットフォーム固有の不具合 #ue4fest

15.

Unreal Engine #ue4fest

16.

・開発方針 ・Blueprint ・Blueprint Nativization ・バージョン #ue4fest

17.

開発方針 エンジンは極力改造せずに済ませる方針 #ue4fest

18.

Blueprint プロトタイプまでは、開発効率を上げるためにBlueprintを多用して開発 処理速度向上を目的に多くのBlueprintはC++に置き換え #ue4fest

19.

Blueprint Nativization UnrealEngine4.24から4.25Plusに移行の際にトラブルが多発! Exculusiveオプションで限定的な使用 #ue4fest

20.

Unreal Engineバージョン 2018年7月 2019年4月 2019年6月 2019年10月 2020年2月 --2020年6月 4.20.1 4.22 4.22.2 4.23 4.24.2 4.25 Plus Unreal Engine使用開始 4.24までは、基本全プラットフォーム共通のエンジンを使用 新ハード対応エンジン PlayStation®5 Xbox Series X|S この2つのハード対応が主目的 Unreal Engineバージョンとしては4.25Plusでリリース #ue4fest

21.

プラットフォーム固有機能対応 #ue4fest

22.

プラットフォーム固有機能対応 ・PlayStation®5…アダプティブトリガー(80種類ある衣装分) ・Steam®(PC)… PC用個別オプション対応 キーボード対応・キーコンフィグ対応 ・トロフィー/実績/トレーディングカード ・PlayStation®4…シェアプレイ対応 ・Nintendo Switch™… おすそわけプレイ対応 ・体験版隠し衣装 #ue4fest

23.

プラットフォーム別クオリティ設定 #ue4fest

24.

プラットフォーム別クオリティ設定 テクスチャグループ ・キャラクタや地形等にLow/Middle/High/Fullの4つのテクスチャグループを用意 TEXTUREGROUP_Character TEXTUREGROUP_CharacterNormalMap TEXTUREGROUP_CharacterSpecular TEXTUREGROUP_Character_Low TEXTUREGROUP_Character_Middle TEXTUREGROUP_Character_High TEXTUREGROUP_Character_Full TEXTUREGROUP_CharacterNormalMap_Low TEXTUREGROUP_CharacterNormalMap_Middle TEXTUREGROUP_CharacterNormalMap_High TEXTUREGROUP_CharacterNormalMap_Full TEXTUREGROUP_CharacterSpecular_Low TEXTUREGROUP_CharacterSpecular_Middle TEXTUREGROUP_CharacterSpecular_High TEXTUREGROUP_CharacterSpecular_Full #ue4fest

25.

プラットフォーム別クオリティ設定 テクスチャグループ ・キャラクタや地形等にLow/Middle/High/Fullの4つのテクスチャグループを用意 ・TEXTUREGROUP_Project01 等の拡張分では足りなかった DefaultEngine.iniで未使用分をリネーム対応 [EnumRemap] TEXTUREGROUP_Vehicle.DisplayName="Character Middle" デバイスプロファイルのLODバイアス設定をプラットフォームごとに変更 0 ~ 4 ・Engine/Source/Runtime/Engine/Private/Streaming/StreamingTexture.cppを修正 #ue4fest

26.

ワールドワイド対応 デフォルト言語以外の特定言語へフォールバック アセットデータのフォールバック #ue4fest

27.
[beta]
ワールドワイド対応
デフォルト言語以外の特定言語へフォールバック
Engine/Source/Runtime/Core/Private/Internationalization/TextLocalizationManager.cppの
ApplyDefaultCultureSettings内に以下のコードを追記しました。
FString ConfigFallbackLanguage;
if (GConfig->GetString(TEXT("Internationalization"), TEXT("FallbackLanguage"), ConfigFallbackLanguage, GGameIni))
{
if (!ConfigFallbackLanguage.IsEmpty())
{
FallbackLanguage = ConfigFallbackLanguage;
}
}

#ue4fest

28.
[beta]
ワールドワイド対応
アセットデータのフォールバック
Engine/Source/Runtime/CoreUObject/Private/Misc/PackageName.cppを
以下のように修正しました。
FString FPackageName::GetLocalizedPackagePath(const FString& InSourcePackagePath)
{
const FName LocalizedPackageName = FPackageLocalizationManager::Get().FindLocalizedPackageName(*InSourcePackagePath);
if (!LocalizedPackageName.IsNone())
{
return LocalizedPackageName.ToString();
}
const FString CurrentCultureName = FInternationalization::Get().GetCurrentCulture()->GetName();
if (CurrentCultureName == "ja")
{
return InSourcePackagePath;
}
const FName MyFallBackLocalizedPackageName = FPackageLocalizationManager::Get().FindLocalizedPackageNameForCulture(*InSourcePackagePath, "en");
if (MyFallBackLocalizedPackageName.IsNone())
{
return InSourcePackagePath;
}
return MyFallBackLocalizedPackageName.ToString();
}

#ue4fest

29.

プラットフォーム固有の不具合 メッシュが突然ワープしてしまう? マテリアルがチラついてしまう? #ue4fest

30.

プラットフォーム固有の不具合 メッシュが突然ワープしてしまう? © 2021 SQUARE ENIX CO., LTD. All Rights Reserved. #ue4fest

31.

プラットフォーム固有の不具合 マテリアルがチラついてしまう? © 2021 SQUARE ENIX CO., LTD. All Rights Reserved. #ue4fest

32.

バランワンダーワールドのビルドについて バランワンダーワールドのパッケージ ビルドオプション ビルド時の注意点 #ue4fest

33.

バランワンダーワールドのパッケージ #ue4fest

34.

バランワンダーワールドのパッケージ PlayStation®4 … 1パッケージ PlayStation®5 … 1パッケージ Xbox One … 1パッケージ Xbox Series X|S … 1パッケージ Nintendo Switch™ … 1パッケージ Steam® … 1パッケージ 計6パッケージ 各パッケージビルド時間は平均30分~1時間程 #ue4fest

35.

バランワンダーワールドのパッケージ 全プラットフォーム合わせて6パッケージ。そして… 各プラットフォームそれぞれTestビルド/Shippingビルドが必要 ビルドは2倍量! Testビルド6個 + Shippingビルド6個 + Developmentビルド1個 = 13パッケージ 体験版も同時に用意していたので 体験版パッケージ13個で 26パッケージを毎日用意。 合計 #ue4fest

36.

バランワンダーワールドのパッケージ パッケージの容量 270GB程 製品版 760GB程 体験版 合計 1030GB #ue4fest

37.

ビルドサーバー構成 PlayStation®4/ PlayStation®5 Xbox One /Xbox Series X|S 1台 Nintendo Switch™ 1台 Steam® 1台 1台 合計 4台 #ue4fest

38.

ビルドオプション -iterate 変更のないアセットに対しては再クックや再デプロイをスキップする -iterativecooking 変更のないアセットに対しては再クックをスキップする -iterativedeploy 変更のないアセットに対しては再デプロイをスキップする ビルド時の注意点 シェアードDDCについて ビルドの中断禁止 #ue4fest

39.

振り返ってみて 緊急事態宣言に基づきテレワーク作業があったり・・・ 開発途中で新ハード対応の決定など、 これまでのプロジェクトではあまり経験のない 出来事がたくさんありました。 そのような状況下でEpic Games様に 何度も助けていただきました。 本当にありがとうございました。 #ue4fest

40.

ご清聴ありがとうございました #ue4fest