「ドラゴンクエストXIへの道2019 ~NintendoSwitch編~ 」適当メモその最後
適当メモ(その最後)なので正確性*1は保証しません^^;
記事
フェスの講演の内容をファミ通さんがスライド画像付きで記事にされてていて そちらの方が大変分かりやすいです。
メモ書き
# 16:00- ドラクエ 紙山 高木 TA ミハウ 2年ぶり(PS4 switch一つでswitch版が出来なかった PS4<->Switchスペック差は大人の事情でw- Unity/UE4どっちが好き(数人、Unityの方? PS4/switchどっちがスペック高い(switch,任天堂の人? ## PS4 UE4 ver4.13 LoadTimesブランチ? ロード、GC、ヒッチ対応ブランチ switch UE4 ver4.15 一旦PS4版UE4のパッチ(プラグイン)等外して、それから4.15(18?)までrebaseした? UE4プラグイン UE4 でもGI欲しい(拍手 Enlighten switch版はUE4標準lightmassに切り替えた Enlightenはライト編集してもベイク不要だったが、lightmassは必要でアーティストに不評 CRIsofdec2 最初MediaFrameworkに不具合有り 代わりにCRI導入 switch版開発時はMF不具合修正済みなので一旦CRI外す 弊社SoundDriver内で、CRI HCAコーデックだけはまだ使用中 バージョンアップ快適 容量削減 Switch32BG PS4版DQ 30GB容量 SW版DQはPS4版追加に、マップ追加、2Dモード、振るボイスなど ゼルダで13GBだった <-目標 大きいアセットを調査 違いが分からないようにswitch版に最適化(削減 ムービー -> WebM VP9 -> 半分でH264相当 メッシュ -> Static/SkeltonMesh両方最適化 -> Simplygon使用(ほぼほぼ手作業修正もやってる リダクション比較 4.22比較、Simppolygonの方ががきれい テクスチャ-> サイズ調整 -> メッシュを考慮して モーション ー> ApplyCompression,ResampbleAnimetion = 15変更 ->見た目変わらず半減(全部人間が確認 13.5GB達成 PF4よりロード短くなる? <= ならなかった アセット数同じ、サイズ省、 アセットロード IO uasset FileHandle.Read() アッセト CPU 初期化 IO CPU 処理時間 PS 同じ switch IO少ない -> バランス => switchはIOほどCPU減らなかった CPUネック UnrealPack ZLIB重い? Setting -> Compress content =>LZ5変更、8倍速い 日暗転中のレベルストリーミング、カクツキ軽減 まだIOひま(GPUもひま? SDK対応(N社?GPUクロック落として、CPU上げる? IOとCPUがよいバランスに ゲームちゅの処理速度 switchは仲間付いてくる CPU/GPU限界 ブループリン後問題 c++ Lua100倍遅い、BP1600倍遅い BP高速化(Nativize 2017紹介わな(当時バグってた ->4.22治ってる Luaより早い UFE処理される順序が変わるので注意 TA 高木 1. Scalability設定 2. 草木最適化 3. 自動化 Scalability設定 ^^^^^^^^^^^^^^ Scalabilit(拡張性)アセット弄らず、プラットフォーム毎に最適化 r.AmbientOcclusionLevel=1のSSAO汚い -> はーぷれぞリューションの処理の軽いSSAO作成(3倍速い 影の設定 表示距離素ケース スケーラビリティーだけであ、パフォーマンス間に合わず 草木最適化 ^^^^^^^^^ 草木 <- Maskedbe多い マテリアル軽量化 PivotPainter VertexShader 重い ->SimpleGrassWind 中 、Sineカーブ 軽い 効率的にかリングされてない Foliageクラスター分割設定 Foliage.MinVertsToSplitNode 16384(defalt), 5000, 1000 マップ毎に変更することも可能 -> folliage.MinVertsTo.. -> foliage.RebuildFoliageTrees -> レベル保存 HSIMもこれを参照 Folliageクラスター <-- folliage.MinVertsTo.. HSIMクラスター <-- folliage.MinVertsTo.. 樹の頂点数軽減 LODをきつめに => LOD切り替わり目立つ ー>そこでDithered LOD Transition(注意、チェック入れると不透明でも常時Masked LOD0 ---------> LOD1 +++++++++++++++++++++ Opaque -------> Opaque Mask - Mask-> Mask (Dithered LOD Transition Opaque - Mask-> Opaeuq (Dithered LOD Transition + エンジン改造 Imporstor改良 パカパカ切り替わる(エンジン改造 その他 Maskedの透明面積省 => 不透明で草作る Mask Material only Early z-pass 他の最適化のために 自動化 ^^^^^ ミハウさん Map Check -> 1件 1-2ms はy九なるかも マテリアルインsタンス最適化 M > MI M < MI の場合も?(シェーダーバイナリのため マテリアル重複 マップ100、MI25000 MI最適化の事例1 UE4Python(runtime / editor -> DQはeditorのみ py重いあらc++を使用 事例2 Oerrideen Materialsワーニングしゅうせい 結果 Blutility使った ー>ワーニング直した(c++で作業発生 エディター自動化による最適化 c++ 早い blutility 作りやすい python 便利 UE4pythonから勉強したこと UE4 Mayaと違う MayaPythonAPI 普通 UE4PythonAPI BPと同じ(ue4py(blutility)使いたければソース嫁 ググれ ue4 python livestream
switch版DQ買っていない(ーw-
*1:誤字脱字は気にするな^^;