Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介

7,592 views

Published on

2017/03/25 (土)に開催された「Event for Diverse Game Engineers #3」で使用した資料です。 http://peatix.com/event/240950?lang=ja

Published in: Engineering
  • Be the first to comment

Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介

  1. 1. #TokyoEdge2017 UnrealEngine4を使ったVRコンテンツ製作で 120%役に立つTips集 + GDC情報をご紹介! Epic Games Japan 岡田和也
  2. 2. #TokyoEdge2017 自己紹介自己紹介 岡田 和也 (おかず@pafuhana1213) • UE4とVRが好きなフレンズ • 昨年11月よりエピック・ゲームズ・ジャパンの サポートエンジニアに • 個人Blog:ぼっちプログラマのメモ • GDC2017、Epic本社・シアトル支社に行ってきました!
  3. 3. #TokyoEdge2017 お品書き • GDCで発表されたUE4に関する情報 • UE4におけるVRコンテンツの作り方 • もっとより良いVRコンテンツにするために
  4. 4. #TokyoEdge2017 GDCで発表されたUE4に関する情報 • Robo Recall • 最新事例の紹介
  5. 5. #TokyoEdge2017 https://youtu.be/ftrjFSXNBZo
  6. 6. #TokyoEdge2017 Robo Recallについて Epic Gamesの最新VRゲームタイトル OculusTouchを使った シューティングアクションゲーム RoboReadyが開発したロボットたちが反乱を起こし そういった不良品の回収(リコール)を担当する業務員として ロボット軍団と銃撃戦を繰り広げる
  7. 7. #TokyoEdge2017 Robo Recallをプレイするには? OculusStoreにて配信中! https://www.oculus.com/experiences/ rift/1081190428622821/ Touch所有者なら無料!
  8. 8. #TokyoEdge2017 Robo Recall Mod kitについて • Robo Recallのプロジェクト丸ごと + Mod作成機能 • 作成したModを製品版に導入可能 • Mod作成用ドキュメント公開済み
  9. 9. #TokyoEdge2017 Mod Kitのダウンロード / ドキュメント
  10. 10. #TokyoEdge2017 Modなどの何か作ったら是非EpicFridayに! 毎週金曜 #EpicFriday をつけてツイート!
  11. 11. #TokyoEdge2017 https://youtu.be/LGjVC8wRBgM
  12. 12. #TokyoEdge2017 GDCで発表されたUE4に関する情報 • Robo Recall • 最新事例の紹介
  13. 13. #TokyoEdge2017 https://youtu.be/VJEoY1JT71c
  14. 14. #TokyoEdge2017 THE HUMAN RACE BlackBirdと呼ばれる専用車両を用いた、リアルタイムARデモ・動画 https://www.unrealengine.com/ja/blog/exploring-the-technology-that-drives-the- human-race
  15. 15. #TokyoEdge2017 RouguOne : A StarWars Story 最終カットの一部に UE4でレンダリングした絵が採用
  16. 16. #TokyoEdge2017 Lineage 2:Revolution https://youtu.be/Vk1w7GFqGEg
  17. 17. #TokyoEdge2017 Lineage 2:Revolution オープンフィールド 200プレイヤー同時バトル リリース後 30 日間 • プレイヤー数は 500 万人超え • 収益は 176億円!
  18. 18. #TokyoEdge2017 Battle Breakers https://youtu.be/6qr0-d3eDrc
  19. 19. #TokyoEdge2017 Battle Breakers Epic Gamesの最新モバイルタイトル UE4でもモバイルできます! このゴーグル娘 かわいい (*´ω`*)
  20. 20. #TokyoEdge2017 Nintendo Switch 対応! 最新バージョンであるUE4.15で対応済み • 4.16で正式対応 • Snake Pass, Redout, RiME, 真・女神転生シリーズ 任天堂 Reggie氏 Nintendo Switch 向けに素晴らしいゲームを作りたいなら 必要なものはアンリアルにすべて入っている
  21. 21. #TokyoEdge2017 Game Creators Conference 2017の講演にて 「任天堂のサードパーティ担当者が, Nintendo Switchのプラットフォームを インディー開発者に向けても開放する予定だと明らかにした」 ( http://jp.gamesindustry.biz/article/1702/17021801/ ) UE4はじめるなら、今でしょ!
  22. 22. #TokyoEdge2017 その他の最新事例について • PixarのFinding Doly VRデモ • USD (Universal Scene Description)対応 • Borderlands最新作の背景ライブデモ • インディゲーム Astroneerでの事例
  23. 23. #TokyoEdge2017 その他の最新事例について 基調講演「State of Unreal」の紹介記事 • https://www.unrealengine.com/ja/blog/quality-and-innovation-take-center- stage-during-state-of-unreal-at-gdc-2017
  24. 24. #TokyoEdge2017 最新機能・今後追加される機能の紹介 • アニメーション • https://www.unrealengine.com/ja/blog/gdc-2017-ue4-animation-and- physics-technical-showcase • 物理 • https://www.unrealengine.com/ja/blog/gdc-2017-making-physics-based- mayhem
  25. 25. #TokyoEdge2017 最新機能・今後追加される機能の紹介 • マルチパスレンダリングを使った表現 • https://www.unrealengine.com/ja/blog/gdc-2017-content-driven-multipass- rendering-in-ue4 • 新しいサウンドシステム • https://youtu.be/ErejaBCicds
  26. 26. #TokyoEdge2017 追加機能について、UnrealFestWest’17で解説予定! http://unrealevent.jp/unreal_fest_west_17/ 事前登録期間中!
  27. 27. #TokyoEdge2017 お品書き • GDCで発表されたUE4に関する情報 • UE4におけるVRコンテンツの作り方 • より良いVRコンテンツにするために
  28. 28. #TokyoEdge2017 対応しているVRプラットフォーム • Oculus Rift / GearVR • HTC Vive( SteamVR ) • PlayStation VR • Fove • Cardboard / DayDream ( / Tango ) • OSVR などなど…
  29. 29. #TokyoEdge2017 主要HMDにはネイティブ対応済! VRHMDを扱う上で面倒な部分を全てエンジン側でカバー • 各VRSDKの対応バージョン、実装の差異など • あるHMDを使って開発したプロジェクトが 特にコードを変更しなくても、他のHMDで動作する!
  30. 30. #TokyoEdge2017 公式ドキュメントもご用意!もちろん日本語で! https://docs.unrealengine.com/latest/JPN/Platforms/VR/index.html
  31. 31. #TokyoEdge2017 さらに、VR用のテンプレートもご用意! • ヘッド・ポジショントラッキング • モーションコントローラ • 手の表示、インタラクション • テレポート移動
  32. 32. #TokyoEdge2017 実演!解説! • エディタ設定(ウィンドウサイズ) • Pawnの構成 • MotionControllerコンポーネントについて • 銃・弾の実装
  33. 33. #TokyoEdge2017 ここまでのまとめ • 様々なHMDに対してエンジン側でガッツリ対応済 • VRコンテンツの開発支援体制 • ちょっとしたプロトタイプなら簡単に作れるよ!
  34. 34. #TokyoEdge2017 お品書き • GDCで発表されたUE4に関する情報 • UE4におけるVRコンテンツの作り方 • より良いVRコンテンツにするために
  35. 35. #TokyoEdge2017 より良いVRコンテンツとは…? • VR酔いを引き起こさない ( 引き起こしにくい ) • 高フレームレート • ベクションの回避 • 没入感 / プレゼンスを体験者に与える おもしろーい! / たのしー! コンテンツ 今日説明するのはここ コンテンツ内容への依存少なめ
  36. 36. #TokyoEdge2017 VRコンテンツで必要なフレームレート • OculusRift / HTC Vive :90fps ( 11ms ) • PSVR / モバイルVR :60fps ( 16ms )
  37. 37. #TokyoEdge2017 VRコンテンツ製作で有用なテクニックを紹介 • プロファイル用の便利機能の紹介 • フレームレート改善Tips • CPU編 • GPU編 おもしろーい! / たのしー! 最適化作業
  38. 38. #TokyoEdge2017 最適化していきましょー • ライティングは重いらしいから、数を減らすかベイクしよう • ポリゴン数多いとマズイみたい。見た目悪くなるけど削るか • 重いのは敵がいっぱい出てるからな気がする、減らそう 「とりあえず / なんとなく最適化」はNG!
  39. 39. #TokyoEdge2017 最適化作業する上で大事なこと 最適化作業は、クオリティを落とすための作業ではありません 指針がない最適化作業は非常に効率悪い • 0.1msの処理を50%改善しても0.05ms減るだけ プロファイルしてボトルネックを探そう!
  40. 40. #TokyoEdge2017 公式ドキュメント 「パフォーマンスおよびプロファイリング」 • https://docs.unrealengine.com/latest/JPN/Engine/Performance/index.html
  41. 41. #TokyoEdge2017 コンソールコマンド
  42. 42. #TokyoEdge2017 stat コマンド プロファイリング用のコンソールコマンド • https://docs.unrealengine.com/latest/JPN/Engine/Performance/StatComman ds/index.html
  43. 43. #TokyoEdge2017 stat unit / stat unitgraph ボトルネックになっているのは CPUなのか、GPUなのか? Frame: ゲーム全体 Game : ゲームの実装部分( BP, C++ ) Draw : 描画処理(CPU) GPU : 描画処理(GPU)
  44. 44. #TokyoEdge2017 各機能の処理計測 • stat scenerendering • レンダリングのCPU処理 • ドローコール ( シェーダの複雑度・ポリゴン数・オブジェクト数など ) • stat anim • アニメーションの負荷 • ボーン多すぎなど • stat particles • パーティクルの負荷 • 生成量多すぎなど
  45. 45. #TokyoEdge2017 stat dumphitches 極稀に発生するヒッチ(カクツキ)をプロファイル… • 様々な演出が偶然重なり… • ガベージコレクション t.HitchThresholdよりも時間がかかった フレームのログを出力
  46. 46. #TokyoEdge2017 stat startfile / stat stopfile CPUプロファイラ (Unreal Frond End) • ネイティブ・BPの処理負荷などを計測 • どのBPの どの関数 / イベントの どの処理が 1フレームに何回呼ばれていて 処理時間はどれ程か?
  47. 47. #TokyoEdge2017 ProfileGPU レンダリングに関するGPU処理 • BasePass • Lighting • Postprocess • ・・・
  48. 48. #TokyoEdge2017 Stat GPU リアルタイムGPUプロファイラ • GPU負荷が高まるタイミングの調査 stat startfle / stat stopfileで CPUのように負荷を確認することも可能
  49. 49. #TokyoEdge2017 注意 : VRSDKによるフレーム固定(vsync)問題 処理が遅いと、90fpsから45fpsにフレームが固定される 固定が解除されるまで一定時間待つ必要あり 正常な処理時間を計測することができない
  50. 50. #TokyoEdge2017 Emulate HMD performance VR描画を擬似的に再現することで フレーム固定問題を回避 • Launch with –emulatestereo • Set resolution to 2160x1200 • Set r.screenpercentage 140
  51. 51. #TokyoEdge2017
  52. 52. #TokyoEdge2017 VRコンテンツ製作で有用なテクニックを紹介 • プロファイル用の便利機能の紹介 • フレームレート改善Tips • CPU編 • GPU編
  53. 53. #TokyoEdge2017 そのTickイベント、本当に必要? Tickイベント:毎フレーム呼ばれるイベント • 処理が繋がっていなくても、わずかな処理コストが発生 • 不要なら切る : Tick Enabledをオフ • 更新間隔を変更 : Tick Intervalを調整
  54. 54. #TokyoEdge2017 処理タイミングをずらして負荷分散! 何かを生成(Spawn)する処理は重い! ① ② ③ ある1フレームで一気に処理するのではなく 複数フレームで分散 90fpsの場合、①と③の間は わずか0.02秒 → ばれない
  55. 55. #TokyoEdge2017 Blueprintを高速化! BluePrintって良いらしいけど、重いんでしょ? 結局C++書かないといけないんでしょ? UE4.15で、BPのネイティブ( C++ )化機能が正式に入りました! VMのオーバヘッドによる負荷がなくなります! Robo Recallで既に活用されています!
  56. 56. #TokyoEdge2017 BluePrintのネイティブ化 https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/Technical Guide/NativizingBlueprints/index.html
  57. 57. #TokyoEdge2017 おまけ:UE4.15で入った主な最適化 • エンジンのビルド時間が約半分に • ゲームのロード時間が劇的に改善(Event Driven Loader) • テクスチャストリーミングの改善 UE4.15 超おすすめです!
  58. 58. #TokyoEdge2017 VRコンテンツ製作で有用なテクニックを紹介 • プロファイル用の便利機能の紹介 • フレームレート改善Tips • CPU編 • GPU編
  59. 59. #TokyoEdge2017 最近入ったVR向けの機能
  60. 60. #TokyoEdge2017 Forward Rendering for VR (4.14) • VRと相性の悪いDeferred Renderingから切り替え • GPU処理負荷が大幅に軽減 • Gバッファが使えない( = 一部のポストが使えない ) • MSAAが利用可能に
  61. 61. #TokyoEdge2017 Forward Rendering for VR (4.14) 経緯・詳細などは以下のスライドで https://www.slideshare.net/EpicGamesJapan/ue414vr ForwardとDeferredの違いを詳しく知りたい人 https://www.slideshare.net/SatoshiKodaira/ss-69311865
  62. 62. #TokyoEdge2017 Instanced Stereoscopic Rendering 両目の映像を同時にレンダリング • ドローコール削減 Bullet Trainの場合 • CPU:約14%改善 • GPU:約 7%改善
  63. 63. #TokyoEdge2017 LOD(Level of Detail)の自動生成機能 モデルのポリゴン数削減してLODを自動生成 近<--------カメラとの距離----------->遠
  64. 64. #TokyoEdge2017 複数のアクタからスタティックメッシュを作成 ドローコール削減 カリングとのバランスに注意
  65. 65. #TokyoEdge2017 半透明の処理負荷 との闘い編
  66. 66. #TokyoEdge2017 開発現場でよく見る光景 半透明を使った演出 かっこいい!!!やりたい! 半透明重いからダメ絶対!!!
  67. 67. #TokyoEdge2017 (´・ω・`)ショボーン
  68. 68. #TokyoEdge2017 疑似半透明を使う手 DitherTemporalAA • 不透明物体をドット抜き
  69. 69. #TokyoEdge2017 DitherTemporalAAの問題 • TAAを使わない場合は綺麗に描画されない • 影にノイズが生じる • Customコード(HLSL直書き用ノード)で解決可能
  70. 70. #TokyoEdge2017
  71. 71. #TokyoEdge2017 半透明描画用バッファを低解像度にする方法 半透明を別バッファに描画するSeparate Translucency
  72. 72. #TokyoEdge2017
  73. 73. #TokyoEdge2017 半透明描画用バッファを低解像度にする方法 • 解像度を指定 • r.SeparateTranslucencyScreenPercentage XX • 負荷に応じて自動的に解像度を下げる設定 • r.SeparateTranslucencyAutoDownsample
  74. 74. #TokyoEdge2017 影の処理負荷 との闘い編
  75. 75. #TokyoEdge2017 VRにおける影の重要性と問題 設地感の向上 → 実在感の向上 影重いから(ry
  76. 76. #TokyoEdge2017
  77. 77. #TokyoEdge2017 フェイク影を使う方法 Showdownデモから採用 • Launcherよりプロジェクトをダウンロード可能
  78. 78. #TokyoEdge2017 影用の簡易モデルを使う方法
  79. 79. #TokyoEdge2017 各モデルの設定 • 人型のモデル • 影用モデル
  80. 80. #TokyoEdge2017 Capsule Shadowを使う方法 • 物理アセットのカプセルを使って、ソフトな直接(間接)シャドウを描画
  81. 81. #TokyoEdge2017
  82. 82. #TokyoEdge2017 各設定 • SkeltalMeshのshadow Physics Assetを設定 • ActorのCapsule Direct( Indirect ) Shadowを有効に
  83. 83. #TokyoEdge2017 ライティングの処理負荷 との闘い編
  84. 84. #TokyoEdge2017 ライトの設定で注意する点 • 可動性 • ベイクする?それとも、動的ライト? • https://docs.unrealengine.com/ latest/JPN/Engine/Rendering/ LightingAndShadows/ LightMobility/index.html • 影響範囲 • 無駄に広くない?
  85. 85. #TokyoEdge2017 エフェクトのライトモジュールには要注意! パーティクルにLight追加したらGPU負荷が跳ね上がった話 • http://darakemonodarake.hatenablog.jp/entry/2014/12/26/180438
  86. 86. #TokyoEdge2017 おまけ
  87. 87. #TokyoEdge2017 ShowdownのSystemSettings (ConfigDefaultEngine.ini に追加) • [SystemSettings] • r.VolumeMultiplier=1.0 • r.screenpercentage=130 • r.SeparateTranslucency=0 • r.HZBOcclusion=0 • r.MotionBlurQuality=0 • r.PostProcessAAQuality=3 • r.BloomQuality=1 • r.EyeAdaptationQuality=0 • r.AmbientOcclusionLevels=0 • r.SSR.Quality=1 • r.DepthOfFieldQuality=0 • r.SceneColorFormat=2 • r.SSSSS=0 • r.TranslucencyVolumeBlur=0 • r.TranslucencyLightingVolumeDim=4 • r.MaxAnisotropy=8 • r.LensFlareQuality=0 • r.SceneColorFringeQuality=0 • r.FastBlurThreshold=0 • r.SSR.MaxRoughness=0.1 • r.rhicmdbypass=0 • r.TiledReflectionEnvironmentMinimumCount=10 • sg.EffectsQuality=2 • sg.PostProcessQuality=0
  88. 88. #TokyoEdge2017 さいごに • 今日紹介した辺りを一度確認しておけば 小規模なVRコンテンツなら問題ないはず…!…はず! • 開発中常に気をつける必要はあまりないですが、 ちょっと重いなぁ?と感じたら確認してみましょう!
  89. 89. #TokyoEdge2017 本講演に関する質問はこちらからどうぞ! mail : kaz.okada@epicgames.com Twitter : @pafuhana1213
  90. 90. #TokyoEdge2017 付録
  91. 91. #TokyoEdge2017 オススメ UE4+VR記事・スライド • Oculus向けのコンテンツをUE4で制作するためのノウハウ共有♪ (Oculus向けの最適化とか品質向上とか) • http://qiita.com/junyash/items/3ba225d8a2f86046cd23 • GTMF 2016:Unreal Engine 4で高品質なVRコンテンツを制作するため に知っておきたい100のテクニック • https://www.slideshare.net/GTMF/gtmf-2016unreal-engine-4vr100-epic- games-japan • GDC2016 Going Off the Rails: The Making of 'Bullet Train' 講演まとめ • http://qiita.com/Somelu01/items/7ad9e03adbbd2afee7e4
  92. 92. #TokyoEdge2017 もっともっと詳しく知りたい人向け • CEDEC2016 UnrealEngine4のレンダリングフロー総おさらい • https://www.slideshare.net/EpicGamesJapan/cedec2016-unreal-engine-4 • UE4 DeepDive ライトマス勉強会 • https://www.slideshare.net/EpicGamesJapan/lightmass-lightmap-epic- games-japan • https://www.slideshare.net/EpicGamesJapan/lightmass • https://www.slideshare.net/EpicGamesJapan/cs-66750222 • UE4 DeepDive マテリアル管理勉強会 • https://www.slideshare.net/EpicGamesJapan/epic-games-japan-ue4dd • https://www.slideshare.net/EpicGamesJapan/byking-ue4dd • https://www.slideshare.net/EpicGamesJapan/sqex-ue4dd

×