2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UE5 + ADX でサウンドをプロファイリングし、処理負荷を調べる

Last updated at Posted at 2021-07-30

はじめに

ADXアンバサダーとして記事を書いておりますSigと申します。
この記事ではアンリアルエンジン5とサウンドミドルウェア「ADX for UE」を連携させて使った際の、様々なプロファイリング機能の使用法についてまとめています。
普段からサウンドのパフォーマンスを意識することは少ないかもしれませんが、一度開発中のゲームサウンドについて確認してみるといいかもしれません。

A00B.png
(こちらの画像のみUE4での画像ですが、プロファイリングはUE5でも同じように可能です)

本記事ではUE5の実行中に使用できるコンソールコマンドでのデバッグ・プロファイリングと、AtomCraftを連携させて行う「インゲームプレビュー」について解説します。

UE5.3+「ADX LE UE SDK(2.01.00)」を使用します。
基本的にブループリントのみでの実装を想定しています。
ADXはインディー向けの「LE版」であれば、無料で使用できます。
https://game.criware.jp/products/adx-le/

前提

「ADX for UE LE」を使用します。導入や簡単な使い方は以下の記事にあります。
ADX for UEの導入で、一歩上のサウンド表現を(導入編)
https://qiita.com/SigRem/items/4250925f6d66a4fd287a
ADX for UEの導入で、一歩上のサウンド表現を(実践編)
https://qiita.com/SigRem/items/c089b71c42e898980a46

UE5上でプロファイリング

UE5上では、実行中のゲームを動かしながら場面場面についてのプロファイリングを行うことが可能です。
標準機能としても、コンソールコマンド(「stat unit」など)や「Unreal Insights」を使ったプロファイリング機能が提供されています(こちらは主にグラフィックやロジックなどの負荷を確認するものです)。
コンソールコマンドを呼び出すには、キーボードの「@」キーや「~(チルダ)」キーを使用します(UEのバージョンによりキーが異なることがあります)。
A02.png

A01.png

リスニング位置の確認

音源やリスニング位置は、コンソールコマンドを使用することで視覚化することができます。
ADX for UEで使用できる、主なコマンドを紹介します。

ビジュアライズを開始し、サウンドを視覚化する

atom.3dVisualize.Enabled 1」を入力すると、再生中のキューの位置が視覚化されます。
B00.png
B01.png
キュー名や音量が表示されます。音量以外の情報については、次のコマンドで参照できます。

ビジュアライズのモードを設定する

atom.3dVisualize.ActiveSounds」コマンドでは、コマンド後に付加する値によって「atom.3dVisualize.Enabled」コマンドの視覚化情報が変化します。
B03.png

リスナー(サウンドを聞き取る位置)を視覚化する

atom.3dVisualize.Listeners 1」コマンドは、サウンドを聞き取っている位置(通常はカメラ位置)が視覚化されます。サウンドの聞こえ方がおかしい場合、こちらを確認してみるといいかもしれません。
B04.png

再生中のキューをリストアップする

atom.Debug.SoundCues」を使用すると、再生中のキューのリストがビューポート上に表示されます。
B02.png

これらのコンソールコマンドとレベルブループリントを使用して、ワンタッチでデバッグできるような機能を作ってみましょう。

「Open Level Blueprint」からレベルブループリントのエディタを開きます。
C01.png

コンソールコマンドをブループリントから使用するには、Execute Console Commandノードを使用します。
C02.png

音声のリスニング位置を描画するには、「atom.3dVisualize.Enabled 1」を入力します。
C03.png

逆に描画を無効化するには、「atom.3dVisualize.Enabled 0」とします。

キーボードの任意のキーを押したらコンソールコマンドが実行される処理を書きます。
Input Key 2でキーボードの「T」キーが押されたことを感知します。
FlipFlopは実行されるたびに「A」と「B」の分岐を行き来するノードです。
次の画像ではキーが押されるたびに、再生中のキューの描画がオン/オフされることになります。
C04.png

ゲームを実行し「T」キーを押してみると、再生中のキューが視覚化されます。
C05.png

ビューポートから再生している場合「F8」キーを押すことで俯瞰視点でシーンを見ることができます。
他のコンソールコマンドも同じような処理を使って使用することが可能です。

MultiGateノードを使って、キーを押すごとに「atom.3dVisualize.ActiveSounds」コマンドのモードを切り替える処理の例です。
C06.png
C07.png

メモリやパフォーマンスの確認

ゲーム実行中のパフォーマンス状況を確認するコマンドもあります。
こちらは直接コンソールコマンドとして入力してしまいましょう。

パフォーマンス確認のためのコンソールコマンドは「Stat CriWare」です。
D01.png

コンソールコマンドを入力して「Enter」キーを押すと、パフォーマンス使用状況が画面上に表示されます。
D02.png
メモリの使用状況・使用容量などが確認できます。

インゲームプレビュー

サウンドオーサリングツール「AtomCraft」と連携した詳細なプロファイリング機能、「インゲームプレビュー」も使ってみましょう。

UE5側の準備

インゲームプレビューを使うには、UE側でプロジェクトの設定をする必要があります。
ツールバーの「Edit」→「Project Settings」からプロジェクト設定を開きます。
E01.png

「CriWare」タブの「Use In Game Preview」にチェックを入れます。
E02.png

キューシートのビルド

インゲームプレビュー用に改めてキューシートをビルドする必要があります。
AtomCraftでプロファイリングしたいプロジェクトを開き、
ツールバーの「ビルド」→「Atomキューシートバイナリのビルド」を選択します。
E03.png

キューシートのビルドをするウィンドウが開くので、書き出したいキューシートを選択し、下部の「インゲーム用バイナリを出力」にチェックを入れてビルドします。
E04.png

エクスポートしたフォルダに「inGamePreview」というフォルダが追加されているので、中に入っているacbファイルをUE5にインポートします。
E05.png
E06.png

インゲームプレビューを開始する

AtomCraftでインゲームプレビューを開始します。
まずはプロジェクトツリーの「ターゲットコンフィグ」にある項目を右クリックし、プレビュー設定を編集を選択します。
E07.png

編集ウィンドウが開くので、「編集」ボタンをクリックします。
E08.png

プレビュー時に使用するIPアドレスが指定できます。
ローカルでテストする場合、「内部プレビューアを使用してプレビュー」にチェックを入れておきます。
E09.png

UE5側でゲームを実行します。インゲームプレビューを使用する場合「Standalone Game」を選択してスタンドアローンモードで起動します。
E10.png
新しいウィンドウで立ち上がります。
E11.png

AtomCraft側では、ツールバーの「プレビュー」→「インゲームプレビューの開始」を選択します。
E12.png

正しく接続できていればプレビュー情報に再生されているキューシートがリストアップされます。
E13.png

もし接続がうまくいかない場合、ログを参照してみてください。
また、ADXプラグインとAtomCraftのバージョンが対応しているものか確認するのも重要です。

プロファイラーを使用する

インゲームプレビューが開始できたら、「プロファイラー」機能で詳細な状況を調べることができます。
ツールバーの「表示」→「プロファイラー」を選択します。
E14.png

プロファイラーウィンドウが表示されます。
左上の「Start」ボタンを押すと、ゲームの実行状況に応じてログが更新されていきます。
新しくキューが再生されるたび、タイムラインに現れていくはずです。
E16b.png
画像は「Cue_BGS_Jungle」と「Cue_BGS_Fire」について二度再生を停止し、数秒おいてから再び再生したものです。キューを再生している間のみ色がついていることがわかります。

各項目で再生されたキューの履歴やパフォーマンスへの影響、音量のピークなどが確認できます。
各項目の設定ウィンドウで、表示される情報の絞り込みが可能です。
E16.png

インゲームプレビュー、プロファイラーを使用すればサウンドの状態が視覚的に分かりやすく、かつ膨大な情報を管理することができます。
設定したサウンドが正常に再生されているか、またサウンドの遷移が意図した動きをしているかなど、詳しく調べてみたい場合に重宝します。
快適なユーザー体験のためにも、一度確認してみてはいかがでしょうか。

新バージョンで追加されたプロファイリングツール

ADX for UEの新バージョンでは、UEのエディタから起動できる新たなプロファイリングツールが登場しました。
いずれもツールバーの「Tools」から呼び出すことができます。
ゲームを再生した状態で使用してみましょう(こちらはPlay in Editorモードでも動作します)。

Atom Monitor

「Atom Monitor」は「START」ボタンを押してから「STOP」ボタンを押すまで、ログとしてキューの再生やパラメータの変化をモニタリングすることができます。
F01.png
F02.png

Atom Resource Usage

「Atom Resource Usage」はキューシートの仕様状況を監視します。
画像ではロードされているキューシートがリストアップされています。ここで表示されているキューシートが多すぎる場合は、シートの統合・分割やロジックの改善を考えてみても良いかもしれません。
F03.png
F04.png

Atom Statics

「Atom Statics」ではキューやリスナー、発声など「ADX for UE」に付随する要素をまとめて監視することができます。
F05.png
F06.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?