ひよっこ創作ブログ@Rwi

UE4(+ゲーム制作関連)で何やら書いていきます

【UE4小話】 .wav? .flac? 音声データインポート時のファイル形式はどちらでもOK


UE4.22で密かにインポートに対応していたFLAC形式の音声ファイル。
これはWAV形式の音声ファイルを可逆圧縮したもので、WAVの品質はそのままにファイルサイズが半減できる!という優れもの(対応ソフトが多少限られるのが玉にキズ)

このFLACファイルを用いれば、UE4上の音声ファイルのサイズも半減できるのでは・・・!?と意気揚々と試してみたものの、結果として思い通りにはなりませんでした。無念。

なぜ?

f:id:rwiiug:20200520212334j:plain オーディオ システムの概要より


UE4
 ・PCM形式のWAVファイルのインポートに対応(よって WAVファイル ≒ PCMファイル)
 ・FLACファイルはインポートの際、PCMファイルへ内部で変換される
という仕様。

よって、UE4にインポートした音声ファイルはいずれもPCM形式のデータとして扱われる = WAV・FLAC どちらの形式の音声ファイルを用いてもインポート後の結果は同一に = ファイルサイズも同一になる。


という話のようです。
・・・よく分からなければ音声ファイルはWAVでOK!終わり!




< 以下余談。>


実験:FLACファイルマジック

約60秒の「ステレオWAVファイル(約10.0MB)」をフリーソフトTAudioConverterFLACファイル化。ファイルサイズは約4.68MBに。

このFLACファイルを「UE4にインポート → エクスポート」すると、再びWAVファイルとなって書き出される。そしてファイル容量は10.0MBと、元ファイルと完全に同一に!


f:id:rwiiug:20200520214937j:plain
f:id:rwiiug:20200520214946j:plain

「元WAVファイル」(赤)と、 「WAVをFLAC化→ UE4にインポート → エクスポートして生まれたWAVファイル」(緑)を同時再生。 片方の位相を反転させると互いの音が打ち消し合い、完全に無音になるため、波形的にも完全に同一と分かった。これぞ可逆変化の為せる技。






検証:音声ファイルのパッケージング後圧縮率

手順
  1. 空の新規プロジェクトを作成。
  2. Windows64bit、Shipping設定でパッケージングし、パッケージ後のファイルサイズを確認。(A)
  3. 約60秒の「ステレオWAVファイル(約10.0MB)」をUE4へとインポート。さらにこのファイルをUE4上で99個複製(合計で約1GBの音声ファイルに)
  4. 同様の設定でパッケージングし、パッケージ後のファイルサイズを確認。(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%のファイルサイズに。
可逆圧縮の範疇ではない → 最高設定でも音質変化は避けられない?




オーディオファイルの圧縮について

f:id:rwiiug:20200520212338j:plain オーディオ システムの概要 より

体感ではサウンドウェーブ化の時点で再変換されている様子。(波形も変化しているっぽい)
元データは内部に保持しているためエクスポート時には復元できる、という感じなのかも?





まとめ

・WAVもFLACも、同じ音声なら同一データとしてインポートされる → どちらでもOK!
・音声ファイルは再変換されるため、UE4上でも音をチェックする必要があるかも

私は音の専門家ではないため色々と勘違いがあるかもしれません。
ご意見、ご感想がありましたらご気軽にどうぞ。

ご閲覧ありがとうございました。