Cockatiel技術ブログ

株式会社ピュアサウンドのオーディオソリューション。いろいろ音を鳴らしています。

Unity

Unityオーディオの負荷について-オブジェクト数&2D/3D比較編

投稿日:

前回の記事ではオーディオクリップのCompression Formatによる音質とデータサイズの違いに触れました。
ここからは複数回に分けて、様々な条件でCPUやメモリ負荷の比較をしていきたいと思います。

初回は、オブジェクト数による比較と、3D音響を使用する/しない場合の比較を行ってみます。

はじめに

オーディオ関連の計測には、UnityのProfiler内にあるAudioグラフを使用します。

検証を行った環境は以下の通りです。

OSWindows10 Home
CPUIntel Core i7-7700
メモリ16GB
Unityバージョン2019.4.2

また、オーディオクリップは前回も使用したサウンドを、以下の設定で使用します。

Load TypeDecompress On Load
Preload Audio DataOn
Compression FormatVorbis
Quality100
Sample Rate SettingPreserve Sample Rate

オブジェクト数での比較

スクリプトでAudioSourceのついたオブジェクト(エミッター)を好きなだけ自動生成できるようにして、鳴らすオーディオ数による負荷の違いを確かめます。
発音タイミングはいずれもランダムですが、発音しているオブジェクトが分かるように、発音時には赤くなるようにしています。

オブジェクト1個の場合。
オブジェクト100個の場合。

ためしに1個と100個で比較をしてみましょう。
鳴らす数が増えれば当然負荷も増えそうですが、実際はどうでしょうか……?

オブジェクト1個オブジェクト100個
Total Audio CPU(%)約0.6約1.5
-DSP CPU(%)約0.5約1.3
-Streaming CPU(%)0.00.0
-Other CPU(%)約0.1約0.2
Total Audio Memory(MB)2.32.5
-Streaming File Memory(MB)00
-Streaming Decode Memory(MB)00
-Sample Sound Memory(MB)0.50.5
-Other Memory(MB)1.71.9

やはり100個のほうが総合的な負荷は上がっていますね!
主にDSP CPUが大きな要因となっているようです。

2D/3Dの比較

オブジェクトにランダム速度で円運動する機能をつけてみます。
その際、円運動を有効にした場合はAudioSourceのSpatialBlendパラメータが1.0(3D全振り)になるようスクリプトを組みました。
動く場合は3D音響を適用、動かない場合は2Dで普段通り鳴らすだけ、ということですね。

オブジェクト100個2Dの場合。
オブジェクト100個3Dの場合。

先ほどのオブジェクト100個の状態で比較をしてみます。
3D音響のほうが空間のパラメータが多く、負荷が大きくなりそうですが、はたして……?

オブジェクト100個2Dオブジェクト100個3D
Total Audio CPU(%)約1.5約2.1
-DSP CPU(%)約1.3約1.8
-Streaming CPU(%)0.00.0
-Other CPU(%)約0.2約0.3
Total Audio Memory(MB)2.52.5
-Streaming File Memory(MB)00
-Streaming Decode Memory(MB)00
-Sample Sound Memory(MB)0.50.5
-Other Memory(MB)1.91.9

予想通り、3D音響のほうがCPU負荷が増加しましたね!

今回はここまで!
次回はさらに掘り下げて、Load TypeやCompression Formatの違いによる比較を行っていきたいと思います。

-Unity
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

nine + ten =

関連記事

no image

UnityオーディオクリップのCompression Formatについて

大変ご無沙汰しています! 最近ピュアサウンドではUnityでの開発に関わることが多くなっています。 高度なオーディオ処理のためにCRIWAREやWwiseといったサウンドエンジン使用は定番になりつつあ …

no image

Unityオーディオの負荷について-Load Type&Compression Format比較編

前回の記事では、実際にUnity内で音を鳴らした場合の、オブジェクト数や2D/3Dの有無による計測を行いました。 今回は、オーディオクリップのLoad TypeやCompression Formatの …

no image

Unityオーディオの負荷について-各フォーマットのメリットデメリット

前回は100個のサウンドを鳴らして、CPU使用率やメモリサイズの比較を行いました。単純比較ではストリーム再生がCPUとメモリともに負担が大きいという結果が出ましたが、やはり長いファイルを演奏するときに …

no image

Unityのエディタ拡張『CTAudioPreviewer』をリリースしました

昨日4/16、Unityアセットストアにてエディタ拡張『CTAudioPreviewer』をリリースしました。 CTAudioPreviewer – Asset Store CTAudio …