Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ヘブンバーンズレッドのレンダリングパイプライン刷新

Avatar for gree_tech gree_tech PRO
September 01, 2025

 ヘブンバーンズレッドのレンダリングパイプライン刷新

CEDEC2025で発表された資料です。
https://cedec.cesa.or.jp/2025/timetable/detail/s67ae9d9375516/

Avatar for gree_tech

gree_tech PRO

September 01, 2025
Tweet

More Decks by gree_tech

Other Decks in Technology

Transcript

  1. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS © VISUAL ARTS/Key ヘブンバーンズレッドの レンダリングパイプライン刷新 株式会社 WFS 技術室 野口顕弘
  2. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 目次 •

    アプローチ • シェーダー移植 • ライティング ◦ ベイクドライティング ◦ リフレクションプローブ ◦ Physically Based Rendering ◦ シャドウ • 描画パス ◦ 半透明とキャラクター ◦ ポストプロセス ◦ 複数カメラ • アセットマイグレーション • Quality Assurance 2
  3. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 自己紹介 野口顕弘(Akihiro

    Noguchi) 技術室 WFS シニアリードエンジニア 3
  4. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ヘブンバーンズレッドとは •

    「ヘブンバーンズレッド」は、2022年にリリースされたライブサービス型ゲーム • 対応機種:iOS/Android/Windows 4
  5. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • Built-in

    Render Pipeline (Built-in) ◦ 従来のパイプライン ◦ イベントコールバックなどの API でグラフィックス機能を拡張 動機 7
  6. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • Built-in

    Render Pipeline (Built-in) ◦ 従来のパイプライン ◦ イベントコールバックなどの API でグラフィックス機能を拡張 • Universal Render Pipeline (URP) ◦ 新しいパイプライン ◦ Scriptable Render Pipeline ベース 動機 8
  7. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • URP

    の機能が使いたい ◦ SRP Batcher ◦ Single Pass Forward Rendering 動機 9
  8. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • URP

    の機能が使いたい ◦ SRP Batcher ◦ Single Pass Forward Rendering 動機 10
  9. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • URP

    の機能が使いたい ◦ SRP Batcher ◦ Single Pass Forward Rendering • URP プロジェクト間の技術共有 動機 11
  10. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • URP

    の機能が使いたい ◦ SRP Batcher ◦ Single Pass Forward Rendering • URP プロジェクト間の技術共有 • 柔軟にカスタマイズできる描画パイプライン 動機 12
  11. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 頓挫の理由 •

    URP に移行すると見た目が変化する ◦ 運営チームの監修が必要 14
  12. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 頓挫の理由 •

    URP に移行すると見た目が変化する ◦ 運営チームの監修が必要 • 全コンテンツの監修と修正をするコストが高すぎる ◦ 運営が止まってしまう 15
  13. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 移行結果 Built-in URP 18
  14. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 目標まとめ •

    ライブサービス運営を止めない • 全く見た目を変えない 20
  15. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 目標まとめ •

    ライブサービス運営を止めない • 全く見た目を変えない • Unity 本体のバージョンアップも同時に実施 ◦ 2020.3.15f2 2022.3.32f1 21
  16. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • 2

    名 • レンダリング担当1名(私) • アセットパイプライン、UI、描画チェックなど担当1名 作業者 22
  17. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • リリースまで9ヶ月

    • 運営チームのアウトプットとの並走 ◦ 長引くと作業量が増える 期間 24
  18. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key プロジェクト構成 バージョン管理

    Git + LFS カラースペース ガンマ レンダリングパス フォワード ポストプロセス Post Processing Stack v2 (PPSv2) 25
  19. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 移植対象シェーダーのリストアップ •

    難易度の高い問題を先に解決し中盤以降は単純な物量勝負に持ち込む • シェーダーのリストアップ、内容の精査 27
  20. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 移植対象シェーダーのリストアップ •

    シェーダーの統合、プロパティのデフォルト値の変更を検討 ◦ 将来的なアセット制作の効率化も行う 28
  21. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 移植対象シェーダーのリストアップ •

    シェーダーは92種類 • 他の作業と並行で移植が完了するまで7ヶ月 29
  22. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key シェーダーの種類 •

    手書きシェーダー ◦ プログラマー向け ◦ ShaderLab + Cg で記述 30
  23. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key シェーダーの種類 •

    手書きシェーダー ◦ プログラマー向け ◦ ShaderLab + Cg で記述 • Amplify Shader Editor (ASE) シェーダー ◦ アーティスト向け ◦ ノードベースのシェーダーエディター Amplify Shader Editor 31
  24. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 手書きシェーダーの移植 •

    シェーダーテンプレートの仕組みを利用することで移植作業を集約 • アーティストがシェーダー開発を自律的に行えるようになる Code ASE 33
  25. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 手書きシェーダーの移植 •

    URP 向けテンプレートをベースに本作特有のシェーダー再現機能を実装 ◦ たとえばカスタム仕様のフォグ Code ASE 34
  26. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 手書きシェーダーの移植 •

    URP 向けテンプレートをベースに本作特有のシェーダー再現機能を実装 ◦ たとえばカスタム仕様のフォグ • アーティストが扱いやすいようにカスタムノードの利用は最小限 Code ASE 35
  27. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ASE シェーダーの移植

    • テンプレートで描画差分を吸収しているため簡単 • マスターノードの再接続とテンプレート設定の手動移植で対応 Built-in URP 37
  28. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ASE シェーダーの移植

    • テンプレート設定の調査 ◦ 各種設定の URP テンプレートでの再現方法を事前に確立 38
  29. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ASE シェーダーの移植

    • テンプレート設定の調査 ◦ 各種設定の URP テンプレートでの再現方法を事前に確立 • 考慮漏れがあり、後々描画差異が発生して手戻りが発生した 39
  30. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key その法線、正規化されていますか? •

    Built-in の ASE テンプレートはフラグメントの 法線が正規化されていなかった • URP のテンプレートでは正規化されていた • テンプレート挙動の理解が重要 40
  31. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • 作業の物量が多く、事前調査を入念にする価値が非常に高い

    ◦ 調査不足による手戻りが多かった • ASE のテンプレート修正に共通の再現処理を集約できた シェーダー移植まとめ 41
  32. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • まずはゲーム全体で一番使われる汎用シェーダーを再現してテスト

    • ここまで約3週間 • 移植出来るのではないかという希望が見えてきた 汎用シェーダーの移植 *この時点ではポスプロ無し 42
  33. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ベイクドライティング •

    間接光はライトマップ • 静的オブジェクトの影はシャドウマスク No Baked GI With Baked GI Lightmap Shadowmask * ポスプロ無し 44
  34. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • 既存のシーンは完全に同じ見た目を保つ

    • 新規制作するシーンは以前と同じ見た目を再現 ベイクドライティング No Baked GI With Baked GI Lightmap Shadowmask * ポスプロ無し 45
  35. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ライトマップのライト減衰 •

    Unity 提供の C# API を用いて減衰式の設定変更を行う • ドキュメントを参考に URP を改造 47
  36. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • ライトマップ再ベイク時に暗くなった Meta パス Before After 48
  37. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Meta パス • 背景シェーダーは Meta パスが未定義、フォールバック挙動に変化 ◦ 前環境:白色を出力 ◦ 現環境:sRGB ミッドグレーを出力 Before After 49
  38. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Meta パス • 背景シェーダーは Meta パスが未定義、フォールバック挙動に変化 ◦ 前環境:白色を出力 ◦ 現環境:sRGB ミッドグレーを出力 • URP 版シェーダーの Meta パスを実装し、白色を出力 Before After 50
  39. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Meta パス • 明るさがおおよそ一致 • しかし所々見た目が違う箇所がある Before After 51
  40. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Meta パス • 明るさがおおよそ一致 • しかしちらほら見た目が違う箇所がある • Unity はバージョンによってライトマッパーの挙動が変わる 52
  41. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key データ問題の発見 • ベイクしたあとにシーンのライト設定が変更されたシーンを発見 • ベイクし直すと見た目が変わってしまう 再ベイク前 再ベイク後 53
  42. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ベイク結果を合わせる(Cast Shadow) • Cast Shadow がオフになっているオブジェクトの影響が変化 ◦ 設定がライトマップに影響を及ぼさなくなった • 仕様かバグか、判断がつかない 54 再ベイク前 再ベイク後
  43. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ライトマップの状況整理 •

    新規シーン ◦ 見た目をほぼ再現できるため問題はない 55
  44. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ライトマップの状況整理 •

    新規シーン ◦ 見た目をほぼ再現できるため問題はない • 既存シーン ◦ ベイクしなおすと見た目が変わる ◦ 監修が必要になるため、ベイクしなおすことが出来ない 56
  45. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ライトマップ UV

    の問題 • Unity の自動ライトマップ UV 展開機能を利用していたが、 バージョンアップにより展開結果が変化 • 外部で展開したライトマップ UV と Unity の自動ライトマップ UV 展開が混在 58
  46. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • 旧エディターでインポートした結果を持ってくる

    • インポート結果の頂点数も変化するため、 メッシュ情報全てを持ってくる必要がある ◦ 頂点座標 ◦ UV ◦ カラー ◦ etc. 古いバージョンの UV を維持する 60
  47. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key メッシュの再現 FBX

    OnPostprocessModel バイナリ出力 旧エディター 61
  48. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key メッシュの再現 FBX

    OnPostprocessModel バイナリ出力 FBX OnPostprocessModel Unity 新エディター 62 旧エディター
  49. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key メッシュの再現(例外) FBX

    OnPostprocessModel バイナリ出力 FBX OnPostprocessModel Unity 新エディター 64 旧エディター • リリース済み背景データの編集は禁止
  50. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • リリース済み背景データの編集は禁止

    • しかし未リリース FBX は変更されることがある メッシュの再現(例外) FBX OnPostprocessModel バイナリ出力 FBX’ OnPostprocessModel 65 新エディター 旧エディター 変更!
  51. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • FBX

    のチェックサムに変化があり、 ライトマップ UV が未展開の場合はエラーとする • ライトマップ UV を Unity 外で制作してもらうように促す メッシュの再現(例外) FBX OnPostprocessModel バイナリ出力 FBX’ OnPostprocessModel 66 新エディター 旧エディター チェックサム不一致 → エラー 変更!
  52. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ライトマップまとめ •

    Meta パスは明示的に実装したほうが安全 • ライトマップ UV を再現することで、ベイクしたライティングを維持 ◦ Unity のバージョンが変わるとベイク結果は別物になる 68
  53. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • リフレクションプローブを利用している

    • 一部の室内シーンではボックスプロジェクションを採用している リフレクションプローブ 70
  54. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key リフレクションプローブ • ボックスプロジェクション設定の挙動が違う Built-in URP 71
  55. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key リフレクションプローブ • ボックスプロジェクション設定の挙動が違う • リフレクションプローブの AABB 設定の反映方法が変化 72
  56. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ボックスプロジェクション AABB(URP)

    Reflection Probe AABB = Box Projection AABB Object AABB プローブに設定した AABB がそのまま採用 74
  57. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ボックスプロジェクション AABB(Built-in)

    Reflection Probe AABB Object AABB Box Projection AABB プローブの AABB と、オブジェクト自身の描画 AABB を内包する最小の AABB 75
  58. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ボックスプロジェクション AABB

    Reflection Probe AABB Object 2 AABB Object 1 AABB Box Projection AABB 1 Box Projection AABB 2 77
  59. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key リフレクションプローブ •

    データ修正で対応が出来ない • シェーダーで対応する 78
  60. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key リフレクションプローブ •

    シェーダーで今描画しているオブジェクトの描画バウンドを取得 • リフレクションプローブの AABB と描画バウンドの OR を取るように シェーダーで調整 float4 legacyBoxMin = float4(min(unity_SpecCube0_BoxMin.xyz, unity_RendererBounds_Min.xyz), unity_SpecCube0_BoxMin.w); float4 legacyBoxMax = float4(max(unity_SpecCube0_BoxMax.xyz, unity_RendererBounds_Max.xyz), unity_SpecCube0_BoxMax.w); reflectVector0 = BoxProjectedCubemapDirection(reflectVector, positionWS, unity_SpecCube0_ProbePosition, legacyBoxMin, legacyBoxMax); 79
  61. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key リフレクションプローブ Built-in URP (Shader Fix) 80
  62. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key リフレクションプローブ 81
  63. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key リフレクションプローブまとめ •

    ボックスプロジェクションを使っている場合は挙動が違うので注意 • シェーダー側で対応が可能 82
  64. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key PBR 描画

    一部のオブジェクトは PBR で描画されていた 84 *左の遠くに見える氷が PBR
  65. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key PBR 描画差異 Built-in URP 85
  66. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key PBR 描画差異 86
  67. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key PBR 描画

    • Built-in ではプロジェクト設定により実装が変化 87
  68. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key PBR 描画

    • Built-in ではプロジェクト設定により実装が変化 • URP では PBR 実装が固定 88
  69. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key PBR 描画

    • Built-in ではプロジェクト設定により実装が変化 • URP では PBR 実装が固定 • アーティスト確認環境での設定をリファレンスとする 89
  70. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key PBR 描画

    • Built-in ではプロジェクト設定により実装が変化 • URP では PBR 実装が固定 • アーティスト確認環境での設定をリファレンスとする • Standard Shader Quality = High 90
  71. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Diffuse Built-in URP 91
  72. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Diffuse 92
  73. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Diffuse Built-in (Burley Diffuse) URP (Lambert Diffuse) • シェーダーを比較して実装方法の確認 • Built-in では Burley Diffuse が採用 • URP では Lambert が採用 • Built-in の実装に寄せる 93
  74. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Diffuse Built-in (Burley Diffuse) URP (Burley Diffuse) 94
  75. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Diffuse 95
  76. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Diffuse • Built-in ではカラースペースでライティング処理が変わる • URP はリニアで処理 • 例えば Built-in では非金属の F0の値の分岐(Linear: 0.04、Gamma: 0.22) • カラースペースの分岐を URP に移植する Built-in (Burley Diffuse) URP (Burley Diffuse) 96
  77. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Diffuse Built-in (Burley Diffuse) URP (Burley Diffuse + Gamma Fix) 97
  78. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Diffuse 98
  79. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Specular 99 Built-in URP (Gamma Fix)
  80. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Specular 100 スペキュラハイライトの大きさが違う
  81. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Specular *Renaldas Zioma, “Optimizing PBR for Mobile”, SIGGRAPH 2015 Built-in URP • Built-in: GGX NDF + Smith Joint GGX • URP: 独自の最適化された式* • Built-in の実装に寄せる 101
  82. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Specular Built-in URP (Final) 102
  83. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Specular 103
  84. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key PBR 描画調整後 Built-in URP 104
  85. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key PBR 描画調整後 105
  86. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ポイントライト URP ではライトの減衰式が逆二乗に変更されている Built-in URP 106
  87. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ポイントライト • Frame Debugger とシェーダーを確認、LUT で減衰値を求めている事が判 明 Built-in URP Frame Debugger 107
  88. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ポイントライト • Frame Debugger とシェーダーを確認、LUT で減衰値を求めている事が判明 • Built-in と同一の減衰式になる LUT(16-bit)をサンプルして減衰値を取得 Built-in URP Frame Debugger 108
  89. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ポイントライト Built-in URP (Fixed) https://docs.unity3d.com/6000.0/Documentation/Manual/urp/lighting/custom-lighting-change-light-falloff.html 109
  90. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key PBR まとめ

    • PBR は Built-in でのプロジェクト設定次第でかなり差が出るので注意 • URP のライティングは簡単に調整が可能 110
  91. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • Close Fit Shadow Projection を採用していたが、URP は非対応 • カメラ視野に対してより厳密にシャドウマップを作成できるため、 影の解像度確保に有利 Close Fit Shadow Projection Built-in (Close Fit) URP 112
  92. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Close Fit Shadow Projection • 影の距離設定が Close Fit 前提となっていた • カスケードシャドウマップを利用すれば品質が上がり問題は根本解決する ◦ 採用検討をする時間が足りなかった Built-in (Close Fit) URP (2 Cascades) 113
  93. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Close Fit Shadow Projection の再現実装 1. カリング前に影の描画距離を Far Clip に設定 2. カリング後に CullingResults.GetShadowCasterBounds API を利用 して最大のシャドウキャスターバウンドを取得 3. 現在の最大影距離設定を考慮し、新しい影距離を計算 4. 新しい影距離でシャドウマップを描画 Built-in (Close Fit) URP (Close Fit) 115
  94. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key シャドウまとめ •

    プロジェクト設定によってはとても再現が面倒 • Close Fit を採用している場合は注意が必要 • 可能であればカスケードシャドウマップの採用を検討したほうが良い 116
  95. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key キャラクター描画構成 •

    ほぼ全てが半透明描画 ◦ Geometry キュー、Depth Write ON で描画 118
  96. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key キャラクター描画構成 •

    ほぼ全てが半透明描画 ◦ Geometry キュー、Depth Write ON で描画 • アウトラインはマルチパス シェーダー(背面法) 119
  97. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key キャラクター描画構成 •

    Sorting Group 機能でメッシュ 描画順を制御 • マテリアルのレンダーキューでも 描画順制御 121
  98. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key URP でのレンダーキュー問題

    • URP では Sorting Group が Geometry キューで動作しない • Geometry キューは不透明オブジェクト用であるため、自然な仕様 • 不透明背景 • キャラクター • キャラクターアウトライン (マルチパス) • 半透明背景 • エフェクト Geometry Transparent 122
  99. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key URP での解決策

    • 半透明部分のキャラクター描画をすべて Transparent キューへ移行 • 不透明背景 • 半透明背景 • エフェクト • キャラクター • キャラクターアウトライン (Renderer Feature) Geometry Transparent 123
  100. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key URP での解決策

    • 半透明部分のキャラクター描画をすべて Transparent キューへ移行 • マルチパスシェーダーの描画順序が変わってしまった ◦ アウトラインを全キャラクター描画終了後のカスタムパスに移動 • 不透明背景 • 半透明背景 • エフェクト • キャラクター • キャラクターアウトライン (Renderer Feature) Geometry Transparent 124
  101. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Opaque Texture

    とキャラクター • 半透明の描画順制御の影響で副作用が発生 125
  102. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Opaque Texture

    とキャラクター • 半透明の描画順制御の影響で副作用が発生 • Opaque Texture で再現が出来ない 126
  103. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Opaque Texture

    とキャラクター Opaque Texture を使った描画に問題が発生 127
  104. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key URP の

    Opaque Texture 機能 不透明 画面キャプチャ 半透明 Camera Color Opaque Texture 128
  105. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key キャラクター描画との相性問題 キャラクター

    + 鏡 Opaque Texture にキャラクターが映らない Camera Color Opaque Texture 不透明 画面キャプチャ 半透明 131
  106. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key キャラクター描画との相性問題(修正後) 不透明

    半透明 (Before Capture) 画面キャプチャ 半透明 (Transparent) キャラクター Camera Color 133
  107. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key キャラクター描画との相性問題(修正後) 不透明

    半透明 (Before Capture) 画面キャプチャ 半透明 (Transparent) キャラクター Camera Color Opaque Texture 134
  108. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key キャラクター描画との相性問題(修正後) 不透明

    半透明 (Before Capture) 画面キャプチャ 半透明 (Transparent) 鏡 キャラクター 135 Camera Color Opaque Texture
  109. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key キャラクター描画との相性問題(修正後) 不透明

    半透明 (Before Capture) 画面キャプチャ 半透明 (Transparent) 鏡 キャラクター キャラクターが写った Opaque Texture を生成できるようになった 136 Camera Color Opaque Texture
  110. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • Post

    Processing Stack v2 (PPSv2) を採用していた ポストプロセス 138
  111. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • Post

    Processing Stack v2 (PPSv2) を採用していた • URP の実装は PPSv2 と異なる ◦ ハイエンド向けの機能が無い ポストプロセス 139
  112. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ポストプロセス 140

    • URP では再現できない機能・見た目が大きく変わる機能を利用していた ◦ 自動露出、Bloom、色収差
  113. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ポストプロセス 141

    • URP の実装を変更して対応することを検討 • しかし、今回の開発期間では難しいと判断
  114. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ポストプロセス •

    PPSv2 を URP のポストプロセスとして使えるように改造 • 以前は URP でも利用可能であったため、昔の公式実装例を参考に組み込み • ポストプロセスをそのまま再現 142
  115. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ポストプロセスまとめ •

    PPSv2 をそのまま利用することで、既存ポストプロセス設定を維持可能 • URP の標準ポストプロセスは利用不可 • RenderGraph への移行時に大幅改修が必要 143
  116. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 複数カメラ描画 3D

    カメラ1 3D カメラ2 アップスケール UI オフスクリーンレンダリング 145
  117. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 複数カメラ描画 カメラスタック1

    オフスクリーンレンダリング カメラスタッキングと Renderer Feature で簡単に再現 Base Camera Overlay Camera Base Camera Overlay Camera カメラスタック2 3D カメラ1 3D カメラ2 アップスケール UI 146
  118. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key アセットマイグレーション 148

    • コード変更のみで対応できず、データ修正も必要だった ◦ プログラムでバッチ修正する
  119. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key アセットマイグレーション 149

    • コード変更のみで対応できず、データ修正も必要だった ◦ プログラムでバッチ修正する • 対象アセット ◦ マテリアル ◦ プレハブ ◦ シーン
  120. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key レンダーキューのマッピング処理 •

    全マテリアルの描画キューの移動が発生 • マテリアルをテキスト解釈し、 レンダーキュー設定を抽出、置き換え 151
  121. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key レンダーキューのマッピング処理 •

    全マテリアルの描画キューの移動が発生 • マテリアルをテキスト解釈し、 レンダーキュー設定を抽出、置き換え • 手動でマッピングを作成 152
  122. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 複雑なアセット修正 •

    Odin Validator を利用して Unity 上で実装 ◦ Unity アセットのバリデーション フレームワーク 153
  123. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 複雑なアセット修正 •

    Odin Validator を利用して Unity 上で実装 ◦ Unity アセットのバリデーション フレームワーク • アセットの問題を検出し、一覧表示 154
  124. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 複雑なアセット修正 •

    Odin Validator を利用して Unity 上で実装 ◦ Unity アセットのバリデーション フレームワーク • アセットの問題を検出し、一覧表示 • 問題の検知と修正を同時に記述 155
  125. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key バリデーション処理 public

    static class ShaderUsage { public static bool RepairMaterial(Material material, bool isDryRun) } [assembly: RegisterValidationRule(typeof(MaterialValidator))] public class MaterialValidator : RootObjectValidator<Material> { protected override void Validate(ValidationResult result) { if (!ShaderUsage.RepairMaterial(Object, true)) { var errorInfo = new ResultItem("マテリアルの設定修正が必要です", ValidationResultType.Error); var fix = Fix.Create("設定修正", () => { ShaderUsage.RepairMaterial(Object, false); }); result.Add(errorInfo).WithFix(fix); } } } 156
  126. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key バリデーション処理 157

    public static class ShaderUsage { public static bool RepairMaterial(Material material, bool isDryRun) } [assembly: RegisterValidationRule(typeof(MaterialValidator))] public class MaterialValidator : RootObjectValidator<Material> { protected override void Validate(ValidationResult result) { if (!ShaderUsage.RepairMaterial(Object, true)) { var errorInfo = new ResultItem("マテリアルの設定修正が必要です", ValidationResultType.Error); var fix = Fix.Create("設定修正", () => { ShaderUsage.RepairMaterial(Object, false); }); result.Add(errorInfo).WithFix(fix); } } }
  127. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key バリデーション処理 public

    static class ShaderUsage { public static bool RepairMaterial(Material material, bool isDryRun) } [assembly: RegisterValidationRule(typeof(MaterialValidator))] public class MaterialValidator : RootObjectValidator<Material> { protected override void Validate(ValidationResult result) { if (!ShaderUsage.RepairMaterial(Object, true)) { var errorInfo = new ResultItem("マテリアルの設定修正が必要です", ValidationResultType.Error); var fix = Fix.Create("設定修正", () => { ShaderUsage.RepairMaterial(Object, false); }); result.Add(errorInfo).WithFix(fix); } } } 158
  128. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key バリデーション処理 public

    static class ShaderUsage { public static bool RepairMaterial(Material material, bool isDryRun) } [assembly: RegisterValidationRule(typeof(MaterialValidator))] public class MaterialValidator : RootObjectValidator<Material> { protected override void Validate(ValidationResult result) { if (!ShaderUsage.RepairMaterial(Object, true)) { var errorInfo = new ResultItem("マテリアルの設定修正が必要です", ValidationResultType.Error); var fix = Fix.Create("設定修正", () => { ShaderUsage.RepairMaterial(Object, false); }); result.Add(errorInfo).WithFix(fix); } } } 159
  129. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key バリデーション処理 public

    static class ShaderUsage { public static bool RepairMaterial(Material material, bool isDryRun) } [assembly: RegisterValidationRule(typeof(MaterialValidator))] public class MaterialValidator : RootObjectValidator<Material> { protected override void Validate(ValidationResult result) { if (!ShaderUsage.ValidateMaterial(Object, true)) { var errorInfo = new ResultItem("マテリアルの設定修正が必要です", ValidationResultType.Error); var fix = Fix.Create("設定修正", () => { ShaderUsage.RepairMaterial(Object, false); }); result.Add(errorInfo).WithFix(fix); } } } 160
  130. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • マテリアル差し替え

    ◦ Receive Shadow 設定の反映 アセット修正例 161 Built-in URP
  131. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key アセット修正例 162

    レンズフレアやハローを独自実装の物に置換
  132. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key マルチレイヤー UI

    ブラー用コンポーネントの構成修正 アセット修正例 163
  133. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • 運営開発ブランチを

    URP ブランチにマージした場合に競合が発生する マイグレーションと競合解決 運営ブランチ URP ブランチ ファイル A を追加 マージ ファイル A を編集 マージ 164 ファイル A を マイグレーション ファイル A が 競合!
  134. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • 運営開発ブランチを

    URP ブランチにマージした場合に競合が発生する • 運営開発ブランチを優先して解決する ◦ 最悪のケースでは何度も同一のアセットに対して修正をする必要がある マイグレーションと競合解決 運営ブランチ URP ブランチ ファイル A を追加 マージ ファイル A を編集 マージ 165 ファイル A を マイグレーション ファイル A が 競合!
  135. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 自動マイグレーションと競合解決 •

    マイグレーションプログラムを組み込む • マージからマイグレーションまで完全自動化 運営ブランチ URP ブランチ マージ マージ 166 運営ブランチを 優先解決 ファイル A を マイグレーション ファイル A を追加 ファイル A を編集 ファイル A を マイグレーション
  136. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 自動マイグレーションと競合解決 •

    何度も同一アセットをマイグレーションしても差分が発生しないようにする • Jenkins で自動実行 運営ブランチ URP ブランチ マージ マージ 167 運営ブランチを 優先解決 ファイル A を マイグレーション ファイル A を追加 ファイル A を編集 ファイル A を マイグレーション
  137. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 実際の運用 1月

    2月 3月 4月 5月 6月 7月 8月 9月 マイグレーションツール開発 URP ブランチにマージ シェーダー移植 ライティング カメラ・ポスプロ VFX PBR UI 168
  138. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 実際の運用 1月

    2月 3月 4月 5月 6月 7月 8月 9月 マイグレーションツール開発 半自動化 自動化 QA リリース作業 運営ブランチにマージ URP ブランチにマージ シェーダー移植 ライティング カメラ・ポスプロ VFX PBR シャドウ 最適化 UI 169
  139. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 実際の運用 1月

    2月 3月 4月 5月 6月 7月 8月 9月 マイグレーションツール開発 半自動化 自動化 QA リリース作業 運営ブランチにマージ URP ブランチにマージ シェーダー移植 ライティング カメラ・ポスプロ VFX PBR シャドウ 最適化 UI 170
  140. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 実際の運用 1月

    2月 3月 4月 5月 6月 7月 8月 9月 マイグレーションツール開発 半自動化 自動化 QA リリース作業 運営ブランチにマージ URP ブランチにマージ シェーダー移植 ライティング カメラ・ポスプロ VFX PBR シャドウ 最適化 UI 171
  141. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 実際の運用 1月

    2月 3月 4月 5月 6月 7月 8月 9月 マイグレーションツール開発 半自動化 自動化 QA リリース作業 運営ブランチにマージ URP ブランチにマージ シェーダー移植 ライティング カメラ・ポスプロ VFX PBR シャドウ 最適化 UI 172
  142. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • 根本的に描画プログラムが変わっているため範囲が広い

    • 自動化システム構築の時間が確保できなかったため人力で対応 Quality Assurance 175
  143. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Quality Assurance

    • 根本的に描画プログラムが変わっているため範囲が広い • 自動化システム構築の時間が確保できなかったため人力で対応 • QA チームが描画比較チェックを実施 ◦ イベントを含んだ全コンテンツ ◦ iOS/Android/Windows ◦ 全キャラクター ◦ 全スキルカットシーン 176
  144. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Quality Assurance

    • 根本的に描画プログラムが変わっているため範囲が広い • 自動化システム構築の時間が確保できなかったため人力で対応 • QA チームが描画比較チェックを実施 ◦ イベントを含んだ全コンテンツ ◦ iOS/Android/Windows ◦ 全キャラクター ◦ 全スキルカットシーン • モバイルは複数のチップセットでテスト 177
  145. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Quality Assurance

    • Built-in と URP のパフォーマンス比較 ◦ メモリ不足によるクラッシュ ◦ ヒッチ ◦ ロード時間 178
  146. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key Quality Assurance

    • Built-in と URP のパフォーマンス比較 ◦ メモリ不足によるクラッシュ ◦ ヒッチ ◦ ロード時間 • フィードバックを元に最適化 ◦ 結果的に Built-in よりもパフォーマンスが向上 179
  147. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key チェック体制 •

    プログラマーも全コンテンツの描画比較を目視で確認 • スキルカットシーンは動画出力し、横並びで再生 ◦ バッチ動画出力するツールを活用 180
  148. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • 作業用ビルドパイプラインを用意

    • 地道に描画差分を修正 • シェーダー修正 = アセットのフルビルド ◦ 1ビルド20時間 バグ修正対応 183
  149. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • 作業用ビルドパイプラインを用意

    • 地道に描画差分を修正 • シェーダー修正 = アセットのフルビルド ◦ 1ビルド20時間 • ビルド担当者に大きな負担 バグ修正対応 184
  150. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key • 作業用ビルドパイプラインを用意

    • 地道に描画差分を修正 • シェーダー修正 = アセットのフルビルド ◦ 1ビルド20時間 • ビルド担当者に大きな負担 • シェーダーに修正が必要な場合はビルド担当者に連絡 バグ修正対応 185
  151. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key バグ修正対応 •

    Unity 本体のバージョンアップも対応しているためグラフィックス以外の バグも多数発生 ◦ 運営チームのサポートが発生 186
  152. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 危険なシェーダープロパティ名 •

    一部の Android 端末でシェーダー コンパイルエラーが発生 • 「__」で始まるプロパティ名が問 題 • GLES の仕様では意図しない動作を することがあるため注意 [HideInInspector]__dirty("", Int) = 1 187
  153. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key ©WFS Developed

    by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 完成 188 • 見た目に変化なし! • 地味です Built-in URP
  154. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 良かった点 •

    致命的な不具合はなかった • キャラクターシェーダーが ASE に移植されたため、アーティストによる改良 が進んだ 191
  155. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 良かった点 •

    致命的な不具合はなかった • キャラクターシェーダーが ASE に移植されたため、アーティストによる改良 が進んだ • SRP Batcher の効果が高く、Static Batching をオフに出来た ◦ メモリ消費量の削減 192
  156. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 良かった点 •

    致命的な不具合はなかった • キャラクターシェーダーが ASE に移植されたため、アーティストによる改良 が進んだ • SRP Batcher が効果が高く、Static Batching をオフに出来た ◦ メモリ消費量の削減 • URP しか知らないプログラマーでも拡張がやりやすくなった 193
  157. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 反省点 •

    既存のシェーダー名が変わってしまっており、ツールが誤作動 194
  158. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 反省点 •

    既存のシェーダー名が変わってしまっており、ツールが誤作動 • 新規アセットのみで発生する上、不具合の影響が分かりづらい 195
  159. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 反省点 •

    既存のシェーダー名が変わってしまっており、ツールが誤作動 • 新規アセットのみで発生する上、不具合の影響が分かりづらい • 理想的にはツールの QA が必要だが、ワークフローが確立していなかった 196
  160. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 反省点 •

    新規制作中のシーンのみ見た目の問題が発生 ◦ リリース後の制作で問題が発生するケースの発見が通常のゲームの QA では難しい 197
  161. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key 反省点 •

    新規制作中のシーンのみ見た目の問題が発生 ◦ リリース後の制作で問題が発生するケースの発見が通常のゲームの QA では難しい • Unity Source Code の契約を検討すべきだった ◦ 検証と推測には限界がある 198
  162. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key まとめ •

    最終的にうまくいったが険しい道だった • 難しい選択を迫られる ◦ 描画を再現するためのコストと、得られるものを常に天秤にかけていた • グラフィックス改良の準備が整った 199
  163. ©WFS Developed by WRIGHT FLYER STUDIOS ©VISUAL ARTS/Key WFSはCEDEC 2025で全8セッション登壇いたします

    ©2 024 Mag ica Qua rtet/Anip lex ,Mag ia Ex edra P roject ©W FS ©W FS De velo ped b y WRIGHT FLYE R STUDIO S © VISUAL ART S/Key 7/22 第4会場 13:40-14:40 レギュラーセッション LLM翻訳ツールの開発と 海外のお客様対応等への社内導入事例 郡司 匡弘 / 松井 望 / 小野 幸人 BP 7/23 第1会場 09:30-10:30 レギュラーセッション ヘブンバーンズレッドにおける、 世界観を活かしたミニゲーム企画の作り方 菊岡 大夢 GD 7/23 第1会場 10:50-11:50 レギュラーセッション ヘブンバーンズレッドの レンダリングパイプライン刷新 野口 顕弘 ENG 7/23 第2会場 13:20-14:20 レギュラーセッション 「魔法少女まどか☆マギカ Magia Exedra」の グローバル展開を支える、開発チームと翻訳チームの 「意識しない協創」を実現するローカライズシステム 原田 大志 / 篠原 功 PRD 7/23 第2会場 13:20-14:20 レギュラーセッション 「魔法少女まどか☆マギカ Magia Exedra」 の必殺技演出を徹底解剖! -キャラクターの魅力を最大限にファンに届けるためのこだわり- 新谷 雄輝 / 金子 俊太朗 / 佐々木文哉 VA 7/24 第5会場 15:00-15:25 ショートセッション ライブサービスゲームQAのパフォーマ ンス検証による品質改善の取り組み 小野 粋哉 / 勅使川原 大輔 BP 7/24 第5会場 18:00-18:25 ショートセッション ヒューリスティック評価を用いた ゲームQA実践事例 山本 幸寛 PRD 7/24 第8会場 18:00-18:25 ショートセッション 「魔法少女まどか☆マギカ Magia Exedra」での負荷試験の実践と学び 悦田 潤哉 ENG WFSセッション一覧 201