UE4.25 Update - Unreal Insights - 【2020】
スライド概要
動画:https://youtu.be/NhehQI98lis
Unreal Insightsはプロファイリングに役立つツールで、これ1つでCPUもロードもネットワークの問題も解析できてしまうほど優秀です。本ウェビナーでは、そんなUnreal Insightsの機能や使い方など基礎的な部分から、4.25で追加された新しいAnimation Insights, Network Insightsの使い方などの更新情報をお届けします。
講師:
Software Engineer Developer Relations, 鍬農 健二郎 (@donbutsu17)
#EGJオンラインラーニング
https://www.unrealengine.com/ja/blog/connect-with-the-unreal-engine-community-online
作者について:
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
スライド一覧各ページのテキスト
1. 4.25 Update - Unreal Insights Epic Games Japan Software Engineer, Developer Relations 鍬農 健二郎 #UE4
2. https://docs.unrealengine.com/ja/Engine/Performance/UnrealInsights/index.html #UE4
3. Unreal Insights とは? 機能 ● アプリケーションのパフォーマンスをプロファイルするツール 良い点 ● 解析結果を元にアプリケーションを最適化することができる ● Stats やSession Frontendでの解析よりも役立つ情報が多い #UE4
4. Unreal Insightsを使う流れ ① 引数付きで起動 ② 出力 アプリケーション デベロッパー トレースファイル ④ 解析 ③ 読み取り Unreal Insights #UE4 .utrace
5. Unreal Insightsの画面 トレース一覧 #UE4 トレース詳細
6. Unreal Insightsの画面 Timing Insights (CPU, GPU, Log,...) Asset Loading Insights (Asset Load) Animation Insights (Animation) トレース詳細 Network Insights (Network) #UE4
7. 目次 ● ● ● ● #UE4 Timing Insights Asset Loading Insights Animation Insights Network Insights
8. Timing Insights #UE4
9. Timing Insights とは? CPUやGPUなどのイベントを時系列で出力して表示する ことができる ● 各スレッドの動作状況などを知ることができる ● トレースはStandaloneやPackage(Shipping以外)で利用可 ● できるだけTestビルドを使用する ⇒ デバッグやパフォーマンス検証が捗る #UE4
10. データのキャプチャ アプリケーション起動引数でチャンネルを指定 例:CPUとGPUのキャプチャを取る場合 -trace=CPU,GPU UE4.25からチャンネルを指定する方式に変更 ● UE4.25以前:-cpuprofilertrace ● UE4.25以降:-trace=cpu (チャンネル:Cpu/Gpu/Bookmark/Frame/Loadtime/File/Net/Log) #UE4
11. #UE4
12. Timing Insights を開く Unreal InsightsのTiming Insightsタブから #UE4
13. Timing Insights #UE4
14. Timing Insights - GameThread - ナイアガラ 入力検出 #UE4 移動 アニメーション
15. Timing Insights - Thread - #UE4
16. Timing Insights - Track Filtering - #UE4
17. Timing Insights - Bookmark表示 - #UE4
18. Timing Insights - Channel別 - Frame File GPU CPU #UE4
19. Timing Insights - EventList - イベント毎の CountとExecTime 燃えているマークは ホットスポット #UE4
20. Timing Insights - Stats - #UE4
21. CPU&GPU の最適化 CPU プロファイリング https://docs.unrealengine.com/ja/Engine/Performance/CPU/index.html GPU プロファイリング https://docs.unrealengine.com/ja/Engine/Performance/GPU/index.html 60fpsアクションを実現する秘訣を伝授 基礎編 https://www.slideshare.net/EpicGamesJapan/ue4-festeast2019-60fpsbasic [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編) https://www.slideshare.net/EpicGamesJapan/cedec2017-ue4 UE4 Performance and Profiling | Unreal Dev Day Montreal 2017 (日本語訳) https://www.slideshare.net/EpicGamesJapan/montreal-dev-daypresentationv1jp #UE4
22. 目次 ● ● ● ● #UE4 Timing Insights Asset Loading Insights Animation Insights Network Insights
23. Asset Loading Insights #UE4
24. Asset Loading Insights とは? アセットのロードイベントを時系列で出力して表示する ことができる ● アセットをどのタイミングでロードしたのか、ロードにどのくら い時間を要したのかを知ることができる ● Package(Shipping以外)で利用可 ⇒ デバッグやパフォーマンス検証が捗る #UE4
25. データのキャプチャ アプリケーション起動引数で”Loadtime”を指定 -trace=Loadtime CPUイベントやI/Oイベントと並行して確認することで、 より詳細な情報が得られる -trace=Loadtime,File,Cpu -statnamedevents #UE4
26. Asset Loading Insights を開く Unreal InsightsのAsset Loading Insightsタブから #UE4
27. Asset Loading Insights - Elemental - レベルロード時のアセットをトラッキング #UE4
28. Asset Loading (PreInit) #UE4
29. Event Aggregation イベント毎にリスト化して負荷を調べることができる #UE4
30. Object Type Aggregation オブジェクトタイプ毎にリスト化して負荷を調べることができる #UE4
31. Package Details パッケージ毎にリスト化して負荷を調べることができる #UE4
32. Export Details パッケージ、クラス別にリスト化して負荷を調べることができる #UE4
33. アセットロード の最適化 UE4におけるLoadingとGCのProfilingと最適化手法 https://www.slideshare.net/EpicGamesJapan/ue4loadinggcprofiling 『ドラゴンクエストXI S』はいかにUnreal Engine 4で最適化されたか? https://www.famitsu.com/news/201910/16184681.html [UE4] Asset Managerのアセットの非同期ロード機能について https://qiita.com/EGJ-Kaz_Okada/items/f18bca3fb5c8fc1aea9c #UE4
34. 目次 ● ● ● ● #UE4 Timing Insights Asset Loading Insights Animation Insights Network Insights
35. Animation Insights #UE4 UE4.25
36. Animation Insights とは? Pose, Curve, Blend などアニメーションの情報を視覚化して 表示することができる ● Editorで利用可能 ⇒ デバッグやパフォーマンス検証が捗る #UE4
37. Animation Insights を有効化 以下の3つのPluginを有効(Enabled=true)にする #UE4
38. Animation Insights を開く [Window]>[Developer Tool]>[Profiling]を選択 ● [Animation Insights]を開く ● [Trace Data Filtering]を開く #UE4
39. この2つを使って解析 #UE4
40. キャプチャする時はこうなる フィルタリング #UE4
41. Trace Data Filtering 機能 ● チャンネル単位で指定が可能 ● デフォルトはAnimationキャプ チャ用のプリセットが選択可能 (選択した時点でキャプチャ開始) #UE4
42. データのキャプチャ [Animation]を選択するだけ ※起動引数でのチャンネル指定(-trace=Animation,Object,Frame)と同じ #UE4
43. #UE4
44. Animation Insights - Third Person - #UE4
45. Animation Insights - Blend - #UE4
46. Animation Insights - Graph - #UE4
47. Animation Insights - Pose - #UE4
48. Animation Insights - デバッグ表示 - ● デバッグ表示 Pose→Draw Pose Pose→Draw Bone を有効にする ● スクラブ再生 “Ctrl”キーを押しなが らバーをスライド #UE4
49. Animation Insights - Advanced LocomotionV4 - #UE4
50. Animation Insights - Montage - #UE4
51. Animation Insights - Notify - #UE4
52. Animation Insights のフィルタリング ソースフィルタ (Object指定) チャンネルフィルタ ワールドフィルタ (Channel指定) (World指定) #UE4
53. Trace Soure Filterのフィルタ作成 #UE4
54. Trace Soure Filterのフィルタ作成 フィルタリング用の関数を作成 #UE4
55. Trace Soure Filterのフィルタ作成 ThirdPersonCharacterのみを抽出 #UE4
56. Trace Soure Filterのフィルタ作成 表示するフィルター名を入力 #UE4
57. Trace Soure Filterのフィルタ作成 ANDやORなど論理フィルタが可能 #UE4
58. Trace Soure Filterのフィルタ作成 どのActorがフィルタリングされたかを視覚化 #UE4
59. Trace Soure Filter:全Actorのワイヤーフレーム表示 #UE4
60. Trace Soure Filter:フィルタをパスしたActorのみワイヤーフレーム表示 (Filter:StaticMeshActor) #UE4
61. Trace Soure Filter:フィルタをパスしないActorの要因表示 (Filter:StaticMeshActor) #UE4
62. Animation Insights のデータ [Project]/Saved/TraceSessions に保存される ● 保存された.utraceはUnreal Insightsでも表示可能 ● Animation InsightsのPluginが有効だと生成される ● #UE4 ディスク容量に注意 (Editor起動の度に.utraceファイルが増加)
63. Animation の最適化 アニメーションの最適化 https://docs.unrealengine.com/ja/Engine/Animation/Optimization/index.html [CEDEC2018] UE4アニメーションシステム総おさらい https://www.slideshare.net/EpicGamesJapan/cedec2018-ue4-111104578 Optimizing UE4 for Fortnite: Battle Royale - Part 1 | GDC 2018 https://www.youtube.com/watch?v=KHWquMYtji0&feature=emb_title #UE4
64. 目次 ● ● ● ● #UE4 Timing Insights Asset Loading Insights Animation Insights Network Insights
65. Network Insights #UE4 UE4.25
66. Network Insights とは? 送受信パケットやRPCコールなどネットワークの情報を 視覚化して表示することができる ● Network Profilerよりも利便性が良い ● Editor, Package(Shipping/Test以外)で利用可 ⇒ デバッグやパフォーマンス検証が捗る #UE4
67. データのキャプチャ アプリケーション起動引数でNetTraceを指定する -trace=Net -NetTrace=1 -tracehost=localhost チャンネル ● ”Net”指定 #UE4 トレースレベル (1以上必須) ● 0:Default ● 1:Verbose ● 2:VeryVerbose トレース先指定 (任意) ● IPアドレスを指定 ● PIEなどローカル時は不要
68. データのキャプチャ (Network) 例:パッケージゲームのキャプチャ時 例:Visual Studio起動のキャプチャ時 #UE4
69. #UE4
70. Network Insights を開く Networkのデータをキャプチャした後にタブを選択するだけ #UE4
71. Network Insights - Shooter Game - #UE4
72. Network Insights - Overview - Game Instance Net Connection 送信/受信 パケット パケット詳細 (Block) #UE4 パケット詳細 (List)
73. Network Insights - Outgoing - キャラクターの移動の通知するRPC (ServerMove) #UE4
74. Network Insights - Incoming - #UE4
75. Network Insights - Net Stats - パケットを選択すると パケットの詳細がリスト化される #UE4
76. Network の最適化 パフォーマンスと帯域幅に関するヒント https://docs.unrealengine.com/en-US/Gameplay/Networking/Actors/ReplicationPerformance/index.html UE4でマルチプレイヤーゲームを作ろう https://www.slideshare.net/EpicGamesJapan/ue4howtocreatemultiplayergame Networking in UE4: Server Optimizations | Live Training https://www.youtube.com/watch?v=mT8VUVuk-CY #UE4
77. Unreal Insights のUE4.25アップデート ● ● ● ● #UE4 Animation Insights, Network Insightsの追加 起動引数が変更、以前のコマンドは非推奨に 自動Live接続機能追加 別プロセス化により複数トレースを開けるように
78. 4.25での変更点:自動Live接続 有効時アプリケーションを検出して 自動LIVEトレース開始 #UE4 自動検出対象は Platform, App Name一致
79. 4.25での変更点:プロファイルビューを別プロセス化 UE4.24 #UE4 UE4.25
80. #UE4