スタジオ・サニーサイド

札幌を拠点に活動する、ゲームのサウンド&シナリオ制作スタジオです

ゲームサウンドの容量を減らすには 〜圧縮編〜

遅ればせながら、あけましておめでとうございます。banです。
正月ボケが微妙に治りませんが、治ったところで大して変わらないので無問題でした。
今年もよろしくお願いいたします。





さて昨年の続きです。
ゲームサウンドの容量を減らすには、というテーマで続けてきたこの話題ですが、
今回は「圧縮」について書いてみたいと思います。




※画像はイメージです




サウンドファイルとして、ゲーム制作の現場で最も基本的なフォーマットは、WAVEファイルです。
拡張子が.wavでおなじみのアレですね。
前にも書きましたが、この.wavファイルはCDクオリティであれば、

1分 = 10Mbyte

ということで、結構な容量となります。
なのでなんとかして容量を減らさなくちゃということになるのですが、
これまで紹介したような、モノラル化や、サンプリングレートを下げたりする処理では、
確かに容量が減るものの、広がりや音質など、犠牲になるものもデカいのですね。


詳しい説明は省きますが、もともと.wavファイルは、その性質上、データの冗長性が高いということができます。
つまり、なんというか、データの持ち方がくどいというか、バカ正直というか。
じゃあ、その冗長性をなんとかすればいいんじゃね?ということで、
ゲームサウンドの世界では古くから使われているのが、圧縮という技術です。


1. ADPCM


これは現在もゲーム機のサウンドで一般的に使われている技術ですが、
使われ始めた歴史は古く、メジャーなところではPC-EngineCD-ROM2の辺りから既に使われています。
圧縮率はだいたい生データの1/4ぐらい。
今となってはさほど大きな圧縮率ではないですが、音質の劣化が少なく、また展開に掛かる負荷も小さいので、
ゲーム機以外でもいろいろなところに使われています。


2. ミドルウェア搭載の圧縮機能


最近のゲーム機には、それぞれ独自の開発環境がありまして、サウンドにも専用のそれが用意されています。
詳しく書くといろいろ差し障っちゃうので省きますが、
その環境にはそれぞれ特有の音声圧縮技術が組み込まれており、
前述のADPCMを利用しているものもありますし、独自の圧縮技術を使っているものあります。
こうした技術はハードウェアメーカーから提供されますが、
CRI社のADXのように、サードパーティから提供されているミドルウェア(開発環境)にも、
その一環として、様々な音声圧縮技術が組み込まれています。
このあたりは圧縮率や音質もまちまちなので、くわしく知りたい方は各自お手元のマニュアルをひもといて頂ければと。


3. MP3、oggAAC


近年、スマホゲームの台頭で使用頻度が増えてきた圧縮方式です。
これらは主に携帯用音楽プレイヤー向けに使われてお馴染みの形式ですが、
ゲームのBGMにも使われることがあります。


いずれも、標準的な音質であれば圧縮率は1/10前後で、高い圧縮率の割に音質が良いのがメリットですが、
展開時の負荷が比較的高いというデメリットもあります。まあ最近はほとんど気にしなくても良いと思いますが。


なかでもMP3はお馴染みの形式です。が、意外とゲームの音源として使われることは少ないと思います。
というのは、MP3のライセンス問題というのがありまして、
平たく言うと「商用利用したらお金取るよ!」という話になっちゃったからで、
かなり前にドイツのFraunhofer-Gesellschaft社とフランスのThomson社がMP3のライセンス保有を宣言したため、
実際にライセンス料の支払いや、訴訟が起こってしまう事態になりました。


そういうリスクを避けるため、ゲームでのMP3使用を止めるようになってしまった、という経緯があります。
が、実際はLAMEという上記2社の特許を回避した無料のエンコーダーが登場したため、
これを使えばライセンス問題は回避できる模様…ですが、特許問題が完全にクリアされておらず、
単に今のところLAMEに対する訴訟が起こってないというだけの状況なので、
絶対安心!というわけではないようです。


oggはあまり馴染みがない形式ですが、MP3よりも高い圧縮率を誇り、
同じ容量であればMP3よりも高い音質が期待できます。
この形式は、MP3のライセンス問題が勃発した前後に、
これを回避できる代替手段としてゲーム業界では注目されました。
Androidアプリではよく使われる形式です。


AACについては、実際に使う頻度はそれほど多くないのですが、
iPhoneアプリでは時折使われます。
スマホゲームでは、ダウンロードの制約の都合上、容量はできるだけ少なくしたいというニーズがあるため、
AACよりもさらに圧縮効率の良い、HE-AACという形式が使われることもあります。


これら圧縮オーディオファイルでは、エンコードの際に圧縮率を自由に決めることができ、
その圧縮率で音質も変ってきます。
この圧縮率は、ビットレートと呼ばれ、よくbpsという単位で表されます。
一般的なMP3プレイヤーで使われる音楽ファイルであれば、128~256kbpsが一般的です。
192kbps以上なら「高音質」と言ってもよいと思います。
スマホゲームでよく使われるビットレートはちょっと低くなって80〜128kbpsあたりで、
この値での容量を基準にして、あとは許される容量と音質の兼ね合いを見ながら、
最適なビットレートを探っていくことになります。



 ※ ※ ※ ※ ※



というわけで、ゲームサウンドの容量削減について、3回にわたってお送りしました。
実際の現場では、チャンネル数、サンプリングレート、圧縮方式のパラメータを様々に調節して、
できるだけ高い効率でデータをまとめようと四苦八苦しておるわけです。



次回は、よく起こる問題として、サウンドファイルの「音量」について書いてみたいと思います。