【UE4小話】 .wav? .flac? 音声データインポート時のファイル形式はどちらでもOK
UE4.22で密かにインポートに対応していたFLAC形式の音声ファイル。
これはWAV形式の音声ファイルを可逆圧縮したもので、WAVの品質はそのままにファイルサイズが半減できる!という優れもの(対応ソフトが多少限られるのが玉にキズ)
このFLACファイルを用いれば、UE4上の音声ファイルのサイズも半減できるのでは・・・!?と意気揚々と試してみたものの、結果として思い通りにはなりませんでした。無念。
なぜ?
UE4は
・PCM形式のWAVファイルのインポートに対応(よって WAVファイル ≒ PCMファイル)
・FLACファイルはインポートの際、PCMファイルへ内部で変換される
という仕様。
よって、UE4にインポートした音声ファイルはいずれもPCM形式のデータとして扱われる = WAV・FLAC どちらの形式の音声ファイルを用いてもインポート後の結果は同一に = ファイルサイズも同一になる。
という話のようです。
・・・よく分からなければ音声ファイルはWAVでOK!終わり!
実験:FLACファイルマジック
約60秒の「ステレオWAVファイル(約10.0MB)」をフリーソフトTAudioConverterでFLACファイル化。ファイルサイズは約4.68MBに。
このFLACファイルを「UE4にインポート → エクスポート」すると、再びWAVファイルとなって書き出される。そしてファイル容量は10.0MBと、元ファイルと完全に同一に!
「元WAVファイル」(赤)と、 「WAVをFLAC化→ UE4にインポート → エクスポートして生まれたWAVファイル」(緑)を同時再生。 片方の位相を反転させると互いの音が打ち消し合い、完全に無音になるため、波形的にも完全に同一と分かった。これぞ可逆変化の為せる技。
検証:音声ファイルのパッケージング後圧縮率
手順
- 空の新規プロジェクトを作成。
- Windows64bit、Shipping設定でパッケージングし、パッケージ後のファイルサイズを確認。(A)
- 約60秒の「ステレオWAVファイル(約10.0MB)」をUE4へとインポート。さらにこのファイルをUE4上で99個複製(合計で約1GBの音声ファイルに)
- 同様の設定でパッケージングし、パッケージ後のファイルサイズを確認。(B)
(B) - (A) より、パッケージング後の音声ファイル容量を求める。
結果
Compression | パッケージング前 | パッケージング後 | 圧縮率 |
---|---|---|---|
100 | 992MB ( 1,040,597,712 Byte ) |
154MB (162,458,680Byte) |
15.6% |
40 | 〃 | 65MB ( 68,785,208 Byte ) |
6.6% |
1 | 〃 | 37MB ( 38,782,930 Byte ) |
3.7% |
(Sample Rate 設定 = Max)
WAVから変換したFLACファイルで同様に試しても結果は同様。
最高品質のCompression設定でも、パッケージング後には元の15%のファイルサイズに。
可逆圧縮の範疇ではない → 最高設定でも音質変化は避けられない?
オーディオファイルの圧縮について
体感ではサウンドウェーブ化の時点で再変換されている様子。(波形も変化しているっぽい)
元データは内部に保持しているためエクスポート時には復元できる、という感じなのかも?
まとめ
・WAVもFLACも、同じ音声なら同一データとしてインポートされる → どちらでもOK!
・音声ファイルは再変換されるため、UE4上でも音をチェックする必要があるかも
私は音の専門家ではないため色々と勘違いがあるかもしれません。
ご意見、ご感想がありましたらご気軽にどうぞ。
ご閲覧ありがとうございました。