オーディオクリップのLoad Type【Unity】

オーディオクリップをロードする際に設定できる項目に関してのメモ

(オリジナル:2017年)

f:id:BeruruKH:20200106064851p:plain

オーディオクリップ

Force To Mono:

チェックすることでモノラルになる。ファイルサイズがかなり圧縮される。

Load Type: Decompress On Load

オーディオファイルは読み込まれるとすぐに展開されます。サイズの小さい圧縮サウンドにこのオプションを使えば、その場での展開に伴うパフォーマンスのオーバーヘッドを防ぐことができます。ただし、Vorbisエンコードされたサウンドを読み込み時に展開すると、圧縮されたままの場合の10倍程(ADPCM エンコーディングでは約3.5倍)のメモリーを使用するので、サイズの大きいファイルにはこのオプションを使用しないでください。(Unityマニュアル)

 シーンを読み込むと同時に圧縮されたファイルを展開してメモリにロードする。

メリット:すでに展開してあるので再生時のCPU負荷が少なくすむ。

デメリット:ファイルが大きいとメモリも大量に使う。

用途:短いSEなど

 

Load Type: Compressed In Memory

サウンドはメモリ中では圧縮されたままで、再生中に展開されます。このオプションは若干のパフォーマンスオーバーヘッドが発生します(特に Ogg/Vorbis 圧縮ファイルの場合)ので、メモリー使用量が大きすぎて読み込み時に展開できないファイルにのみに使用してください。展開はミキサースレッドで行われ、Profiler ウィンドウ内の Audio ペインにある “DSP CPU” のセクションでモニタリングできます。(Unityマニュアル)

 再生時に展開するため、メモリ消費は上に比べて抑えられる。しかしCPU負荷はある。

メリット:メモリの使用が抑えられる。

デメリット:解凍するためにCPU負荷。

用途:

Load Type: Streaming

 サウンドをその場でデコードします。この方式では、圧縮データのバッファーのための使用メモリーが最小限に抑えられます。データはディスクから段階的に読み込まれて必要に応じてデコードされます。展開は別のストリーミングスレッドで行われますが、その CPU 使用量は Pofiler ウィンドウ内の Audio ペインにある “Streaming CPU” のセクションでモニタリングできます。(Unityマニュアル)

 よりメモリ消費を抑えれる。長いBGM向け?

 

備忘録投稿につき追記

上記の特徴を実際に計測したわけではないため、profilerを使って自分で確かめてみる。(BGM系のオーディオクリップ、圧縮はVorbis

 

BGM1曲のみ再生

f:id:BeruruKH:20200106072541p:plain

DecompressOnLoad

f:id:BeruruKH:20200106072553p:plain

CompressedInMemory

f:id:BeruruKH:20200106072604p:plain

Streaming

 Decompressが他の二つよりメモリを食っていることがわかる。BGMはシーン中常駐していることが多いので下二つ、SEなど頻繁になる可能性がある音は1番上で使うのがやはり正しいか。

 

参考文献

オーディオクリップ - Unity マニュアル