30.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
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
4.25 Update - Unreal Insights Epic Games Japan Software Engineer, Developer Relations 鍬農 健二郎 #UE4
https://docs.unrealengine.com/ja/Engine/Performance/UnrealInsights/index.html #UE4
Unreal Insights とは? 機能 ● アプリケーションのパフォーマンスをプロファイルするツール 良い点 ● 解析結果を元にアプリケーションを最適化することができる ● Stats やSession Frontendでの解析よりも役立つ情報が多い #UE4
Unreal Insightsを使う流れ ① 引数付きで起動 ② 出力 アプリケーション デベロッパー トレースファイル ④ 解析 ③ 読み取り Unreal Insights #UE4 .utrace
Unreal Insightsの画面 トレース一覧 #UE4 トレース詳細
Unreal Insightsの画面 Timing Insights (CPU, GPU, Log,...) Asset Loading Insights (Asset Load) Animation Insights (Animation) トレース詳細 Network Insights (Network) #UE4
目次 ● ● ● ● #UE4 Timing Insights Asset Loading Insights Animation Insights Network Insights
Timing Insights #UE4
Timing Insights とは? CPUやGPUなどのイベントを時系列で出力して表示する ことができる ● 各スレッドの動作状況などを知ることができる ● トレースはStandaloneやPackage(Shipping以外)で利用可 ● できるだけTestビルドを使用する ⇒ デバッグやパフォーマンス検証が捗る #UE4
データのキャプチャ アプリケーション起動引数でチャンネルを指定 例:CPUとGPUのキャプチャを取る場合 -trace=CPU,GPU UE4.25からチャンネルを指定する方式に変更 ● UE4.25以前:-cpuprofilertrace ● UE4.25以降:-trace=cpu (チャンネル:Cpu/Gpu/Bookmark/Frame/Loadtime/File/Net/Log) #UE4
#UE4
Timing Insights を開く Unreal InsightsのTiming Insightsタブから #UE4
Timing Insights #UE4
Timing Insights - GameThread - ナイアガラ 入力検出 #UE4 移動 アニメーション
Timing Insights - Thread - #UE4
Timing Insights - Track Filtering - #UE4
Timing Insights - Bookmark表示 - #UE4
Timing Insights - Channel別 - Frame File GPU CPU #UE4
Timing Insights - EventList - イベント毎の CountとExecTime 燃えているマークは ホットスポット #UE4
Timing Insights - Stats - #UE4
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
目次 ● ● ● ● #UE4 Timing Insights Asset Loading Insights Animation Insights Network Insights
Asset Loading Insights #UE4
Asset Loading Insights とは? アセットのロードイベントを時系列で出力して表示する ことができる ● アセットをどのタイミングでロードしたのか、ロードにどのくら い時間を要したのかを知ることができる ● Package(Shipping以外)で利用可 ⇒ デバッグやパフォーマンス検証が捗る #UE4
データのキャプチャ アプリケーション起動引数で”Loadtime”を指定 -trace=Loadtime CPUイベントやI/Oイベントと並行して確認することで、 より詳細な情報が得られる -trace=Loadtime,File,Cpu -statnamedevents #UE4
Asset Loading Insights を開く Unreal InsightsのAsset Loading Insightsタブから #UE4
Asset Loading Insights - Elemental - レベルロード時のアセットをトラッキング #UE4
Asset Loading (PreInit) #UE4
Event Aggregation イベント毎にリスト化して負荷を調べることができる #UE4
Object Type Aggregation オブジェクトタイプ毎にリスト化して負荷を調べることができる #UE4
Package Details パッケージ毎にリスト化して負荷を調べることができる #UE4
Export Details パッケージ、クラス別にリスト化して負荷を調べることができる #UE4
アセットロード の最適化 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
目次 ● ● ● ● #UE4 Timing Insights Asset Loading Insights Animation Insights Network Insights
Animation Insights #UE4 UE4.25
Animation Insights とは? Pose, Curve, Blend などアニメーションの情報を視覚化して 表示することができる ● Editorで利用可能 ⇒ デバッグやパフォーマンス検証が捗る #UE4
Animation Insights を有効化 以下の3つのPluginを有効(Enabled=true)にする #UE4
Animation Insights を開く [Window]>[Developer Tool]>[Profiling]を選択 ● [Animation Insights]を開く ● [Trace Data Filtering]を開く #UE4
この2つを使って解析 #UE4
キャプチャする時はこうなる フィルタリング #UE4
Trace Data Filtering 機能 ● チャンネル単位で指定が可能 ● デフォルトはAnimationキャプ チャ用のプリセットが選択可能 (選択した時点でキャプチャ開始) #UE4
データのキャプチャ [Animation]を選択するだけ ※起動引数でのチャンネル指定(-trace=Animation,Object,Frame)と同じ #UE4
#UE4
Animation Insights - Third Person - #UE4
Animation Insights - Blend - #UE4
Animation Insights - Graph - #UE4
Animation Insights - Pose - #UE4
Animation Insights - デバッグ表示 - ● デバッグ表示 Pose→Draw Pose Pose→Draw Bone を有効にする ● スクラブ再生 “Ctrl”キーを押しなが らバーをスライド #UE4
Animation Insights - Advanced LocomotionV4 - #UE4
Animation Insights - Montage - #UE4
Animation Insights - Notify - #UE4
Animation Insights のフィルタリング ソースフィルタ (Object指定) チャンネルフィルタ ワールドフィルタ (Channel指定) (World指定) #UE4
Trace Soure Filterのフィルタ作成 #UE4
Trace Soure Filterのフィルタ作成 フィルタリング用の関数を作成 #UE4
Trace Soure Filterのフィルタ作成 ThirdPersonCharacterのみを抽出 #UE4
Trace Soure Filterのフィルタ作成 表示するフィルター名を入力 #UE4
Trace Soure Filterのフィルタ作成 ANDやORなど論理フィルタが可能 #UE4
Trace Soure Filterのフィルタ作成 どのActorがフィルタリングされたかを視覚化 #UE4
Trace Soure Filter:全Actorのワイヤーフレーム表示 #UE4
Trace Soure Filter:フィルタをパスしたActorのみワイヤーフレーム表示 (Filter:StaticMeshActor) #UE4
Trace Soure Filter:フィルタをパスしないActorの要因表示 (Filter:StaticMeshActor) #UE4
Animation Insights のデータ [Project]/Saved/TraceSessions に保存される ● 保存された.utraceはUnreal Insightsでも表示可能 ● Animation InsightsのPluginが有効だと生成される ● #UE4 ディスク容量に注意 (Editor起動の度に.utraceファイルが増加)
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
目次 ● ● ● ● #UE4 Timing Insights Asset Loading Insights Animation Insights Network Insights
Network Insights #UE4 UE4.25
Network Insights とは? 送受信パケットやRPCコールなどネットワークの情報を 視覚化して表示することができる ● Network Profilerよりも利便性が良い ● Editor, Package(Shipping/Test以外)で利用可 ⇒ デバッグやパフォーマンス検証が捗る #UE4
データのキャプチャ アプリケーション起動引数でNetTraceを指定する -trace=Net -NetTrace=1 -tracehost=localhost チャンネル ● ”Net”指定 #UE4 トレースレベル (1以上必須) ● 0:Default ● 1:Verbose ● 2:VeryVerbose トレース先指定 (任意) ● IPアドレスを指定 ● PIEなどローカル時は不要
データのキャプチャ (Network) 例:パッケージゲームのキャプチャ時 例:Visual Studio起動のキャプチャ時 #UE4
#UE4
Network Insights を開く Networkのデータをキャプチャした後にタブを選択するだけ #UE4
Network Insights - Shooter Game - #UE4
Network Insights - Overview - Game Instance Net Connection 送信/受信 パケット パケット詳細 (Block) #UE4 パケット詳細 (List)
Network Insights - Outgoing - キャラクターの移動の通知するRPC (ServerMove) #UE4
Network Insights - Incoming - #UE4
Network Insights - Net Stats - パケットを選択すると パケットの詳細がリスト化される #UE4
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
Unreal Insights のUE4.25アップデート ● ● ● ● #UE4 Animation Insights, Network Insightsの追加 起動引数が変更、以前のコマンドは非推奨に 自動Live接続機能追加 別プロセス化により複数トレースを開けるように
4.25での変更点:自動Live接続 有効時アプリケーションを検出して 自動LIVEトレース開始 #UE4 自動検出対象は Platform, App Name一致
4.25での変更点:プロファイルビューを別プロセス化 UE4.24 #UE4 UE4.25
#UE4