menu
目次
-
レッスン
最適化は一般的に、ゲームプロダクションの最終段階で適用されますが、スタッターのあるフレームレートのゲームではエクスペリエンス全体に大きく影響するので、重要です。どのゲームでもゲームプレイ中に実行されるタスクが複数あり、Vorbisでエンコードしたメディアの解凍処理も、そのタスクリストに追加される1つです。Vorbisでエンコードされたメディアの解凍に必要な処理能力を削減するには、AkBankコンポーネントにある Decode compressed data 機能を使います。

そうすると、SoundBankをロードしてからVorbisエンコードメディアがすべてデコードされるので、次にゲームが同じEventをポストした場合に追加のリソースが不要です。メモリのSoundBankサイズは、この機能を選ばない状態と比較すると増大し、結果として最初からPCMエンコードを使った場合と同じサイズになります。ではなぜ、そもそもPCMエンコードで済ませないのか?例えば、ダウンロードゲームであれば配信用にSoundBankサイズを抑えておき、あとでゲームをロードしてからSoundBankをデコードすることもあります。デコード後のSoundBankの予想サイズは、コンバージョン後のSoundBank Managerに表示されます。

DungeonというSoundBankは、RegionのSoundBankの中でも解凍後のデータサイズが最も変化するものなので、これから、このSoundBankの解凍設定を行い、差を確認してみます。メモリ内で解凍前のデータサイズを確認した上で、Decode compressed dataの選択肢を有効にして、データサイズの違いを確認する手順を以下に説明します。
-
Unityのメニューで、 Audiokinetic > Certification > 301 > Lesson 3 を選択し、 Decompressing SoundBanks を選択します。
圧縮されたデータの解凍をSoundBankで設定する前に、現在のメモリ消費をプロファイラーで確認してください。
-
Wwise側でRemoteをクリックします。
-
Remote Connectionsウィンドウで、 Wwise Adventure Game (Editor) を強調表示にし、 Connect をクリックします。
-
Unityで Play をクリックします。
ゲームが初期化されら、もう一度Playモードを終了させます。
-
ESC を押してWAGメニューを開き、 Play をもう一度クリックしてPlayモードを終了させます。
-
Wwiseメニューで、Layoutsをクリックして Profiler を選択します。
-
Advanced Profilerで SoundBanks タブを選択します。
-
Performance Monitorで タイムカーソル をドラッグし、数秒戻します。
DungeonのSoundBankのメモリ使用を見ると、約2.4 MBになっています。
次に、SoundBankをロードしてから解凍してください。DungeonのSoundBankは、L3_2 - Dungeon Audio Environment Sceneで、Wwiseゲームオブジェクト上にあります。
-
UnityのHierarchyでL3_2 - Dungeon Audio Environment Sceneを選択し、 Wwise ゲームオブジェクトを選択します。
-
InspectorのAkBankコンポーネントで Decode compressed data を選択します。
Decode compressed dataオプションが有効になりました。その下にはSave decoded bankというパラメータがありますが、これはこのまま無効にしておきます。SoundBankをデコードすると、デコード後のデータはメモリに移動します。
Decode compressed dataという機能でデコードできるのは、VorbisまたはOpusで設定されたSoundBank内のAudio Sourceだけです。この機能を選択しても、Vorbisエンコードメディアの入っていないSoundBankには一切影響ありません。詳細についてはAkBank をInspectorで使うをご覧ください。
-
Playをクリックします。
-
Wwiseでまだ接続されていることを確認します。接続されていなければReconnectをクリックします。
Advanced ProfilerのMemoryタブを見ると、Name列からDungeonというSoundBankがなくなっています。
解凍によるものです。SoundBankのメモリ使用量は増えますが、ゲームプレイ中にCPUリソースを使用してVorbisやOpusのエンコードメディアをデコードする必要がないため、ゲームエクスペリエンスの流れがスムーズになります。