9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PONOSAdvent Calendar 2024

Day 15

【Unity】音声ファイルのインポート設定はこうしとくといい

Last updated at Posted at 2024-12-14

PONOS Advent Calendar 2024 15日目の記事です。


Unityでオーディオクリップ(wav,mp3など)をインポートした際、その再生方法や圧縮方法を設定する事が出来ます。
このインポート設定を適切に設定する事で、データサイズの圧縮・再生負荷の軽減に繋がります。

特に音声データはファイルサイズが大きいので、パフォーマンスの低下に繋がりやすいです。「画面がカクッとすると思ったら音声設定が原因だった」というケースも実際に遭遇した事があります。

適切な設定を行い、パフォーマンスの向上に繋げましょう。

公式のマニュアル:https://docs.unity3d.com/ja/2018.4/Manual/class-AudioClip.html

早くオススメ設定出して

明確な答えは無いのですが、自分はこうすると良いと思いました。
BGMとSEの特徴を加味して、以下の2パターンで設定しています。

◆ BGMファイル向け

BGM_Import.png

LoadType CompressFormat Quality
Streaming Vorbis 70%ぐらい ここはお好み

容量の大きいBGMファイルは圧縮でファイルサイズの軽減をすべきです。一方で同時に複数再生される事は少ないので、再生負荷はあまり考えなくても良いです。
Vorbisで圧縮率を高めに、Streamingによる随時ロードにしてメモリを消耗しすぎない様にします。音質は少し劣化するかもしれません。

◆ SEファイル向け

SE_Import.png

LoadType Compressed In Memory
Streaming ADPCM = Vorbis (> PCM)

SEファイルは再生時間が短い代わりに再生回数が多く、再生による処理負荷がネックとなります。
再生負荷を低くするなら圧縮方式はADPCM。音質も重視したければBGMと同じくVorbisで。
再生方式はバランスの良いCompressed In Memoryにします。

もしもっと再生負荷を軽減したい場合は圧縮方法をPCMにして下さい。

+ 追加で確認できると良い

◆ Load In Background
非同期で読み込ませたい場合はオンにします。
負荷軽減になりますが再生に遅延が出る可能性があります。

◆ Preload AudioData
シーン読み込み時、同時に音声ファイルを読み込みたい場合はオンにします。
再生した瞬間、ロードによる負荷が掛かるのを阻止できます。


以下、各設定項目の解説です。

各項目について

項目 説明
Force To Mono オンにすると強制的にモノラルになる。ファイルサイズは1/2になります。
Load In Background オンにすると非同期読み込みになり、メインスレッドを止めずにロード出来ます。ただし再生が遅れる事があります。
Ambisonic アンビソニックオーディオの場合はオンにします。立体音響の設定ですが基本はオフでOK。
LoadType 音声のロード方法を指定する。再生負荷に影響します。
Preload Audio Data シーン読み込み時、事前に音声ファイルを読み込みます。オフの場合は再生時に読み込みが開始されます。(AudioClip.LoadAudioDataで手動で読み込み可能)
Compression Format 圧縮形式を指定する。ファイルサイズ・再生負荷に影響します。
Quality 圧縮の品質に影響します。

LoadType

音声のロード方法について。

Decompress On Load

データを全て展開してメモリにロードします。

PCM(無圧縮方式)に変換され、容量の大きい状態でメモリにロードされます。
メモリは喰いますが、再生負荷は最も軽いです。

デフォルト設定ですが一番メモリを使います。基本は下2つにした方が良いです。

Compressed In Memory

データは圧縮されたままメモリにロードされ、再生中に展開されます。

展開処理による負荷はかかりますが、メモリの消費は少なく済みます。

Streaming

メモリには置かず、再生中にロードしながら展開されます。

メモリ消費量を抑える事が出来ますが、再生中にストレージへのロードが走ります。また展開による負荷とロードによる遅延が起こります。

◆ 各項目の比較

種類 メモリ 処理負荷
Decompress On Load 無圧縮のデータがそのまま入る。重い
Compressed In Memory 圧縮されたデータが入る。普通
Streaming 随時ロードされる。軽い

Compress Format

圧縮形式について。

PCM

無圧縮。
デコードしないので負荷は最も小さいですが、容量がかなり大きくなります。

Vorbis(OGG)

圧縮率が高い設定。
ファイルサイズは低くなりますがデコードによる負荷は大きいです。

Qualityで品質が設定できる。品質を下げると音質は下がるがファイルサイズは小さくなります。

ADPCM

Vorbisよりも再生負荷が低い事が利点。
音質は設定出来ず、やや品質は低め。

◆ 各項目の比較

種類 容量 品質 再生負荷
PCM 無圧縮。大きい 高い 最も小さい
Vorbis (OGG) 調整可能 調整可能
ADPCM 小さいがVorbisより大きい 低い

デフォルト設定

何も設定しないデフォルトの設定は以下の通りです。
個人的にはこれをそのまま使うのはお勧めできません。

Audio_DefaultImport.png

項目
Force To Mono オフ
Load In Background オフ
LoadType Decompress On Load
Compression Format Vorbis
Quality 100

圧縮設定はこれで大体30%前後ほどのサイズになります。
しかしロード方法の「Decompress On Load」は一番メモリを消費する設定なので、ここはデフォルトからは変えた方が良いです。

まとめ

テクスチャに比べてオーディオのインポート設定は見逃されやすいポイントです。
また設定を変えても目視では違いが確認出来ない事も設定が難しい要因の一つとなっています。

圧縮によるファイルサイズの変動はエディタ上でも確認出来るので、まずは適切な圧縮設定を見つける所から始めてみて下さい。
そしてこの設定に加えて音声ファイルを事前にロードする処理を導入できれば完璧です。再生時にカクついたりロードに時間がかかったりする事は無くなります。

次回は@honeniqさんの記事です。お楽しみに〜。

9
5
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
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?