Bloodstainedで世界のバッカーの期待に応えたUE4事例紹介 【UNREAL FEST EXTREME 2020 SUMMER】

スライド概要

講演動画はこちら
https://youtu.be/ltDNG1mhuno

本スライドは2020年7月18日に行われた勉強会「 UNREAL FEST EXTREME 2020 SUMMER」の講演資料となります。
https://www.unrealengine.com/ja/events/unreal-fest-extreme-2020-summer

profile-image

エピック ゲームズ ジャパン

@EpicGamesJapan

作者について:

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

スライド一覧
シェア
埋め込む»CMSなどでJSが使えない場合

公開日

2020-07-20 08:52:43

各ページのテキスト

1. Bloodstainedで 世界のバッカーの期待に応えた UE4事例紹介 株式会社 ArtPlay クリエイティブディレクター/テクニカルアーティスト 渡邉 昌夫 #ue4fest

2. 自己紹介 • 名前:渡邉 昌夫 • 役職:クリエイティブディレクター/テクニカルアーティスト セガAM-2でアーケードのQuest of D シリーズのキービジュアルや ムービーなどを担当。その後、アートから離れてmixiのサンシャイ ン牧場のプロデューサーをしたりと放浪する。 ArtPlayの起業に参加し、Bloodstainedではテクニカルアートを担当 #ue4fest

3. 会社紹介 • ArtPlayは悪魔城シリーズで知られる弊社IGAが 代表兼プロデューサーを務めるゲーム会社です。 • 代表作 • • • Bloodstained : Ritual of the Night Bloodstained : Curse of the Moon Revolver’s 8 (世界観・キャラクター監修) #ue4fest

4. Bloodstained紹介 • IGAVANIAと呼ばれる探索型のアクションRPGです。 • キックスターターで550万ドル以上を集めたユーザー参加型のゲームプロ ジェクトです。 • 全世界で100万本のヒットを達成しました。 #ue4fest

5. ユーザー参加型のゲーム開発 • 単純なゲーム開発ではなく、バッカーと呼ばれる個人の支援 者の要望も取り入れながら開発を進めました。ユーザーとの 合作とも言えるゲーム事業です。 #ue4fest

6. ユーザー参加の中身(アートのみ抜粋) • 途中経過をバッカーに報告 • ユーザー考案の敵やアイテム、部屋が登場 • そのほか、色々なストレッチゴールに対応 #ue4fest

7. どんな期待に応えたの? #ue4fest

8. どんな期待に応えたの? 1. 描画は60fpsを達成 (PS4 1080P、Xbox One 900P、switch 720P?) 2. 途中経過を報告しつつ、 1600画面を悪くない品質に。 #ue4fest

9. 描画60fps達成の ためにしたこと #ue4fest

10. 60fpsのためにしたこと 1. 規約 5. マテリアル軽量化 2. 描画 / Config設定 6. 影の軽量化 3. 計測 4. ポリゴン数削減 #ue4fest

11. 規約 #ue4fest

12. 主な描画負荷の規約 1. 画面ポリゴン数30万(背景15万+キャラ15万) 2. キャラ、背景の奥はunlit マテリアルを使用する(画面の 30~40%はunlit) #ue4fest

13. 画面の例:教会エリア 背景 キャラ 合計 134,107 prim 48,851 prim 182,958 prim #ue4fest

14. 横から見ると 画面手前 手前はlit (後述する画角対処のために横に大きく伸びています) 奥 奥はUnlit 半透明の フォグ板 #ue4fest

15. 描画設定 #ue4fest

16. 描画設定 外したもの × ボリュームライト × SSR × SSAO × Eye Adaption × レンズフレア × モーションブラー × 被写界深度 × フォグ × Early - Z path ✓ Forward Rendering ✓ Occlusion Culling ✓ Bloom ✓ FX AA ✓ 影の品質:2 大失敗 #ue4fest

17. 計測 #ue4fest

18. 実機に近いPCで計測 1. 実機(Xbox One)に近いPC環境で計測 • GPU Visualizer + r.RHISetGPUCaptureOptions で詳細を表示しておおまか に計測(大きな問題はこの段階で解決) 2. 実機で計測 • Render Docで詳細を測定 #ue4fest

19. じつは半年ほど、 実機計測してない時代があった #ue4fest

20. しかも半年後、 PCのCPU性能が実機より 8倍も高速だと発覚した。 #ue4fest

21. 実機計測は忘れずにね! #ue4fest

22. ポリゴン数削減(背景) #ue4fest

23. ポリゴン数削減 1. 2. 背景:標準のLOD作成機能を利用 • 装飾はモデリングせず、金属にして誤魔化す • Occlusion Cullingを入れたら急に改善 キャラ:Houdiniを使って削減 • マニュアル化して他の人に手伝ってもらう #ue4fest

24. 標準機能でLOD作成 (1) 3: 画面内のサイズ 1: LODの数を入れる 2: チェックを外す #ue4fest

25. 標準機能でLOD作成 (2) LODの設定をコピーして 複数のアセットにペーストできます LOD設定コストが予想より大幅に下がる #ue4fest

26. Occlusion Cullingを入れたら大幅に改善 何かの手違いでOFFになっていた。 ONにしたらポリゴンが大幅に減って感動。 #ue4fest

27. 装飾は低ポリにするためにモデリングしてません。 例:王宮エリアの場合 装飾はモデリングしてません #ue4fest

28. 金属を織り交ぜた装飾の方が質感を出しやすい Metal=0 だとRoughness=0でも光沢がない 装飾部分だけMetal=1にした場合 低ポリ感を防ぐため、金属の装飾を敢えて加える場合もあった #ue4fest

29. Bloodstainedの非metalで光沢が出なかった理由 1. ForwardだとSSRは使えない。反射による光沢が出ない。 2. 処理負荷軽減のため、Stationary Lightが当たらない場合が多い。 Lightmapだけだとspecularが出ない。 3. MaterialのHigh Quality Reflectionをオフにしていたので、複数の Reflection Captureが効かなくなっていた #ue4fest

30. ポリゴン数削減(キャラ) #ue4fest

31. キャラはHoudiniで減ポリ • 当時のunrealでは骨付きのモデルの減ポリ機能はなかった • 背景量産のために導入したHoudiniで骨付きのモデルを簡単に減らせ ることが分かる • マニュアル化して、ディレクターとアーティストにも手伝ってもらい、 キャラの最適化に大いに貢献 #ue4fest

32. Bloodstainedのキャラ減ポリの流れ 1 2 3 UEから FBX書き出し HoudiniでFBX読み込み 減ポリし、FBX書き出し UEに FBX読み込み #ue4fest

33. 当時のHoudiniのノードを少し紹介 読み込んだ状態 ノードを追加 UVをVertexにする 頂点結合で壊れないようにする 減ポリ Weightを元のモデルから転写する #ue4fest

34. 削減具合をpaintするノードもあります 名前をretentionにする Retain Density by Attribute のチェックを入れる #ue4fest

35. マテリアル最適化 #ue4fest

36. マテリアル最適化に寄与した主な施策 背景 • Materialをシンプルにする。使うtextureを少なく • High Quality Reflectionをオフにする • Customized UVの使用 キャラ • Unlitのトゥーンを使用 #ue4fest

37. シンプルでtextureが少ないのが軽かった 最も軽かった 氷のmaterial Textureを2つしか使っていない #ue4fest

38. High Quality Reflectionをオフに チェックを外すとReflectionCapture の処理が軽くなる。 ただし、Captureを複数置いて反射を 調整することができなくなる #ue4fest

39. 複数の質感を重ねる時は Custom UV を使用 2つの質感を異なるUVで 重ねている 質感ごとにCustom UVを 作成して処理負荷を軽減 #ue4fest

40. キャラはunlitのトゥーン風 Vectorで陰影の方向を設定できる シーン全体の陰影と 個別の陰影をブレンドする 陰影の色と強さを調整 フレネルを調整 #ue4fest

41. Maskedで全ての状態を常時計算するため、結構重い 親はすべての状態異常を常時計算している 1つ1つの状態異常もかなりの量のノードがある。 キャラのトゥーンシェーダー部分 #ue4fest

42. 影の軽量化 #ue4fest

43. 影の軽量化のためにしたこと キャラ • 影の多重計算バグを解消 • 影用のモデルを用意して減ポリ 背景 • 最低限のアセット以外は影をオフにする #ue4fest

44. 影の多重計算 本体モデル 3体で1組の モデル構成 アウトライン 影モデル モデル Cast shadow Off Off ON Visible ON ON Off 表示はOffでも負荷は存在する謎のバグがあった #ue4fest

45. 影用モデルのポリゴン数は少なく 本体モデル 21500 polygon 影モデル 1600 polygon #ue4fest

46. 背景で必要のない影をOffにする 例えば、逆光のみで影が落ちる自然地形エリアの場合 背景のDynamic Shadowは全てOff #ue4fest

47. 負荷軽減で 本当はやりたかったが できなかったこと #ue4fest

48. 本当はやりたかったが出来なかったこと 1. 実機で処理負荷を計測し、初期に負荷設計する 2. エフェクトの負荷設計をする 3. Materialの負荷設計をする 4. Early-Z pass #ue4fest

49. 途中経過を報告しつつ、 1600画面を悪くない品質に #ue4fest

50. 1600画面の量産と品質改善のための主な施策 1. 低画角にする 2. 要望を聞いて改善 #ue4fest

51. 低画角にする #ue4fest

52. なぜ低画角?高画角の問題点(1) 画角20 画角90 • 足場が分かりにくい • 画面端で意図せず落ちたり、キャラが隠れてしまう #ue4fest

53. なぜ低画角?高画角の問題点(2) 画面左端 画面右端 • 画面の左右でキャラの向きが変わってしまう • 上記により、攻撃判定が分かりづらくなる #ue4fest

54. 低画角だと背景の見た目が… 画角90 画角20 • 背景の立体感が無くなり、板ポリを貼ったような印象に #ue4fest

55. 手前を低画角、奥を高画角にする必要がある 修正した背景 斜めから見ると、奥に伸びている 奥の背景を奥に伸ばすことで低画角と高画角を両立 #ue4fest

56. 奥に伸ばすと、ライティングに問題が… • 奥までライトが届かず、真っ暗になってしまう • 理由)光は距離の2乗で減衰する #ue4fest

57. ライトを奥に並べるBPを作る 強さを弱めながら奥にライトをコピーする Bloodstained以外では役に立たない技術… #ue4fest

58. 何が正しかったのか? 良い点 悪い点 奥を伸ばす あまり良い点がない ライティング、カメラの回転で問題 手前を縮める ライティングは解決。 カメラの回転には耐えられない 画角50度ぐらい 遊びやさ、迫力もそこそこある。 遊びやすさ、迫力が若干落ちる 頂点シェーダーで イイ感じに歪める ライティングは解決。 カメラもある程度回転できる 影、カリングで問題発生。 エンジン改造しないと実用に耐えない プレイヤーを常に 画面の中心に カメラ、ライティングの問題を解決 やや間合いが取りづらい オープンワールドの技術が必要 #ue4fest

59. 要望を聞いて改善する #ue4fest

60. 完成までに途中経過をみせるスタイル 第2回炎上 「絵がUgly」 世界のメディアから酷評 第1回炎上 「 「 かよ」 かよ」 #ue4fest

61. かよ #ue4fest

62. 提出したキャラのプレビューを酷評される キャラをトゥーンシェーダーに #ue4fest

63. かよ #ue4fest

64. 提出した背景のプレビューを酷評される × 手描きテクスチャの 品質の差が激しい × ライトマップ軽視 2Dライクだし、こんなもんだと油断した… #ue4fest

65. ひとまず応急処置をしてやりすごす ✓ ライトマップ見直し ✓ 質感の見直し ✓ ノイズを自動で入れて ディティールがある ように見せる #ue4fest

66. 手描きテクスチャの問題に直面 コンセプトアート 手描きテクスチャによるプレビュー アーティストの個性が出すぎて、雰囲気を一定に保てるか不安に #ue4fest

67. カラーテクスチャをやめて、色を後で調整する方針に 修正した画面 ✓ 手描きのカラーテクス チャをやめる ✓ 基本的な建築のアセッ トをHoudiniで自動生 成し、品質を統一する #ue4fest

68. 絵がUgly 世界のメディアが酷評 #ue4fest

69. 今度は世界のメディアから酷評を浴びる × やはり全体の品質が… × ライトディングが陳腐 × 開発が遅れる中、次々と 強烈なライバルが… #ue4fest

70. さらにアセットをプロシージャル化 ハンドメイド中心 プロシージャル中心 改善し続けたプロシージャルが終盤に真価を発揮し始める #ue4fest

71. 各エリアのライティングを総見直し バッカーから希望の多かった逆光、嘘ライトの削除を推進 #ue4fest

72. ライティングを効率化する仕組み ✓ プログラマーがJenkinsで複数エリアのライトマップを 一括ベイクする仕組みを作ってくれた ✓ BPで大量のライトを自動配置する仕組みがあった (Bloodstainedの背景は奥に伸びているので大量のライトが必要) #ue4fest

73. まとめ ご清聴ありがとうございました。 世界のバッカーさんたちの期待に応えるのはつらかったけど、 そのおかげで納得のできる作品になったと思います! ✓ ArtPlayではベテランの方から若い方まで幅広く人材を募集して います。ご興味があれば、弊社ウェブサイトをご覧ください! https://artplay.co.jp/jobs/ #ue4fest