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

10K Views

March 27, 17

スライド概要

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

profile-image

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

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

UnrealEngine4を使ったVRコンテンツ製作で 120%役に立つTips集 + GDC情報をご紹介! Epic Games Japan 岡田和也 #TokyoEdge2017

2.

自己紹介 岡田 和也 (おかず@pafuhana1213) • UE4とVRが好きなフレンズ • 昨年11月よりエピック・ゲームズ・ジャパンの サポートエンジニアに • 個人Blog:ぼっちプログラマのメモ • GDC2017、Epic本社・シアトル支社に行ってきました! #TokyoEdge2017

3.

お品書き • GDCで発表されたUE4に関する情報 • UE4におけるVRコンテンツの作り方 • もっとより良いVRコンテンツにするために #TokyoEdge2017

4.

GDCで発表されたUE4に関する情報 • Robo Recall • 最新事例の紹介 #TokyoEdge2017

5.

https://youtu.be/ftrjFSXNBZo #TokyoEdge2017

6.

Robo Recallについて Epic Gamesの最新VRゲームタイトル OculusTouchを使った シューティングアクションゲーム RoboReadyが開発したロボットたちが反乱を起こし そういった不良品の回収(リコール)を担当する業務員として ロボット軍団と銃撃戦を繰り広げる #TokyoEdge2017

7.

Robo Recallをプレイするには? OculusStoreにて配信中! https://www.oculus.com/experiences/ rift/1081190428622821/ Touch所有者なら無料! #TokyoEdge2017

8.

Robo Recall Mod kitについて • Robo Recallのプロジェクト丸ごと + Mod作成機能 • 作成したModを製品版に導入可能 • Mod作成用ドキュメント公開済み #TokyoEdge2017

9.

Mod Kitのダウンロード / ドキュメント #TokyoEdge2017

10.

Modなどの何か作ったら是非EpicFridayに! 毎週金曜 #EpicFriday をつけてツイート! #TokyoEdge2017

11.

https://youtu.be/LGjVC8wRBgM #TokyoEdge2017

12.

GDCで発表されたUE4に関する情報 • Robo Recall • 最新事例の紹介 #TokyoEdge2017

13.

https://youtu.be/VJEoY1JT71c #TokyoEdge2017

14.

THE HUMAN RACE BlackBirdと呼ばれる専用車両を用いた、リアルタイムARデモ・動画 https://www.unrealengine.com/ja/blog/exploring-the-technology-that-drives-thehuman-race #TokyoEdge2017

15.

RouguOne : A StarWars Story 最終カットの一部に UE4でレンダリングした絵が採用 #TokyoEdge2017

16.

Lineage 2:Revolution https://youtu.be/Vk1w7GFqGEg #TokyoEdge2017

17.

Lineage 2:Revolution オープンフィールド 200プレイヤー同時バトル リリース後 30 日間 • プレイヤー数は 500 万人超え • 収益は 1 億 7600 万円 #TokyoEdge2017

18.

Battle Breakers https://youtu.be/6qr0-d3eDrc #TokyoEdge2017

19.

Battle Breakers Epic Gamesの最新モバイルタイトル UE4でもモバイルできます! このゴーグル娘 かわいい (*´ω`*) #TokyoEdge2017

20.

Nintendo Switch 対応! 最新バージョンであるUE4.15で対応済み • 4.16で正式対応 • Snake Pass, Redout, RiME, 真・女神転生シリーズ 任天堂 Reggie氏 Nintendo Switch 向けに素晴らしいゲームを作りたいなら 必要なものはアンリアルにすべて入っている #TokyoEdge2017

21.

Game Creators Conference 2017の講演にて 「任天堂のサードパーティ担当者が, Nintendo Switchのプラットフォームを インディー開発者に向けても開放する予定だと明らかにした」 ( http://jp.gamesindustry.biz/article/1702/17021801/ ) UE4はじめるなら、今でしょ! #TokyoEdge2017

22.

その他の最新事例について • PixarのFinding Doly VRデモ • USD (Universal Scene Description)対応 • Borderlands最新作の背景ライブデモ • インディゲーム Astroneerでの事例 #TokyoEdge2017

23.

その他の最新事例について 基調講演「State of Unreal」の紹介記事 • https://www.unrealengine.com/ja/blog/quality-and-innovation-take-centerstage-during-state-of-unreal-at-gdc-2017 #TokyoEdge2017

24.

最新機能・今後追加される機能の紹介 • アニメーション • https://www.unrealengine.com/ja/blog/gdc-2017-ue4-animation-andphysics-technical-showcase • 物理 • https://www.unrealengine.com/ja/blog/gdc-2017-making-physics-basedmayhem #TokyoEdge2017

25.

最新機能・今後追加される機能の紹介 • マルチパスレンダリングを使った表現 • https://www.unrealengine.com/ja/blog/gdc-2017-content-driven-multipassrendering-in-ue4 • 新しいサウンドシステム • https://youtu.be/ErejaBCicds #TokyoEdge2017

26.

追加機能について、UnrealFestWest’17で解説予定! http://unrealevent.jp/unreal_fest_west_17/ 事前登録期間中! #TokyoEdge2017

27.

お品書き • GDCで発表されたUE4に関する情報 • UE4におけるVRコンテンツの作り方 • より良いVRコンテンツにするために #TokyoEdge2017

28.

対応しているVRプラットフォーム • Oculus Rift / GearVR • HTC Vive( SteamVR ) • PlayStation VR • Fove • Cardboard / DayDream ( / Tango ) • OSVR などなど… #TokyoEdge2017

29.

主要HMDにはネイティブ対応済! VRHMDを扱う上で面倒な部分を全てエンジン側でカバー • 各VRSDKの対応バージョン、実装の差異など • あるHMDを使って開発したプロジェクトが 特にコードを変更しなくても、他のHMDで動作する! #TokyoEdge2017

30.

公式ドキュメントもご用意!もちろん日本語で! https://docs.unrealengine.com/latest/JPN/Platforms/VR/index.html #TokyoEdge2017

31.

さらに、VR用のテンプレートもご用意! • ヘッド・ポジショントラッキング • モーションコントローラ • 手の表示、インタラクション • テレポート移動 #TokyoEdge2017

32.

実演!解説! • エディタ設定(ウィンドウサイズ) • Pawnの構成 • MotionControllerコンポーネントについて • 銃・弾の実装 #TokyoEdge2017

33.

ここまでのまとめ • 様々なHMDに対してエンジン側でガッツリ対応済 • VRコンテンツの開発支援体制 • ちょっとしたプロトタイプなら簡単に作れるよ! #TokyoEdge2017

34.

お品書き • GDCで発表されたUE4に関する情報 • UE4におけるVRコンテンツの作り方 • より良いVRコンテンツにするために #TokyoEdge2017

35.

より良いVRコンテンツとは…? • VR酔いを引き起こさない ( 引き起こしにくい ) • 高フレームレート • ベクションの回避 • 没入感 / プレゼンスを体験者に与える 今日説明するのはここ コンテンツ内容への依存少なめ おもしろーい! / たのしー! コンテンツ #TokyoEdge2017

36.

VRコンテンツで必要なフレームレート • OculusRift / HTC Vive :90fps ( 11ms ) • PSVR / モバイルVR :60fps ( 16ms ) #TokyoEdge2017

37.

VRコンテンツ製作で有用なテクニックを紹介 • プロファイル用の便利機能の紹介 • フレームレート改善Tips • CPU編 • GPU編 おもしろーい! / たのしー! 最適化作業 #TokyoEdge2017

38.

最適化していきましょー • ライティングは重いらしいから、数を減らすかベイクしよう • ポリゴン数多いとマズイみたい。見た目悪くなるけど削るか • 重いのは敵がいっぱい出てるからな気がする、減らそう 「とりあえず / なんとなく最適化」はNG! #TokyoEdge2017

39.

最適化作業する上で大事なこと 最適化作業は、クオリティを落とすための作業ではありません 指針がない最適化作業は非常に効率悪い • 0.1msの処理を50%改善しても0.05ms減るだけ プロファイルしてボトルネックを探そう! #TokyoEdge2017

40.

公式ドキュメント 「パフォーマンスおよびプロファイリング」 • https://docs.unrealengine.com/latest/JPN/Engine/Performance/index.html #TokyoEdge2017

41.

コンソールコマンド #TokyoEdge2017

42.

stat コマンド プロファイリング用のコンソールコマンド • https://docs.unrealengine.com/latest/JPN/Engine/Performance/StatComman ds/index.html #TokyoEdge2017

43.

stat unit / stat unitgraph ボトルネックになっているのは CPUなのか、GPUなのか? Frame: Game : Draw : GPU : ゲーム全体 ゲームの実装部分( BP, C++ ) 描画処理(CPU) 描画処理(GPU) #TokyoEdge2017

44.

各機能の処理計測 • stat scenerendering • レンダリングのCPU処理 • ドローコール ( シェーダの複雑度・ポリゴン数・オブジェクト数など ) • stat anim • アニメーションの負荷 • ボーン多すぎなど • stat particles • パーティクルの負荷 • 生成量多すぎなど #TokyoEdge2017

45.

stat dumphitches 極稀に発生するヒッチ(カクツキ)をプロファイル… • 様々な演出が偶然重なり… • ガベージコレクション t.HitchThresholdよりも時間がかかった フレームのログを出力 #TokyoEdge2017

46.

stat startfile / stat stopfile CPUプロファイラ (Unreal Frond End) • ネイティブ・BPの処理負荷などを計測 • どのBPの どの関数 / イベントの どの処理が 1フレームに何回呼ばれていて 処理時間はどれ程か? #TokyoEdge2017

47.

ProfileGPU レンダリングに関するGPU処理 • • • • BasePass Lighting Postprocess ・・・ #TokyoEdge2017

48.

Stat GPU リアルタイムGPUプロファイラ • GPU負荷が高まるタイミングの調査 stat startfle / stat stopfileで CPUのように負荷を確認することも可能 #TokyoEdge2017

49.

注意 : VRSDKによるフレーム固定(vsync)問題 処理が遅いと、90fpsから45fpsにフレームが固定される 固定が解除されるまで一定時間待つ必要あり 正常な処理時間を計測することができない #TokyoEdge2017

50.

Emulate HMD performance VR描画を擬似的に再現することで フレーム固定問題を回避 • Launch with –emulatestereo • Set resolution to 2160x1200 • Set r.screenpercentage 140 #TokyoEdge2017

51.

#TokyoEdge2017

52.

VRコンテンツ製作で有用なテクニックを紹介 • プロファイル用の便利機能の紹介 • フレームレート改善Tips • CPU編 • GPU編 #TokyoEdge2017

53.

そのTickイベント、本当に必要? Tickイベント:毎フレーム呼ばれるイベント • 処理が繋がっていなくても、わずかな処理コストが発生 • 不要なら切る • 更新間隔を変更 #TokyoEdge2017 : Tick Enabledをオフ : Tick Intervalを調整

54.

処理タイミングをずらして負荷分散! 何かを生成(Spawn)する処理は重い! ある1フレームで一気に処理するのではなく 複数フレームで分散 ① ② ③ #TokyoEdge2017 90fpsの場合、①と③の間は わずか0.02秒 → ばれない

55.

Blueprintを高速化! BluePrintって良いらしいけど、重いんでしょ? 結局C++書かないといけないんでしょ? UE4.15で、BPのネイティブ( C++ )化機能が正式に入りました! VMのオーバヘッドによる負荷がなくなります! Robo Recallで既に活用されています! #TokyoEdge2017

56.

BluePrintのネイティブ化 https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/Technical Guide/NativizingBlueprints/index.html #TokyoEdge2017

57.

おまけ:UE4.15で入った主な最適化 • エンジンのビルド時間が約半分に • ゲームのロード時間が劇的に改善(Event Driven Loader) • テクスチャストリーミングの改善 UE4.15 超おすすめです! #TokyoEdge2017

58.

VRコンテンツ製作で有用なテクニックを紹介 • プロファイル用の便利機能の紹介 • フレームレート改善Tips • CPU編 • GPU編 #TokyoEdge2017

59.

最近入ったVR向けの機能 #TokyoEdge2017

60.

Forward Rendering for VR (4.14) • VRと相性の悪いDeferred Renderingから切り替え • GPU処理負荷が大幅に軽減 • Gバッファが使えない( = 一部のポストが使えない ) • MSAAが利用可能に #TokyoEdge2017

61.

Forward Rendering for VR (4.14) 経緯・詳細などは以下のスライドで https://www.slideshare.net/EpicGamesJapan/ue414vr ForwardとDeferredの違いを詳しく知りたい人 https://www.slideshare.net/SatoshiKodaira/ss-69311865 #TokyoEdge2017

62.

Instanced Stereoscopic Rendering 両目の映像を同時にレンダリング • ドローコール削減 Bullet Trainの場合 • CPU:約14%改善 • GPU:約 7%改善 #TokyoEdge2017

63.

LOD(Level of Detail)の自動生成機能 モデルのポリゴン数削減してLODを自動生成 近<--------カメラとの距離----------->遠 #TokyoEdge2017

64.

複数のアクタからスタティックメッシュを作成 ドローコール削減 カリングとのバランスに注意 #TokyoEdge2017

65.

半透明の処理負荷 との闘い編 #TokyoEdge2017

66.

開発現場でよく見る光景 半透明を使った演出 かっこいい!!!やりたい! 半透明重いからダメ絶対!!! #TokyoEdge2017

67.

(´・ω・`)ショボーン #TokyoEdge2017

68.

疑似半透明を使う手 DitherTemporalAA • 不透明物体をドット抜き #TokyoEdge2017

69.

DitherTemporalAAの問題 • TAAを使わない場合は綺麗に描画されない • 影にノイズが生じる • Customコード(HLSL直書き用ノード)で解決可能 #TokyoEdge2017

70.

#TokyoEdge2017

71.

半透明描画用バッファを低解像度にする方法 半透明を別バッファに描画するSeparate Translucency #TokyoEdge2017

72.

#TokyoEdge2017

73.

半透明描画用バッファを低解像度にする方法 • 解像度を指定 • r.SeparateTranslucencyScreenPercentage XX • 負荷に応じて自動的に解像度を下げる設定 • r.SeparateTranslucencyAutoDownsample #TokyoEdge2017

74.

影の処理負荷 との闘い編 #TokyoEdge2017

75.

VRにおける影の重要性と問題 設地感の向上 → 実在感の向上 影重いから(ry #TokyoEdge2017

76.

#TokyoEdge2017

77.

フェイク影を使う方法 Showdownデモから採用 • Launcherよりプロジェクトをダウンロード可能 #TokyoEdge2017

78.

影用の簡易モデルを使う方法 #TokyoEdge2017

79.

各モデルの設定 • 人型のモデル #TokyoEdge2017 • 影用モデル

80.

Capsule Shadowを使う方法 • 物理アセットのカプセルを使って、ソフトな直接(間接)シャドウを描画 #TokyoEdge2017

81.

#TokyoEdge2017

82.

各設定 • SkeltalMeshのshadow Physics Assetを設定 • ActorのCapsule Direct( Indirect ) Shadowを有効に #TokyoEdge2017

83.

ライティングの処理負荷 との闘い編 #TokyoEdge2017

84.

ライトの設定で注意する点 • 可動性 • ベイクする?それとも、動的ライト? • https://docs.unrealengine.com/ latest/JPN/Engine/Rendering/ LightingAndShadows/ LightMobility/index.html • 影響範囲 • 無駄に広くない? #TokyoEdge2017

85.

エフェクトのライトモジュールには要注意! パーティクルにLight追加したらGPU負荷が跳ね上がった話 • http://darakemonodarake.hatenablog.jp/entry/2014/12/26/180438 #TokyoEdge2017

86.

おまけ #TokyoEdge2017

87.

ShowdownのSystemSettings (Config¥DefaultEngine.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 #TokyoEdge2017 • • • • • • • • • • • • 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.

さいごに • 今日紹介した辺りを一度確認しておけば 小規模なVRコンテンツなら問題ないはず…!…はず! • 開発中常に気をつける必要はあまりないですが、 ちょっと重いなぁ?と感じたら確認してみましょう! #TokyoEdge2017

89.

本講演に関する質問はこちらからどうぞ! mail : kaz.okada@epicgames.com Twitter : @pafuhana1213 #TokyoEdge2017

90.

付録 #TokyoEdge2017

91.

オススメ 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-epicgames-japan • GDC2016 Going Off the Rails: The Making of 'Bullet Train' 講演まとめ • http://qiita.com/Somelu01/items/7ad9e03adbbd2afee7e4 #TokyoEdge2017

92.

もっともっと詳しく知りたい人向け • CEDEC2016 UnrealEngine4のレンダリングフロー総おさらい • https://www.slideshare.net/EpicGamesJapan/cedec2016-unreal-engine-4 • UE4 DeepDive ライトマス勉強会 • https://www.slideshare.net/EpicGamesJapan/lightmass-lightmap-epicgames-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 #TokyoEdge2017