ゲームに適した音声コーデックの選び方
まえがき
『何を基準に選ぶとよいか』という記事です!正確な負荷計測は行っていないので、再生負荷の評価を大事にしたい方は各自行ってくださいますよう、よろしくお願いいたします。
何を基準に選ぼうか?
それぞれのコーデックは一長一短あるので、評価ポイントを複数用意して、総合的にどれがいい、ってのを採点していくといいかもしれない。以下の比較は左側が良いやつだと思ってください。
サウンド屋さんが気にしそうなところ
音質 (良 > 悪)
ogg vorbis ≧ HCA = AAC > mp3データサイズ (小 > 大)
ogg vorbis ≧ HCA = AAC > mp3上記2つは同義というか、同じビットレート(データサイズ)で音が良いかどうか。同じ音質でデータサイズの違いはどうか。
厳密にはAACとか低ビットレート時に劣化しにくいみたいな特徴もあるので条件によって順序が変わることもありえます。
厳密にはAACとか低ビットレート時に劣化しにくいみたいな特徴もあるので条件によって順序が変わることもありえます。
ループの精度 (ジャスト > ズレるかも)
HCA ≧ ogg vorbis = AAC = mp3AACやmp3はエンコーダーやデコーダーを選ばないとギャップレスのデータの作成や再生ができない。vorbisはVBR(可変ビットレート)のため綺麗にループしない場合もある。
HCAはCBR(固定ビットレート)のためサンプル単位で綺麗に結合が可能
HCAはCBR(固定ビットレート)のためサンプル単位で綺麗に結合が可能
プログラマーさんが気にしそうなところ
再生負荷 (軽 > 重)
HCA ≧ mp3 > AAC ≧ ogg vorbis使用メモリ (少 > 多)
HCA ≧ mp3 ≧ AAC > ogg vorbis同時デコード数とかサンプリングレート、ビットレートによって順位が入れ替わる可能性も無くはない。
大量に音を鳴らす場合は、圧縮した状態でミキシングをしデコード回数を減らせるHCAが飛び抜けて負荷が低い。
大量に音を鳴らす場合は、圧縮した状態でミキシングをしデコード回数を減らせるHCAが飛び抜けて負荷が低い。
プロデューサーさんが気にしそうなところ
データの暗号化 (可 | 不可)
HCA , AAC | ogg vorbis , mp3AACの暗号化はDRMのこと。HCAの暗号化はDRMとは違うが、正しい鳴らし方をしないと原音が聞き取れないようなノイズ音として再生される。
ライセンシー (必要 | 不要)
HCA(暗号化あり) , AAC | HCA(暗号化なし) , ogg vorbis , mp3HCAがどちらにもあるのは、非法人向けの『暗号化のみ不可能なADX2LEという無料パッケージ』があるため。
oggは不要、mp3も特許権が無効になったため不要。
oggは不要、mp3も特許権が無効になったため不要。
以上、いかがでしたでしょうか?
細かい事を気にしなければ正直どれでも良いのではないかと思いますが、よりシビアなタイミングが要求される演出であったり、端末のパワーを最大限に活かそうとすると結構な差が出てくるのではないかと思います。
細かい事を気にしなければ正直どれでも良いのではないかと思いますが、よりシビアなタイミングが要求される演出であったり、端末のパワーを最大限に活かそうとすると結構な差が出てくるのではないかと思います。