目次
-
モジュール
メモリ使用量を減らすもう一つの方法は、ゲームシステムのRAMにオーディオファイルを一度にロードせず、一部のみをロードすることです。これはストリーミングと呼ばれます。ストリーミングは、光学ディスクやハードドライブなどの保存メモリからオーディオを直接再生する方法です。ストリーミングはミュージックのように数分間にわたる大きなオーディオファイルで特に有効です
ストリーミングのデメリットは、ゲームエンジンがサウンドをコールしてからサウンドの再生がはじまるまでに、若干のディレイ(レイテンシ)が発生することです。これはファイルの場所を特定してストリーミングをはじめるには時間がかかるためです。このディレイは氷のジェムの発射のようなサウンドでは目立つ可能性がありますが、バックグラウンドミュージックのように繰り返し再生されるサウンドでは問題ありません。
ストリーミングのもう1つのデメリットは、一度にストリーミングで読み込める合計データ量に上限があるため、同じストリームで動画などのゲームのほかの処理と帯域幅を奪い合う可能性があることです。
CubeのバックグラウンドミュージックはDCP_the_core SoundBankに含まれており、現在メモリ予算を超えています。このミュージックをストリーミングしてメモリを削減できるかを試しましょう。
-
Project ExplorerでCube Main Themeオブジェクトを選択します。
-
Property EditorでSound SFXを選択し、Streamグループの下にあるEnableをクリックします。
次にSoundBankをもう一度生成して、一部のオブジェクトを除外してからメインテーマをストリーミングし、メモリを十分に節約できたかを確認してみましょう。
-
メニューバーでLayouts > SoundBankをクリックし(またはF7)、次にGenerate Allをクリックします。
-
このプロセスが完了したら、Generating SoundBanksダイアログでCloseをクリックします。
SoundBank Managerを参照すると、ミュージックのストリーミングによって大きな効果があったことが分かります。DCP_the_core SoundBankは26,000,000バイトを超えていましたが、いまは予算の6,000,000バイトの半分以下しか使用していません。Main SoundBankからオブジェクトをいくつか除外したため、Main SoundBankのサイズも若干減少しました。
-
メニューバーでLayouts > Designerをクリックすると(またはF5)、別のモジュールを開始する準備が整います。
よくできました。モジュール19を終了し、2つのSoundBankのサイズをメモリ予算内に収めることができました。最初にそれぞれのSoundBankに最大サイズを割り当てました。これによりSoundBankが最大サイズを超えるとWwiseで警告が表示されるようになりました。次に一部のオーディオファイルをスペース使用量の少ないVorbis形式に変換しました。その後にRandom ContainerからSound SFXオブジェクトをいくつか除外しました。これによりバリエーションは減りましたが、サウンドに大きな影響はありませんでした。そして最後に、メインテーマのミュージックをストリーミングすることにしました。ストリーミングによってメモリ使用量が減り、ミュージックの再生時に発生するレイテンシも無視できる程度であるためです。
次のモジュール20:サウンドデザインの最適化では、ゲームのパフォーマンスをモニタリングして最適化する方法を学びます。