UE4.25 Update - Unreal Insights - 【2020】

31.9K Views

May 28, 20

スライド概要

動画: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

profile-image

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

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
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