Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
#ue4fest
UE4×Switchで
60FPSの(ネットワーク)対戦アクションを
なんとかして作る!
ガンホー・オンライン・エンターテイメント株式会社
チーフプログラマー 角田 高宏
チーフデザイナー 江原 崇将
@2020 GungHo...
#ue4fest
角田 高宏
• チーフプログラマー
• 2013年 入社
• アーケード、コンシューマ、モバイル
と幅広くタイトルを経験
• グラフィックプログラムと最適化を担
当することが多い
• 『ニンジャラ』ではパフォーマンス最
適化を...
#ue4fest
対応ハード : Nintendo Switch
ジャンル : 対戦ニンジャガムアクション
最大8人のオンライン対戦に対応
基本プレイ無料
対応言語 : 日,英,仏,伊,独,西,中(簡体/繁体),韓
2020年6月25日からサー...
#ue4fest
• Nintendo Switch で
60fps で動作しています
今回はここにフォーカス
した話をします
ニンジャラとは
@2020 GungHo Online Entertainment, Inc. All Rights...
#ue4fest
• クライアント側の最適化全般について紹介します
• 個々の内容を深く掘り下げることはやりません
• ネットワークに関する話はしません
• 当日担当者には同席してもらえるようにするので、
質疑に関しては、答えられる範囲で対応し...
#ue4fest
• 要件
• UE4×Switchのパフォーマンスについて
• 描画の基本設定
• 最適化
• アセット
• 実装
• ビルド設定
• エンジン改造
• 対応しなかったもの
• まとめ
アジェンダ
@2020 GungHo O...
#ue4fest
• 要件
• 描画の基本設定
• UE4×Switchのパフォーマンスについて
• 最適化
• アセット
• 実装
• ビルド設定
• エンジン改造
• 対応しなかったもの
• まとめ
アジェンダ
@2020 GungHo O...
#ue4fest
• システムとして求められたもの
• オンライン対戦アクションゲーム
• ニンジャでチャンバラアクション
• 最大8人で対戦、チーム戦もあるよ
• UE4 × Nintendo Switch
• バトル中は60fps死守
要件...
#ue4fest
バトル中は60fps死守!
要件
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
厳しくないか?
要件
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
実際どの程度動くのか?
要件
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• 要件
• UE4×Switchのパフォーマンスについて
• 描画の基本設定
• 最適化
• アセット
• 実装
• ビルド設定
• エンジン改造
• 対応しなかったもの
• まとめ
アジェンダ
@2020 GungHo O...
#ue4fest
UE4×Switchのパフォーマンスについて
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• Switch で ThirdPersonTemplate を動かしてみた
UE4×Switchのパフォーマンスについて
@2020 GungHo Online Entertainment, Inc. All Rights ...
#ue4fest
• GPU負荷が大きい
• ポストプロセス
• Atmospheric Fog
• リフレクション
このあたりが高負荷
UE4×Switchのパフォーマンスについて
@2020 GungHo Online Entertainm...
#ue4fest
• ポストプロセスをもう少し細かく調査
• SSR,SSAO,TemporalAA,MotionBlur は単体でもかなり高負荷
• 720pだとそれぞれ 2ms 超
• 解像度やクオリティを落として、単体での使用ならあるいは...
#ue4fest
• DefaultLitマテリアル と UnLitマテリアル
• UE4のマテリアル
・ライティングするもの ( DefaultLit )
・ライティングしないもの ( UnLit )
乱暴に分けると、この2種類に分けられる
...
#ue4fest
• DefaultLit と UnLit の比較 (720p)
• カメラとPlane,Directional Light を1つずつ配置
UE4×Switchのパフォーマンスについて
GPU 4.36 ms GPU 0.82...
#ue4fest
• DefaultLit と UnLit の比較 (720p)
• ノーマルマップ有 / UnLitにシェーディングを追加
UE4×Switchのパフォーマンスについて
GPU 4.65 ms GPU 1.15 ms
Defa...
#ue4fest
• UnLitマテリアルのGPU負荷が圧倒的に低い
• UnLitマテリアルで賄える部分は
DefaultLitに比べて、GPU負荷をかなり抑えられそう
UE4×Switchのパフォーマンスについて
@2020 GungHo ...
#ue4fest
• 要件
• UE4×Switchのパフォーマンスについて
• 描画の基本設定
• 最適化
• アセット
• 実装
• ビルド設定
• エンジン改造
• 対応しなかったもの
• まとめ
アジェンダ
@2020 GungHo O...
#ue4fest
描画の基本設定
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
最終的に設定は次のような感じ
描画の基本設定
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• Forward Rendering
• 単純にパフォーマンスが Forward の方が良かった
• Deferred でしか使えないポストエフェクト(SSR、SSAO等)
は負荷の点から使用しない方針にした
描画の基本設定...
#ue4fest
• 解像度
• コンソールモード 1080p~810p
• ハンドヘルドモード 720p~540p
の可変解像度(100%~75%)
UE4.19 から入っている DynamicResolution を使用
UIの解像度は10...
#ue4fest
• Light
• Movable Light
• バトル中は未使用
• Stationary Light
• Directional Light 1本に限る
• ダイナミックシャドウを落とすのはこれ1本
• Static L...
#ue4fest
• ポストプロセス
• Bloom
• AutoExposure
• Color Grading
• FXAA
• Fog
• ExponentialHeightFog
• AtmosphericFog は負荷が大きかった
描...
#ue4fest
• テクスチャフィルタ
• 拡縮、ミップマップ共にバイリニア
• 異方性フィルタは未使用
• 使用の有無で1ms ほど負荷に差
• Mask Material only in Early Z-pass を有効に
• Maske...
#ue4fest
• 要件
• UE4×Switchのパフォーマンスについて
• 描画の基本設定
• 最適化
• アセット
• 実装
• ビルド設定
• エンジン改造
• 対応しなかったもの
• まとめ
アジェンダ
@2020 GungHo O...
#ue4fest
キャラクター
アセットの最適化
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• スペック
• 約11000ポリゴン
• 平均的な物で26ボーン
• パーツ数(10個くらい)
• LOD
• 3段階
• リムライト、レフライト、目専用、色変え等
• マテリアルは平均的な物で10個使用
• パフォーマンス...
#ue4fest
• 問題になった点
ダイナミックシャドウの負荷
アセットの最適化 キャラクター
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• ダイナミックシャドウの負荷
• シャドウの有無による比較
アセットの最適化 キャラクター
GPU 9.53 ms GPU 7.51 ms
ダイナミックシャドウ
あり
ダイナミックシャドウ
なし
@2020 GungHo O...
#ue4fest
• ダイナミックシャドウの負荷
• シャドウキャストするパーツ数による比較
アセットの最適化 キャラクター
GPU 9.53 ms GPU 7.95 ms
5パーツ 1パーツ(Bodyのみ)
@2020 GungHo Onli...
#ue4fest
• キャラクターのダイナミックシャドウの負荷
• シャドウを落とすオブジェクト数が問題
• 専用の影モデルを用意
• ダイナミックシャドウを落とすオブジェクト数の削減
• 頂点数の削減
アセットの最適化 キャラクター
@202...
#ue4fest
• 専用の影モデル
• 素体用(シルエット別にいくつか用意)+武器用 の2つで構成
• キャストシャドウするパーツ数を、最大 10個 → 2個 に削減
アセットの最適化 キャラクター
@2020 GungHo Online E...
#ue4fest
• 専用の影モデル
• Hidden Shadow + PoseableMeshComponent を使い、
ボーンのTransform情報を、影メッシュにコピーして使用
アセットの最適化 キャラクター
@2020 GungH...
#ue4fest
• 対策前後の負荷比較
この例では 1.5 ms 以上高速化
アセットの最適化 キャラクター
GPU 9.53 ms GPU 7.87 ms
Before After
@2020 GungHo Online Entertain...
#ue4fest
背景
アセットの最適化
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• 背景
アセットの最適化 背景
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• 背景用のマテリアル
• DiffuseColor,MRE(Metaric,Roughness,Emissive を1テクスチャ
に格納),NormalMap のテクスチャ3枚を使った DefaultLit が基本
• 最適...
#ue4fest
• UnLitマテリアル
• 遠景のビル群
• 水面
アセットの最適化 背景
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• メッシュ
• 最適化の方針
• カリングを考慮して地面、遠景はステージ中央から放射状に分割
• 高さ方向に関しては、シビアに分割していない
アセットの最適化 背景
@2020 GungHo Online Entertain...
#ue4fest
• LOD
• 近景は最大4段階(基本は3段階)
• UE4標準のリダクション機能を使用
• 単にポリゴン数、頂点数の問題だけで無く、
表示距離 / 面積に応じた適切な頂点密度にすることが重要
頂点が密集しすぎると、マイクロポ...
#ue4fest
パーティクル(エフェクト)
アセットの最適化
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• マテリアル
• ほぼ UnLit の不透明 or Masked で構成
• UnLitマテリアル内で陰影付けをやっているものもある
• ガムは UnLit なパーティクル
• 動的光源を使わない
• ライトを発生させていな...
#ue4fest
• パーティクルLODを使ったニアクリップの制御
• LOD0 に何も設定しない事で、疑似的にLOD0 と LOD1 の
切り替わり距離を、ニアクリップとして扱っている
アセットの最適化 パーティクル
@2020 GungHo...
#ue4fest
疑似透過表現
アセットの最適化
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• カメラ接近時のディザーによる疑似透過表現
アセットの最適化 疑似透過表現
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• カメラ接近時のディザーによる疑似透過表現
• キャラクターがカメラに接近した時に使用
• UnLit のディザー専用マテリアルに差し替え
• DefaultLit + ディザー は高負荷なため
UnLit なディザー専用の...
#ue4fest
• ディザー(Mask)の負荷比較(720p)
アセットの最適化 疑似透過表現
DefaultLit 不透明
GPU 12.42 ms
DefaultLit + ディザー
GPU 19.41 ms
UnLit + ディザー
G...
#ue4fest
透視表現
アセットの最適化
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• 遮蔽物の向こう側のキャラが見える特殊表現
• 特定スキル発動時
アセットの最適化 透視表現
拡大
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• 遮蔽物の向こう側のキャラが見える特殊表現
• Unlit のシンプルなマテリアル + VertexOffset で
カメラ方向へ頂点を引き寄せる方法で実現
• カスタムステンシル+ポストプロセスでの実装も
テストしたが負荷...
#ue4fest
UMG
アセットの最適化
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• 更新頻度の低いものは Invalidiation Box を使用
• ニンジャラのバトル中のUIの例
• Invalidation Box なし CPU 3~4 ms
• Invalidation Box あり CPU 1...
#ue4fest
• アニメーションは可能ならマテリアルによる表現に変更
• パーツの Transform を変更するアニメーションは最小限に
• 階層を深くしない
• 階層が浅くても重ねると負荷が高いパーツもある
• 例) ScaleBox
...
#ue4fest
• 階層による負荷増加の例
アセットの最適化 UMG
GPU 10.07ms
CPU 8.05ms
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
GP...
#ue4fest
• 構造による負荷
• 構造を見ただけでは正直よく分からない
• WBP1つ1つパフォーマンスを測り
負荷の高いWBPの構造を解析
• 負荷が高いパーツ、構造をデザイナーに
伝え、それを使わずに作れないか相談
アセットの最適化...
#ue4fest
• ゲーム概要、要件
• 描画の基本設定
• UE4×Switchのパフォーマンスについて
• 最適化
• アセット
• 実装
• ビルド設定
• エンジン改造
• 対応しなかったもの
• まとめ
アジェンダ
@2020 Gu...
#ue4fest
実装
最適化
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
実装ルール
最適化 実装
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• バトルで使用するBPは、Tickの使用を禁止
• E3 2018, TGS 2018版のTickは全てC++のスクラッチ実装
• 当時は完全同期型の通信システムを採用しており、
標準のUE4には完全同期の通信システムがなか...
#ue4fest
リアクションのある配置物
最適化 実装
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• StaticMesh として配置
• リアクション時に SkeletalMesh へ切り替えてアニメーション再生
• 影は思い切ってオミット
• ダイナミックシャドウは高負荷な上、配置数、密度が読めなかった
最適化 実装 ...
#ue4fest
キャラクター
最適化 実装
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• カメラから遠いキャラの移動処理の頻度を下げる
• 35m 以上離れているキャラは 3フレームに1回
• SetRotation の呼び出し抑制
• 回転量の変化が一定閾値を超えない限り呼ばない
• SetActorLoca...
#ue4fest
その他
最適化 実装
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• Spawnのタイミングをフレーム分散
• ヒッチ対策
• Tickでの検索処理( FindFunction や Actorの検索等 )の排除
• 気づかずに使われているケースが割とある
• プロファイルをかけると負荷上位に...
#ue4fest
• ゲーム概要、要件
• 描画の基本設定
• UE4×Switchのパフォーマンスについて
• 最適化
• アセット
• 実装
• ビルド設定
• エンジン改造
• 対応しなかったもの
• まとめ
アジェンダ
@2020 Gu...
#ue4fest
ビルド設定
最適化
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• メモリアロケーターに Binned2 を使用
• UE4.22から 標準は Binned3 だが、Binned2 に比べCPU負荷が高い
• UE4.22へ上げた直後は 2~3ms CPU負荷が増加
• UE4.24.2時...
#ue4fest
• Binned3 → Binned2 にする方法
• ニンジャラではTarget.cs に以下のコードを記述
最適化 ビルド設定
if (Target.Platform == UnrealTargetPlatform.Swi...
#ue4fest
• PGO (Profile-guided optimization) の使用
• 実際のコードの実行のされ方によって
最適化を行ってくれる仕組み
• UE4のSwitchビルドも対応している
• ニンジャラのバトルシーンでは...
#ue4fest
• PGOの注意点
• どれだけ最適化が出来るのか予測が難しい
• トレーニングラン時のプレイの仕方や、その時点でのコードに左右される
• PGOをあてにしたパフォーマンス設計は危険
• ニンジャラでは、PGO無しでも 16....
#ue4fest
• ニンジャラでのPGOの運用
• TestBuild でトレーニングラン(プロファイルの収集)
• プロファイルの書き出しにデバッグ用の機能を使ったため
• 本来は ShippingBuild でやるべき
• トレーニングラ...
#ue4fest
• ゲーム概要、要件
• UE4×Switchのパフォーマンスについて
• 描画の基本設定
• 最適化
• アセット
• 実装
• ビルド設定
• エンジン改造
• 対応しなかったもの
• まとめ
アジェンダ
@2020 Gu...
#ue4fest
エンジン改造
最適化
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• カメラ位置と回転の取得の最適化
• APlayerCameraManager::GetCameraViewPoint の修正
• 上記の FMinimalViewInfo のメンバ FPostProcessSettings...
#ue4fest
• TArrayをReserveするように対応
• ColorGrading の毎フレーム更新のスキップ
• VertexFog 時に VolumetricFog を参照しないように修正
• シェーダーに少し手を加えた
• A...
#ue4fest
こんな感じで最適化を進めた結果
60fpsで動くようになりました
最適化
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
なんとかできた!
最適化
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• ゲーム概要、要件
• UE4×Switchのパフォーマンスについて
• 描画の基本設定
• 最適化
• アセット
• 実装
• ビルド設定
• エンジン改造
• 対応しなかったもの
• まとめ
アジェンダ
@2020 Gu...
#ue4fest
対応しなかったもの
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• Precomputed Visibility Volume
• 空中戦、空中移動が多く、壁側面も歩けるので、不向き
• 仕様上、カメラがオブジェクトの中にめり込む可能性があるため、
その場合 Visibility がおかし...
#ue4fest
• Instanced Static Mesh
• テストしてみたが、Switchでは1つ1つ描画する方が
パフォーマンスが良かった
• BPのネイティブ化
• 有効にすることで若干高速化することは検証済み
• ネイティブ化が...
#ue4fest
• ゲーム概要、要件
• UE4×Switchのパフォーマンスについて
• 描画の基本設定
• 最適化
• アセット
• 実装
• ビルド設定
• エンジン改造
• 対応しなかったもの
• まとめ
アジェンダ
@2020 Gu...
#ue4fest
まとめ
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• UE4×Switch の パフォーマンス
• 描画の基本設定
• 各種最適化
• アセット、実装、ビルド設定、エンジン改造
以上についてご紹介しました
一見広範囲に見えますが、作業自体はシンプルです
まとめ Switch×...
#ue4fest
• 最適化作業のサイクル
1.負荷の調査
2.高負荷部分の原因を調べる
• 不要な処理、または軽量化の余地がありそう
→3へ
• 端折れない必要な処理だった
→1へ
3.負荷対策
• 不要なものならカット
• 最適化の検証 /...
#ue4fest
• 所感
• 実機での負荷確認は非常に重要
• 負荷調査のサイクルをどれだけ回せるかが最適化のキモ
• 継続して計測し続けることが大事
• 必要機能をきちんと取捨選択すれば Switch で十分高速に動作する
• デフォルト設...
#ue4fest
• WinterCrownWORKS 様
• ソレイユ株式会社 様
• 有限会社ウニコ 様
謝辞
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
以上で本発表は終了となります
本発表が皆様の一助となれば幸いです
ご清聴ありがとうございました
@2020 GungHo Online Entertainment, Inc. All Rights Reserved.
#ue4fest
• UE4×Wwise×Nintendo Switch――『ニンジャラ』サウンド制作事例
https://www.gamebusiness.jp/article/2020/08/21/17500.html
• 質問等
• ts...
Prochain SlideShare
Chargement dans…5
×

UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER

3 107 vues

Publié le

講演アーカイブ:準備中

講演内容:
2020年6月にリリースされたNintendo Switch™向け対戦ニンジャガムアクションゲーム『ニンジャラ』は、UE4を使用して最大8人のマルチプレイを60fps駆動で実現しています。UE4の最適化ノウハウは数多く共有されていますが、本講演では実際にNintendo Switch™で60fpsを実現する為に、『ニンジャラ』で行った最適化、高速化手法を紹介いたします。

講演者:
角田 高宏 ( ガンホー・オンライン・エンターテイメント株式会社 チーフプログラマー)
江原 崇将 ( ガンホー・オンライン・エンターテイメント株式会社 チーフデザイナー)

UNREAL FEST EXTREME 2020 WINTER 再生リスト
https://www.youtube.com/playlist?list=PLr_Cbd4sUDTzxG9a4TrU0Rg6-ApCJBCsI

https://unrealengine.jp/unrealfest/
#ue4fest

Publié dans : Ingénierie
  • Soyez le premier à commenter

UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER

  1. 1. #ue4fest UE4×Switchで 60FPSの(ネットワーク)対戦アクションを なんとかして作る! ガンホー・オンライン・エンターテイメント株式会社 チーフプログラマー 角田 高宏 チーフデザイナー 江原 崇将 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  2. 2. #ue4fest 角田 高宏 • チーフプログラマー • 2013年 入社 • アーケード、コンシューマ、モバイル と幅広くタイトルを経験 • グラフィックプログラムと最適化を担 当することが多い • 『ニンジャラ』ではパフォーマンス最 適化を担当 江原 崇将 • チーフデザイナー • 2016年 入社 • デザイナサポート、マテリアル検証 アセット管理、機材調整、PV撮影など 幅は広いが底は浅い。 • 『ニンジャラ』ではテクニカルアーテ ィストとしての役割を担う 自己紹介
  3. 3. #ue4fest 対応ハード : Nintendo Switch ジャンル : 対戦ニンジャガムアクション 最大8人のオンライン対戦に対応 基本プレイ無料 対応言語 : 日,英,仏,伊,独,西,中(簡体/繁体),韓 2020年6月25日からサービス開始 UE4 Version : 4.24.2 ニンジャラとは @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  4. 4. #ue4fest • Nintendo Switch で 60fps で動作しています 今回はここにフォーカス した話をします ニンジャラとは @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  5. 5. #ue4fest • クライアント側の最適化全般について紹介します • 個々の内容を深く掘り下げることはやりません • ネットワークに関する話はしません • 当日担当者には同席してもらえるようにするので、 質疑に関しては、答えられる範囲で対応します • プロファイラーやデバッグツールの詳細や、 使い方についても、本発表内では触れません 発表内容について @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  6. 6. #ue4fest • 要件 • UE4×Switchのパフォーマンスについて • 描画の基本設定 • 最適化 • アセット • 実装 • ビルド設定 • エンジン改造 • 対応しなかったもの • まとめ アジェンダ @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  7. 7. #ue4fest • 要件 • 描画の基本設定 • UE4×Switchのパフォーマンスについて • 最適化 • アセット • 実装 • ビルド設定 • エンジン改造 • 対応しなかったもの • まとめ アジェンダ @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  8. 8. #ue4fest • システムとして求められたもの • オンライン対戦アクションゲーム • ニンジャでチャンバラアクション • 最大8人で対戦、チーム戦もあるよ • UE4 × Nintendo Switch • バトル中は60fps死守 要件 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  9. 9. #ue4fest バトル中は60fps死守! 要件 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  10. 10. #ue4fest 厳しくないか? 要件 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  11. 11. #ue4fest 実際どの程度動くのか? 要件 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  12. 12. #ue4fest • 要件 • UE4×Switchのパフォーマンスについて • 描画の基本設定 • 最適化 • アセット • 実装 • ビルド設定 • エンジン改造 • 対応しなかったもの • まとめ アジェンダ @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  13. 13. #ue4fest UE4×Switchのパフォーマンスについて @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  14. 14. #ue4fest • Switch で ThirdPersonTemplate を動かしてみた UE4×Switchのパフォーマンスについて @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  15. 15. #ue4fest • GPU負荷が大きい • ポストプロセス • Atmospheric Fog • リフレクション このあたりが高負荷 UE4×Switchのパフォーマンスについて @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  16. 16. #ue4fest • ポストプロセスをもう少し細かく調査 • SSR,SSAO,TemporalAA,MotionBlur は単体でもかなり高負荷 • 720pだとそれぞれ 2ms 超 • 解像度やクオリティを落として、単体での使用ならあるいは… • アーティストにこれらを使わない方向で打診 → 結果、これらをバトル中は使わない方針に決定 UE4×Switchのパフォーマンスについて @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  17. 17. #ue4fest • DefaultLitマテリアル と UnLitマテリアル • UE4のマテリアル ・ライティングするもの ( DefaultLit ) ・ライティングしないもの ( UnLit ) 乱暴に分けると、この2種類に分けられる • Switch上でのパフォーマンスを比べてみた UE4×Switchのパフォーマンスについて @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  18. 18. #ue4fest • DefaultLit と UnLit の比較 (720p) • カメラとPlane,Directional Light を1つずつ配置 UE4×Switchのパフォーマンスについて GPU 4.36 ms GPU 0.82 ms DefaultLit UnLit @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  19. 19. #ue4fest • DefaultLit と UnLit の比較 (720p) • ノーマルマップ有 / UnLitにシェーディングを追加 UE4×Switchのパフォーマンスについて GPU 4.65 ms GPU 1.15 ms DefaultLit UnLit + Fake Shading @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  20. 20. #ue4fest • UnLitマテリアルのGPU負荷が圧倒的に低い • UnLitマテリアルで賄える部分は DefaultLitに比べて、GPU負荷をかなり抑えられそう UE4×Switchのパフォーマンスについて @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  21. 21. #ue4fest • 要件 • UE4×Switchのパフォーマンスについて • 描画の基本設定 • 最適化 • アセット • 実装 • ビルド設定 • エンジン改造 • 対応しなかったもの • まとめ アジェンダ @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  22. 22. #ue4fest 描画の基本設定 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  23. 23. #ue4fest 最終的に設定は次のような感じ 描画の基本設定 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  24. 24. #ue4fest • Forward Rendering • 単純にパフォーマンスが Forward の方が良かった • Deferred でしか使えないポストエフェクト(SSR、SSAO等) は負荷の点から使用しない方針にした 描画の基本設定 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  25. 25. #ue4fest • 解像度 • コンソールモード 1080p~810p • ハンドヘルドモード 720p~540p の可変解像度(100%~75%) UE4.19 から入っている DynamicResolution を使用 UIの解像度は100%固定 E3 2018、TGS 2018 版は、720p (コンソールモード)、480p (ハンドヘルドモード) 描画の基本設定 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  26. 26. #ue4fest • Light • Movable Light • バトル中は未使用 • Stationary Light • Directional Light 1本に限る • ダイナミックシャドウを落とすのはこれ1本 • Static Light • 上記以外のLight全て • Static な Lightは「Actor Hidden In Game」 を有効にしておく • ランタイムで影響チェックが行われ、CPU負荷の原因になる為 描画の基本設定 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  27. 27. #ue4fest • ポストプロセス • Bloom • AutoExposure • Color Grading • FXAA • Fog • ExponentialHeightFog • AtmosphericFog は負荷が大きかった 描画の基本設定 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  28. 28. #ue4fest • テクスチャフィルタ • 拡縮、ミップマップ共にバイリニア • 異方性フィルタは未使用 • 使用の有無で1ms ほど負荷に差 • Mask Material only in Early Z-pass を有効に • Maskedマテリアルを多用している為 • Epicの篠山さんによる「Mask Material only in Early Z-pass」の解説 https://www.slideshare.net/EpicGamesJapan/mask-material-only-in-early-zpass 描画の基本設定 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  29. 29. #ue4fest • 要件 • UE4×Switchのパフォーマンスについて • 描画の基本設定 • 最適化 • アセット • 実装 • ビルド設定 • エンジン改造 • 対応しなかったもの • まとめ アジェンダ @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  30. 30. #ue4fest キャラクター アセットの最適化 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  31. 31. #ue4fest • スペック • 約11000ポリゴン • 平均的な物で26ボーン • パーツ数(10個くらい) • LOD • 3段階 • リムライト、レフライト、目専用、色変え等 • マテリアルは平均的な物で10個使用 • パフォーマンスの目安 • 1.0 ms / キャラ アセットの最適化 キャラクター @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  32. 32. #ue4fest • 問題になった点 ダイナミックシャドウの負荷 アセットの最適化 キャラクター @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  33. 33. #ue4fest • ダイナミックシャドウの負荷 • シャドウの有無による比較 アセットの最適化 キャラクター GPU 9.53 ms GPU 7.51 ms ダイナミックシャドウ あり ダイナミックシャドウ なし @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  34. 34. #ue4fest • ダイナミックシャドウの負荷 • シャドウキャストするパーツ数による比較 アセットの最適化 キャラクター GPU 9.53 ms GPU 7.95 ms 5パーツ 1パーツ(Bodyのみ) @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  35. 35. #ue4fest • キャラクターのダイナミックシャドウの負荷 • シャドウを落とすオブジェクト数が問題 • 専用の影モデルを用意 • ダイナミックシャドウを落とすオブジェクト数の削減 • 頂点数の削減 アセットの最適化 キャラクター @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  36. 36. #ue4fest • 専用の影モデル • 素体用(シルエット別にいくつか用意)+武器用 の2つで構成 • キャストシャドウするパーツ数を、最大 10個 → 2個 に削減 アセットの最適化 キャラクター @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  37. 37. #ue4fest • 専用の影モデル • Hidden Shadow + PoseableMeshComponent を使い、 ボーンのTransform情報を、影メッシュにコピーして使用 アセットの最適化 キャラクター @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  38. 38. #ue4fest • 対策前後の負荷比較 この例では 1.5 ms 以上高速化 アセットの最適化 キャラクター GPU 9.53 ms GPU 7.87 ms Before After @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  39. 39. #ue4fest 背景 アセットの最適化 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  40. 40. #ue4fest • 背景 アセットの最適化 背景 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  41. 41. #ue4fest • 背景用のマテリアル • DiffuseColor,MRE(Metaric,Roughness,Emissive を1テクスチャ に格納),NormalMap のテクスチャ3枚を使った DefaultLit が基本 • 最適化の方針 • テクスチャアクセスを減らす • MRE の変化量が小さすぎるものはパラメータへ置き換え • 効果が小さいノーマルマップを削除 • 部分的にUnLitも併用 • 遠景や水表現など アセットの最適化 背景 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  42. 42. #ue4fest • UnLitマテリアル • 遠景のビル群 • 水面 アセットの最適化 背景 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  43. 43. #ue4fest • メッシュ • 最適化の方針 • カリングを考慮して地面、遠景はステージ中央から放射状に分割 • 高さ方向に関しては、シビアに分割していない アセットの最適化 背景 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  44. 44. #ue4fest • LOD • 近景は最大4段階(基本は3段階) • UE4標準のリダクション機能を使用 • 単にポリゴン数、頂点数の問題だけで無く、 表示距離 / 面積に応じた適切な頂点密度にすることが重要 頂点が密集しすぎると、マイクロポリゴンや OverDraw の原因にな り、負荷が上がるため、頂点数が少ないメッシュでもLODを作る意 味はある アセットの最適化 背景 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  45. 45. #ue4fest パーティクル(エフェクト) アセットの最適化 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  46. 46. #ue4fest • マテリアル • ほぼ UnLit の不透明 or Masked で構成 • UnLitマテリアル内で陰影付けをやっているものもある • ガムは UnLit なパーティクル • 動的光源を使わない • ライトを発生させていない アセットの最適化 パーティクル @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  47. 47. #ue4fest • パーティクルLODを使ったニアクリップの制御 • LOD0 に何も設定しない事で、疑似的にLOD0 と LOD1 の 切り替わり距離を、ニアクリップとして扱っている アセットの最適化 パーティクル @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  48. 48. #ue4fest 疑似透過表現 アセットの最適化 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  49. 49. #ue4fest • カメラ接近時のディザーによる疑似透過表現 アセットの最適化 疑似透過表現 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  50. 50. #ue4fest • カメラ接近時のディザーによる疑似透過表現 • キャラクターがカメラに接近した時に使用 • UnLit のディザー専用マテリアルに差し替え • DefaultLit + ディザー は高負荷なため UnLit なディザー専用のマテリアルに差し替えている アセットの最適化 疑似透過表現 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  51. 51. #ue4fest • ディザー(Mask)の負荷比較(720p) アセットの最適化 疑似透過表現 DefaultLit 不透明 GPU 12.42 ms DefaultLit + ディザー GPU 19.41 ms UnLit + ディザー GPU 13.35 ms @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  52. 52. #ue4fest 透視表現 アセットの最適化 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  53. 53. #ue4fest • 遮蔽物の向こう側のキャラが見える特殊表現 • 特定スキル発動時 アセットの最適化 透視表現 拡大 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  54. 54. #ue4fest • 遮蔽物の向こう側のキャラが見える特殊表現 • Unlit のシンプルなマテリアル + VertexOffset で カメラ方向へ頂点を引き寄せる方法で実現 • カスタムステンシル+ポストプロセスでの実装も テストしたが負荷の面で断念 アセットの最適化 透視表現 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  55. 55. #ue4fest UMG アセットの最適化 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  56. 56. #ue4fest • 更新頻度の低いものは Invalidiation Box を使用 • ニンジャラのバトル中のUIの例 • Invalidation Box なし CPU 3~4 ms • Invalidation Box あり CPU 1~1.5 ms これくらい差が出る アセットの最適化 UMG @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  57. 57. #ue4fest • アニメーションは可能ならマテリアルによる表現に変更 • パーツの Transform を変更するアニメーションは最小限に • 階層を深くしない • 階層が浅くても重ねると負荷が高いパーツもある • 例) ScaleBox • 汎用的なWidget BluePrint( WBP ) にして、その組み合わせで作りす ぎると、想像以上に階層が深くなることがあるので注意 • 使い易さとパフォーマンスのトレードオフ • Widget Reflector で状態を確認 アセットの最適化 UMG @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  58. 58. #ue4fest • 階層による負荷増加の例 アセットの最適化 UMG GPU 10.07ms CPU 8.05ms @2020 GungHo Online Entertainment, Inc. All Rights Reserved. GPU 10.06ms CPU 2.32ms
  59. 59. #ue4fest • 構造による負荷 • 構造を見ただけでは正直よく分からない • WBP1つ1つパフォーマンスを測り 負荷の高いWBPの構造を解析 • 負荷が高いパーツ、構造をデザイナーに 伝え、それを使わずに作れないか相談 アセットの最適化 UMG @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  60. 60. #ue4fest • ゲーム概要、要件 • 描画の基本設定 • UE4×Switchのパフォーマンスについて • 最適化 • アセット • 実装 • ビルド設定 • エンジン改造 • 対応しなかったもの • まとめ アジェンダ @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  61. 61. #ue4fest 実装 最適化 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  62. 62. #ue4fest 実装ルール 最適化 実装 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  63. 63. #ue4fest • バトルで使用するBPは、Tickの使用を禁止 • E3 2018, TGS 2018版のTickは全てC++のスクラッチ実装 • 当時は完全同期型の通信システムを採用しており、 標準のUE4には完全同期の通信システムがなかった • 60fpsに近いパフォーマンスで動作していた そこから、非同期型のシステムへ移行することになった為、 UE4の非同期通信の仕組みを取り入れる際、 パフォーマンスを担保するためにこのルールを適用 最適化 実装 実装ルール @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  64. 64. #ue4fest リアクションのある配置物 最適化 実装 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  65. 65. #ue4fest • StaticMesh として配置 • リアクション時に SkeletalMesh へ切り替えてアニメーション再生 • 影は思い切ってオミット • ダイナミックシャドウは高負荷な上、配置数、密度が読めなかった 最適化 実装 リアクションのある配置物 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  66. 66. #ue4fest キャラクター 最適化 実装 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  67. 67. #ue4fest • カメラから遠いキャラの移動処理の頻度を下げる • 35m 以上離れているキャラは 3フレームに1回 • SetRotation の呼び出し抑制 • 回転量の変化が一定閾値を超えない限り呼ばない • SetActorLocation,SetActorRotation,SetActorTransform の呼び出し は Overlap や ChildComponentTransform の更新処理が走り高負荷 最適化 実装 キャラクター @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  68. 68. #ue4fest その他 最適化 実装 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  69. 69. #ue4fest • Spawnのタイミングをフレーム分散 • ヒッチ対策 • Tickでの検索処理( FindFunction や Actorの検索等 )の排除 • 気づかずに使われているケースが割とある • プロファイルをかけると負荷上位に来るので比較的見つけやすい • オブジェクトをプールしておいて使い回す • 配置物やアイテムの動的生成を抑制 • 使っていないUMGは徹底的に Collapsed に設定 • Hidden だと 裏で処理は回るので Collapsed 最適化 実装 その他 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  70. 70. #ue4fest • ゲーム概要、要件 • 描画の基本設定 • UE4×Switchのパフォーマンスについて • 最適化 • アセット • 実装 • ビルド設定 • エンジン改造 • 対応しなかったもの • まとめ アジェンダ @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  71. 71. #ue4fest ビルド設定 最適化 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  72. 72. #ue4fest • メモリアロケーターに Binned2 を使用 • UE4.22から 標準は Binned3 だが、Binned2 に比べCPU負荷が高い • UE4.22へ上げた直後は 2~3ms CPU負荷が増加 • UE4.24.2時点でも、1ms ほど負荷が高い ※ニンジャラのバトルシーンでの負荷 • メモリ使用量は Binned3 の方が少ない • こちらで計測した結果だと、Binned3 の方が多いケースもあり 最適化 ビルド設定 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  73. 73. #ue4fest • Binned3 → Binned2 にする方法 • ニンジャラではTarget.cs に以下のコードを記述 最適化 ビルド設定 if (Target.Platform == UnrealTargetPlatform.Switch) { GlobalDefinitions.Add("USE_MALLOC_BINNED3 = 0"); } @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  74. 74. #ue4fest • PGO (Profile-guided optimization) の使用 • 実際のコードの実行のされ方によって 最適化を行ってくれる仕組み • UE4のSwitchビルドも対応している • ニンジャラのバトルシーンでは 1~3ms CPUが高速化 最適化 ビルド設定 非常に強力! @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  75. 75. #ue4fest • PGOの注意点 • どれだけ最適化が出来るのか予測が難しい • トレーニングラン時のプレイの仕方や、その時点でのコードに左右される • PGOをあてにしたパフォーマンス設計は危険 • ニンジャラでは、PGO無しでも 16.666ms に収まる状態まで CPUを最適化し、少し余裕を持たせるくらいの感覚で使用 • ビルド(リンク)時間が長い • プロファイルデータ収集用に専用のビルドを行う必要がある • UE4.23 だと +1時間 • UE4.24 だと +15分 ※ CPUがCore i7-8700kのマシンでの時間 最適化 ビルド設定 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  76. 76. #ue4fest • ニンジャラでのPGOの運用 • TestBuild でトレーニングラン(プロファイルの収集) • プロファイルの書き出しにデバッグ用の機能を使ったため • 本来は ShippingBuild でやるべき • トレーニングランは人力 • 自動テストに組み込むのが理想 • 重点的に最適化したい箇所が明確な場合は、人力が有利かも 最適化 ビルド設定 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  77. 77. #ue4fest • ゲーム概要、要件 • UE4×Switchのパフォーマンスについて • 描画の基本設定 • 最適化 • アセット • 実装 • ビルド設定 • エンジン改造 • 対応しなかったもの • まとめ アジェンダ @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  78. 78. #ue4fest エンジン改造 最適化 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  79. 79. #ue4fest • カメラ位置と回転の取得の最適化 • APlayerCameraManager::GetCameraViewPoint の修正 • 上記の FMinimalViewInfo のメンバ FPostProcessSettings のコピーが高負荷 → カメラ位置と回転を FMinimalViewInfo と分けてキャッシュ • パーティクルシステムからの呼び出しが多数 • 全体の約50% この修正で、1~2ms 高速化 最適化 エンジン改造 const FMinimalViewInfo CurrentPOV = GetCameraCachePOV(); @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  80. 80. #ue4fest • TArrayをReserveするように対応 • ColorGrading の毎フレーム更新のスキップ • VertexFog 時に VolumetricFog を参照しないように修正 • シェーダーに少し手を加えた • AABB計算の最適化 • FKSphylElem,FKBoxElem の GetTransform() を使わずに、 キャッシュした Transform を使うように修正 最適化 エンジン改造 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  81. 81. #ue4fest こんな感じで最適化を進めた結果 60fpsで動くようになりました 最適化 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  82. 82. #ue4fest なんとかできた! 最適化 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  83. 83. #ue4fest • ゲーム概要、要件 • UE4×Switchのパフォーマンスについて • 描画の基本設定 • 最適化 • アセット • 実装 • ビルド設定 • エンジン改造 • 対応しなかったもの • まとめ アジェンダ @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  84. 84. #ue4fest 対応しなかったもの @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  85. 85. #ue4fest • Precomputed Visibility Volume • 空中戦、空中移動が多く、壁側面も歩けるので、不向き • 仕様上、カメラがオブジェクトの中にめり込む可能性があるため、 その場合 Visibility がおかしくなる • UMG の RetainerBox • UE4.24で Transform の補正処理にバグがあり使用を断念 • issue番号:UE-88093 対応しなかったもの @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  86. 86. #ue4fest • Instanced Static Mesh • テストしてみたが、Switchでは1つ1つ描画する方が パフォーマンスが良かった • BPのネイティブ化 • 有効にすることで若干高速化することは検証済み • ネイティブ化が原因のパッケージングエラーが出ることがあり、 安全を優先し無効化 • 既にパフォーマンス要件を満たせていたのも理由 対応しなかったもの @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  87. 87. #ue4fest • ゲーム概要、要件 • UE4×Switchのパフォーマンスについて • 描画の基本設定 • 最適化 • アセット • 実装 • ビルド設定 • エンジン改造 • 対応しなかったもの • まとめ アジェンダ @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  88. 88. #ue4fest まとめ @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  89. 89. #ue4fest • UE4×Switch の パフォーマンス • 描画の基本設定 • 各種最適化 • アセット、実装、ビルド設定、エンジン改造 以上についてご紹介しました 一見広範囲に見えますが、作業自体はシンプルです まとめ Switch×UE4 で 60fpsの対戦アクション実現のために @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  90. 90. #ue4fest • 最適化作業のサイクル 1.負荷の調査 2.高負荷部分の原因を調べる • 不要な処理、または軽量化の余地がありそう →3へ • 端折れない必要な処理だった →1へ 3.負荷対策 • 不要なものならカット • 最適化の検証 / 実行 これをひたすら繰り返す まとめ Switch×UE4 で 60fpsの対戦アクション実現のために @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  91. 91. #ue4fest • 所感 • 実機での負荷確認は非常に重要 • 負荷調査のサイクルをどれだけ回せるかが最適化のキモ • 継続して計測し続けることが大事 • 必要機能をきちんと取捨選択すれば Switch で十分高速に動作する • デフォルト設定のまま使わない • 最初に必要な機能や設定と不要なものとを切り分ける事が重要 • 一般的にパフォーマンスで気を付けるべき点は、UE4でも同じ • エンジンが「いい感じ」にしてくれることは無い • 機能として用意はされているが、「意識して」使う必要がある まとめ Switch×UE4 で 60fpsの対戦アクション実現のために
  92. 92. #ue4fest • WinterCrownWORKS 様 • ソレイユ株式会社 様 • 有限会社ウニコ 様 謝辞 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  93. 93. #ue4fest 以上で本発表は終了となります 本発表が皆様の一助となれば幸いです ご清聴ありがとうございました @2020 GungHo Online Entertainment, Inc. All Rights Reserved.
  94. 94. #ue4fest • UE4×Wwise×Nintendo Switch――『ニンジャラ』サウンド制作事例 https://www.gamebusiness.jp/article/2020/08/21/17500.html • 質問等 • tsumita@gungho.jp 角田 高宏(プログラマー) • tehara@gungho.jp 江原 崇将(デザイナー) まで 付録 @2020 GungHo Online Entertainment, Inc. All Rights Reserved.

×