Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Unreal Engine 4の2019年上半期アップデート情報まとめ / GTMF 2019

568 visualizaciones

Publicado el

今年2019年4月にはUnreal Engine 4.22がリリースされ、 注目のリアルタイムレイトレーシングだけではなく様々な機能が追加、改善されました。そこで本セッションではUE4.22で追加された機能を広くまとめつつ、一部の機能に関して実際の使い方等、少し深掘りしてご紹介できればと思います。

Publicado en: Tecnología
  • Inicia sesión para ver los comentarios

  • Sé el primero en recomendar esto

Unreal Engine 4の2019年上半期アップデート情報まとめ / GTMF 2019

  1. 1. Unreal Engine 4の2019年上半期 アップデート情報まとめ Epic Games Japan Support Engineer : 澤田 祐太朗
  2. 2. #UE4 | @UNREALENGINE 自己紹介 Epic Games Japan サポートエンジニア 澤田 祐太朗 主にコンソールやレンダリング周りを中心に開発のサポート
  3. 3. #UE4 | @UNREALENGINE Unreal Engine 4
  4. 4. #UE4 | @UNREALENGINE Unreal Engine 4 Unreal Engine 4 は統合ゲーム開発環境 オーディオ レンダリング アニメーション プログラミング エフェクト Unreal Engine
  5. 5. #UE4 | @UNREALENGINE 規約に同意して頂き登録を行うとフルソースコードにアクセス可能 Unreal Engine 4のソースコードについて 開発の最新ストリームを Githubにて公開 https://www.unrealengine.com/ja/ue4-on-github
  6. 6. #UE4 | @UNREALENGINE 開発環境 C++かBlueprint
  7. 7. #UE4 | @UNREALENGINE 様々な環境に向けてアウトプットが可能 コンソール PC モバイル Unreal Engine
  8. 8. UE4採用事例
  9. 9. #UE4 | @UNREALENGINE Unreal Studio
  10. 10. #UE4 | @UNREALENGINE Python/Blueprintによる自動化講演
  11. 11. #UE4 | @UNREALENGINE Unreal Engine 4の 最新アップデート情報について
  12. 12. #UE4 | @UNREALENGINE 内容 ● リアルタイムレイトレーシング ● レンダリングの最適化 ● C++ イテレーション高速化 ● アニメーション周り機能追加 ● Audio Systemに関する改善 ● その他のアップデート ● 今後のUE4 ● まとめ
  13. 13. #UE4 | @UNREALENGINE 内容 ● リアルタイムレイトレーシング ● レンダリングの最適化 ● C++ イテレーション高速化 ● アニメーション周り機能追加 ● Audio Systemに関する改善 ● その他のアップデート ● 今後のUE4 ● まとめ
  14. 14. #UE4 | @UNREALENGINE 4.22
  15. 15. #UE4 | @UNREALENGINE Troll動画
  16. 16. #UE4 | @UNREALENGINE “Troll’ from Goodbye Kansas and Deep Forest Films ● ブースにてリアルタイム実行 のデモを展示 興味のある方はぜひブースへ
  17. 17. #UE4 | @UNREALENGINE リアルタイムレイトレーシング動作環境 ● 現状必要な環境 ● Windows 10 October 2018 Update適応済みのWindows PC ● DXRをサポートしたNvidiaのGPU ---Early Access---
  18. 18. #UE4 | @UNREALENGINE リアルタイムレイトレーシング設定 ---Early Access--- ● 必要な設定(1) ● Project Settings > Platforms >Windows Default RHI をDirectX12に設定 ● Project Settings > Engine > Rendering Ray Tracingを有効化
  19. 19. #UE4 | @UNREALENGINE リアルタイムレイトレーシング設定 ---Early Access--- ● 必要な設定(2) ● Project Settings > Engine > Rendering Support Compute Skincacheを有効化 https://www.slideshare.net/EpicGamesJapan/ cedec2018-ue4-111104578
  20. 20. #UE4 | @UNREALENGINE リアルタイムレイトレーシングの動作 ---Early Access--- ● 各種設定後再起動すると有効化 ● 代表的な効果として Reflectionが綺麗に ● パストレースや Debug機能がViewport オプションから選択可能
  21. 21. #UE4 | @UNREALENGINE UE4 Ray Tracing Night @ Tokyo https://connpass.com/event/125250/
  22. 22. #UE4 | @UNREALENGINE 内容 ● リアルタイムレイトレーシング ● レンダリングの最適化 ● C++ イテレーション高速化 ● アニメーション周り機能追加 ● Audio Systemに関する改善 ● その他のアップデート ● 今後のUE4 ● まとめ
  23. 23. レンダリングの最適化 ● Mesh Drawing Pipelineの改善 ● 基本的な考え方はメッシュ描画のコマンド(描画に必要な設定情報)をキャッシュし、 効率的に使用したり、コマンドをマージすることでDraw Callを削減
  24. 24. #UE4 | @UNREALENGINE レンダリングの4.21と4.22の比較 ● UE4.21と4.22で Sequencerサンプルで検証
  25. 25. #UE4 | @UNREALENGINE レンダリングの4.21と4.22の比較 (Stat SceneRendering) UE4.21 UE4.22 Mesh draw calls : 470 Mesh draw calls : 204 半分以下に
  26. 26. #UE4 | @UNREALENGINE 内容 ● リアルタイムレイトレーシング ● レンダリングの最適化 ● C++ イテレーション高速化 ● アニメーション周り機能追加 ● Audio Systemに関する改善 ● その他のアップデート ● 今後のUE4 ● まとめ
  27. 27. #UE4 | @UNREALENGINE C++ イテレーション高速化 ● Molecular Matters の Live++ライセンスを取得し、 新しい ライブ コーディング 機能(実験的機能)として統合 ● UnrealBuildTool と UnrealHeaderTool が最適化され、 C++ のイテレーション時間が最大 3 倍高速に
  28. 28. #UE4 | @UNREALENGINE ライブコーディング(Live++) ---Experimental--- ● Editor Preferences > Live Coding > Enable Live Codingを有効化 基本的な使用方法 ● VS側でファイルを保存し Ctrl+Alt+F11
  29. 29. #UE4 | @UNREALENGINE Live++例 ● Game側の実装でMyActorを作成 ● TickでStatic変数tempNumをひたすらインクリメント LOGを出力 ---Experimental---
  30. 30. #UE4 | @UNREALENGINE
  31. 31. #UE4 | @UNREALENGINE
  32. 32. #UE4 | @UNREALENGINE 実行できるようになるまでの時間比較 Hot Reload 7.53 sec Live++ 5.09 sec ---Experimental--- ● 上記は何度かタイマーで計測して平均した、およその時間 ● これまでの機能であるHotReloadよりも速い ● Live++の場合実行中でも変更可能なメリットも
  33. 33. #UE4 | @UNREALENGINE Live++のオプションの注意点 ---Experimental--- ● Engine側のモジュールやPluginのコードを含めると動作が不安定に
  34. 34. #UE4 | @UNREALENGINE 内容 ● リアルタイムレイトレーシング ● レンダリングの最適化 ● C++ イテレーション高速化 ● アニメーション周り機能追加 ● Audio Systemに関する改善 ● その他のアップデート ● 今後のUE4 ● まとめ
  35. 35. #UE4 | @UNREALENGINE アニメーション周りの最適化 ● Skeletal Mesh Reduction ● Animation Budget Allocator
  36. 36. #UE4 | @UNREALENGINE Skeletal Mesh Reduction
  37. 37. Skeletal Mesh Reduction [4.22-] ● 4.22からSkeletal MeshのReductionに対応 ● 従来はStatic Mesh(ボーン等が入っていないメッシュ)のみの対応 LOD0 41052 triangles LOD1 20524 triangles LOD2 10262 triangles LOD3 4104 triangles LOD4 2052 triangles
  38. 38. Skeletal Mesh Reduction [4.22-] ● LOD Settings -> Number of LODsでLODの数を設定
  39. 39. Skeletal Mesh Reduction [4.22-] ● LOD Pickerから調整したいLODを指定し設定項目を表示 ・Screen Size ・描画領域がこの割合になった時に 該当LODを描画 ・Bones to Prioritize ・リダクション時に プライオリティを上げたいBoneを設定 ・Weight Of Prioritization ・プライオリティ(品質)を保持する割合 ・Bones to Remove ・Skeletonから参照するボーンを 削除するリスト
  40. 40. Skeletal Mesh Reduction [4.22-] ● LOD Info内のReduction Settingsを展開 ・Termination Criterion ・リダクションの基準とするもの ・Percent Of Triangles ・どのぐらいの割合で基準となるものを 減らすか ・Max Bones Influence ・影響させるボーンの数 ・Lock Mesh Edges ・メッシュの端のトポロジを保つ
  41. 41. Lock Mesh Edges LOD0 6040 triangles LOD1 2030 triangles (Disable Lock Mesh Edge) LOD1 2030 triangles (Enable Lock Mesh Edge)
  42. 42. LODの設定について [4.22-] ● 以前はPlatformグループ毎の設定でしたが、(PC、Console、Mobile) 4.22からPlatformごとにMinLOD(最低のLOD)を設定できるように ● 不要なLODモデルをパッケージに 含まないようにするためには、 以下の設定が必要 ”r.SkeletalMesh.StripMinLodDataDuringCooking 1”
  43. 43. アセットリダクションについて Static Meshに関してやアセットのコンソール向け最適化に関する情報は 過去の勉強会で公開を行った資料で紹介しています。 https://www.slideshare.net/EpicGamesJapan/fortnite-97791917 https://www.slideshare.net/EpicGamesJapan/ue4-95238296
  44. 44. #UE4 | @UNREALENGINE Animation Budget Allocator
  45. 45. Animation Budget Allocator[4.22] Skeletal Mesh ComponentのTick制御を動的に制限する機能 プラットフォームごとに(ゲームスレッドでの時間配分)を決めて その時間の中で実行を行う 以下のような処理を切り替える、 ・Tick処理を止める、 ・Master Pose Componentに切り替える ・アップデートの間の処理を補完、 または補完しない ---Experimental---
  46. 46. Animation Budget Allocator ● Pluginの有効化 ● Skeletal Mesh Componentの置き換え ● Animation Budgetの有効化 ● Significanceの定義(関数設定)
  47. 47. Pluginの有効化 [Plugins]->[Programming]->[Animation Budget Allocator]
  48. 48. Animation Budgetの有効化 ● Game ModeなどでEnable Animation Budgetノードを実行 ● 全体を管理するAnimation Budget Allocatorを作成 ● a.Budget.Enabled 1を設定し有効化 ● 制御を行うためのフラグ
  49. 49. ● Animation Budget Allocator登録したいSkeletal Meshを Skeletal Mesh Component Budgetedに置き換える Skeletal Mesh Component Budgetedの置き換え Pluginに含まれているコンポーネントです
  50. 50. ● このコンポーネントでは、Animation Budget Allocatorに 自分自身を登録したり、解除を行う Skeletal Mesh Component Budgetedについて こちらを参考に独自のSkeletal Mesh Componentを 作成してもよいかと思います
  51. 51. ● どのアニメーションが重要か、定義を行う。 ● デフォルトだとAllocatorへの登録順 ● 定義されているDelegateに関数を設定し、 Skeletal Mesh Component Budgeted内の以下フラグを有効化する Significanceの定義(関数設定)
  52. 52. ● Player(カメラ)近くのアニメーションを重要度が高い、とするサンプル Significance関数のサンプル float FAnimationBudgetAllocator::SignificanceFunction(USkeletalMeshComponentBudgeted* InComponent) { FVector ComponantLocation = InComponent->GetOwner()->GetActorLocation(); if (InComponent->GetOwner()->GetWorld()) { APlayerController* CurrentPlayerController = InComponent->GetOwner()->GetWorld()- >GetFirstPlayerController(); if (CurrentPlayerController) { // プレイヤー近くのSignificanceを上げる return - (ComponantLocation - CurrentPlayerController->PlayerCameraManager- >GetCameraLocation()).Size(); } } return 0.0f; }
  53. 53. ● SetEnabledなどで重要度の(Significance)関数を設定する DelegateにSignificance関数を設定
  54. 54. ● a.Budget.MaxTickRate ● 許容最大TickRate(フレーム単位)。これが設定されていると、予算を超える可能性があります が、個々アニメーションのクオリティを保つことができます。(デフォルト:10) ● a.Budget.BudgetMs ● 登録されているSkeletal MeshのTick時間の予算。Default 1ms Animation Budget Allocator主要なパラメータ
  55. 55. a.Budget.BudgetMsの比較 制限なし a.Budget.BudgetMs 1 Skeletal Mesh 100体のAnimation付きSkeletalMeshをSpawn
  56. 56. 制限なし a.Budget.BudgetMs 2 a.Budget.BudgetMsの比較 Skeletal Mesh 100体のAnimation付きSkeletalMeshをSpawn
  57. 57. Animation Budget Allocatorのデバッグ表示 ドキュメントが誤っており、現状defineで WITH_TICK_DEBUG 1 に設定するとDebug表示 .¥release-4.22¥Engine¥Plugins¥Runtime¥AnimationBudgetAllocator¥Source¥AnimationBudgetAllocator¥Private¥AnimationBudgetAllocator.h
  58. 58. ● 現在Early Accessの機能 ● 大量のキャラクターを表示させたい時 ● Tickを減らせるのでGame Threadに対して有効 ● Skeletal Mesh Reductionsや、 Dynamic Resolution と組み合わせると効果的 Animation Budget Allocator まとめ
  59. 59. #UE4 | @UNREALENGINE 内容 ● リアルタイムレイトレーシング ● レンダリングの最適化 ● C++ イテレーション高速化 ● アニメーション周り機能追加 ● Audio Systemに関する改善 ● その他のアップデート ● 今後のUE4 ● まとめ
  60. 60. #UE4 | @UNREALENGINE Audio Systemに関する改善 ● New Audio Engineについて ● Time Synthについて ● Sound Concurrency のレイヤー化 ● Sound アセットインポート機能の改善
  61. 61. #UE4 | @UNREALENGINE New Audio Engineについて ● 4.22で当初New Audio EngineがデフォルトになるとPreview版の告知には書かれていましたが、 リリース版でのデフォルトは従来通りとなっています Audio Device New Audio Engine Audio Audio Mixer
  62. 62. #UE4 | @UNREALENGINE Audio Systemの指定方法について ● AudioDeviceModuleNameとAudioMixerModuleNameは WindowsEngine.ini等Configで設定 ● au.IsUsingAudioMixer ?で現在の設定を確認 LoadModule AudioDevice ModuleName LoadModule AudioMixer ModuleName UseAudioMixer True False False Configの[Audio]のUseAudioMixer または、起動時の-AudioMixer引数
  63. 63. #UE4 | @UNREALENGINE ● 新規プロジェクトでUseAudioMixerをTrueにするConfigを自動で追加する仕組みが導入 ● bUseAudioMixerForAllPlatformsはデフォルト無効化されているのでこれをTrueにするか または、AudioMixerEnabledPlatFormsのArrayに対応したいプラットフォームを追加 UseAudioMixerについて
  64. 64. #UE4 | @UNREALENGINE Time Synthについて ● 音声クリップをサンプルベースで正確な位置で開始、停止、連結を提供する ことに重点を置いた、新しいオーディオ コンポーネント
  65. 65. #UE4 | @UNREALENGINE Time Synth Pluginの有効化 ● Plugin > Audio > Time Synthを有効化し再起動
  66. 66. #UE4 | @UNREALENGINE Time Synthのセットアップ ● ActorなどにTime Synth Componentを追加してQuantization Settingsを設定 Time Synth Componentの役割 Audio Threadで再生しているサウンドの タイミングを管理し、Eventを発生させる Quantization Settings Beats Per Minute(BPM) : 1分間の拍子 Beats Per Bar : 1小節何拍子か Beat Division : 1拍子の分割数 Global Quantization :Globalでのタイミング ※Event Delay Secondsに関しては現状未実装
  67. 67. #UE4 | @UNREALENGINE Time Synthで再生するサウンドについて ● Content Browserの右クリックから Sound > Time Synth Clipを作成 作成したTime Synth Clipを開きSound Waveを登録
  68. 68. #UE4 | @UNREALENGINE Time Synth ComponentにEventを設定 ● Add Quantization Event Delegateによってイベントを追加 以下例では、1小節、1拍子ごとにイベントを呼ぶように設定
  69. 69. #UE4 | @UNREALENGINE Time Synth Componentの実行 ● この状態で実行すると、 それぞれ同期した状態でイベントが呼ばれる イベント上で別のClipを再生したり Clipを停止することでリズムに合った サウンドの再生が可能となる イベントでは現在の小節や拍子の番号を取得可能
  70. 70. #UE4 | @UNREALENGINE Sound Concurrency のレイヤー化
  71. 71. #UE4 | @UNREALENGINE Sound Concurrency のレイヤー化 ● Sound Concurrencyはサウンドの並列再生に関する設定 ● AudioComponent、SoundBase、SynthComponentに対して複数設定が可能に Max Count:同時再生数 Resolution Rule: 同時再生数を超えた場合の挙動定義 複数設定した場合... Resolution Rule が同時に 実行されるため注意
  72. 72. #UE4 | @UNREALENGINE Sound Concurrency のレイヤー化 ● 複数条件により評価処理が複雑になっているため 詳しく確認したい場合はEvaluteConcurrency関数を参照 .¥release-4.22¥Engine¥Source¥Runtime¥Engine¥Private¥SoundConcurrency.cpp
  73. 73. #UE4 | @UNREALENGINE Sound アセットインポート機能の改善
  74. 74. #UE4 | @UNREALENGINE Sound アセットインポート機能の改善 ● これまで対応していたWAVファイルに加えて 「AIFF」、「FLAC」、「Ogg Vorbis」に対応 設定等は必要なく、Content Browser に ドラッグ&ドロップでインポート可能
  75. 75. #UE4 | @UNREALENGINE 内容 ● リアルタイムレイトレーシング ● レンダリングの最適化 ● C++ イテレーション高速化 ● アニメーション周り機能追加 ● Audio Systemに関する改善 ● その他のアップデート ● 今後のUE4 ● まとめ
  76. 76. #UE4 | @UNREALENGINE その他アップデート ● バーチャル プロダクション パイプラインの改善 ● Hololens リモート ストリーミングのサポート
  77. 77. #UE4 | @UNREALENGINE Composure によるリアルタイム コンポジットを大幅に強化 バーチャル プロダクション パイプラインの改善 ・OpenColorIO (OCIO) カラー プロファイルへの対応 (実験的機能) ・GPUによるビデオ デコード (実験的機能) ・新しい Media I/O フォーマット ・nDisplay の改善
  78. 78. #UE4 | @UNREALENGINE 4.22でHololensのリモートストリーミングをサポート PC側でレンダリング等を行いストリーミング映像がHololens上で表示される 4.23にてHololens 2 へのネイティブ対応を予定 Hololens リモート ストリーミングのサポート https://www.unrealengine.com/ja/blog/unreal-engine-4-support-for-hololens-2-released-in-early- access?sessionInvalidated=true
  79. 79. #UE4 | @UNREALENGINE 弊社Axelによるブログ記事でスタートアップガイドを公開 Hololens リモート ストリーミングスタートアップ https://qiita.com/EGJ-Axel_Riffard/items/58799a1dd1db0e9e7351
  80. 80. #UE4 | @UNREALENGINE 内容 ● リアルタイムレイトレーシング ● レンダリングの最適化 ● C++ イテレーション高速化 ● アニメーション周り機能追加 ● Audio Systemに関する改善 ● その他のアップデート ● 今後のUE4 ● まとめ
  81. 81. #UE4 | @UNREALENGINE UE4 Roadmapについて https://trello.com/b/TTAVI7Ny/ue4-roadmap
  82. 82. #UE4 | @UNREALENGINE 4.23 Preview
  83. 83. #UE4 | @UNREALENGINE Unreal Insights
  84. 84. #UE4 | @UNREALENGINE Unreal Insights
  85. 85. #UE4 | @UNREALENGINE Unreal Insights
  86. 86. #UE4 | @UNREALENGINE Unreal Insights
  87. 87. #UE4 | @UNREALENGINE Unreal Insights ¥UE_4.23¥Engine¥Binaries¥Win64¥UnrealInsights.exeを起動しておく
  88. 88. #UE4 | @UNREALENGINE Unreal Insights 起動引数に-cpuprofilertraceの追加が必要(以下例ではStandalone実行の引数に追加)
  89. 89. #UE4 | @UNREALENGINE Unreal Insights ゲーム上で@キーを押し、stat namedevents 1コマンドを実行
  90. 90. #UE4 | @UNREALENGINE Unreal Insights StatusがLIVEになってることを確認し、Openをクリック
  91. 91. #UE4 | @UNREALENGINE Unreal Insights
  92. 92. #UE4 | @UNREALENGINE Chaos
  93. 93. #UE4 | @UNREALENGINE 動画
  94. 94. #UE4 | @UNREALENGINE Chaos Demo ● 4.23でExperimental 公開の予定
  95. 95. まとめ
  96. 96. まとめ Unreal Engineではゲーム開発をより良くするために 日々開発を進めております
  97. 97. 告知
  98. 98. #UE4 | @UNREALENGINE Unreal Academy
  99. 99. #UE4 | @UNREALENGINE CEDEC2019 2019年9月4日(水)~6日(金)
  100. 100. #UE4 | @UNREALENGINE Unreal Fest East 2019 2019 / 10 / 6 パシフィコ横浜
  101. 101. #UE4 | @UNREALENGINE QiitaへのTips投稿 はじめました
  102. 102. #UE4 | @UNREALENGINE 内容 ● リアルタイムレイトレーシング ● レンダリングの最適化 ● C++ イテレーション高速化 ● アニメーション周り機能追加 ● Audio Systemに関する改善 ● その他のアップデート ● 今後のUE4 ● まとめ

×