バージョン
以下のセクションに目を通して、オーディオ開発プロセス全体を通してプラットフォームバージョンやランゲージバージョンを効率的に管理するためのコツやベストプラクティスを参照してください。
階層の高位オブジェクト、例えばコンテナなどを、右クリックして、ショートカットメニューで、Convertを選択すると、一度に複数のオーディオファイルのコンバージョンができます。オブジェクトグループ全体のコンバージョン設定を行うには、最上位オブジェクトを右クリックして、ショートカットメニューで、Conversion Settingsを選択します。また、Project Explorerで複数のオブジェクトを選択して、それらのコンバージョン設定の一括定義や、一括コンバージョンを行うことも可能です。
多くの場合、ゲーム開発スタジオでは、各プラットフォームを充分に分析して、メモリフットプリント、CPU、帯域幅などのアイテムごとに、「バジェット(配分)」を割り当てます。オーディオチームにも、このバジェットの一部が与えられ、プラットフォームごとにバジェットを効率的に管理するのは、オーディオチームの責任となります。プラットフォームによって、バジェットの割り当てが違うので、オーディオデザイナーは、コンバージョンの様々な設定項目を使いこなして、プラットフォームによって差があるバジェットを効率的に補いながらも、最高のサウンドを提供しなければなりません。Game Profilerを使ってゲーム中のパフォーマンスをモニターして、現状を確認しながら、コンバージョン設定を調節して、バジェット内に納めてください。
バジェットの検討事項として、オーディオフォーマットを考慮する必要があります。プロジェクトに最良のフォーマットを選択するには、Wwiseが対応するフォーマットの、それぞれの特徴を確認してください。一般的に、ファイルの圧縮率が小さいほど、CPU負荷が減りますが、通常圧縮されていないファイルは、より多くのメモリスペースやディスクスペースを使います。
オーディオファイルのエンコーディング方法を決めるための、基本的な提案と情報を、下表に示します。
ファイルフォーマット |
圧縮比率 |
CPU負荷 |
Memory |
一般的な使用例 |
制約事項 |
---|---|---|---|---|---|
PCM |
1:1 |
極小 |
大 |
高い忠実度が要求されるサウンド |
なし。 |
ADPCM |
4:1 |
小 |
中 |
アンビエントサウンド、SFX |
ループ再生は、64サンプルバウンダリに限定。 |
Vorbis |
3-40:1 |
中から高 |
中から極小 |
ダイアログ、ミュージック、アンビエントサウンド、SFX |
メタデータのオーバーヘッドが他のフォーマットよりやや大きいので、非常に小さいサウンド(数10ミリ秒未満)では使用しない。シークには、シークテーブルが必要。 |
AAC |
3-23:1 |
大(iOSでハードウェアがアシストするデコーダを使用する場合は、小) |
中から小 |
バックグラウンド(インタラクティブでない)ミュージック |
メタデータのオーバーヘッドが、非常に大きい。セットアップ時間が長い。サンプルアキュレート再生には不向き。 |
|
|||||
Opus (standard) |
10-60:1 |
大 |
中から極小 |
ダイアログ、単純なミュージック、アンビエントサウンド、SFX。 |
メタデータのオーバーヘッドが他のフォーマットよりやや大きいので、非常に小さいサウンド(数10ミリ秒未満)では使用しない。 シークやループのあとのセットアップ時間は、特にディスクからストリーミングすると、非常に長くなります。インタラクティブミュージックをストリーミングする場合に使うのであれば、注意が必要です。シークも、一次的にCPUにかなり負荷がかかります。 |
デフォルトで、Vorbisエンコーダが使う Seek table granularity(サンプルフレーム)は、16384です。シークテーブルが常に必要となるわけではありませんが、以下の状況では必須です:
Vorbisエンコーダを、From Elapsed Timeに設定したバーチャルボイスと組み合わせて使う場合。
Vorbisエンコーダを、インタラクティブミュージックファイル用に使い、特に、サウンドエンジンが、ファイルの冒頭以外の位置から読み始める必要がある場合。
Vorbisエンコーダで、シークアクションを使う場合。
Vorbisでエンコードされたファイル用に、シークテーブルを有効にするには、以下を行います。
Conversion Settingsダイアログで、Vorbisエンコーダを使用するプラットフォームのEditをクリックする。
Vorbis Encoder Parametersダイアログで、Seek table granularityリストの数字を選択してシークテーブルの精度を指定する。
シークテーブルの精度が細かいほど、メモリが必要となります。サンプルアキュレートなシーク(インタラクティブミュージックや、シークアクション)は、精度が低すぎるとCPU負荷が急増したり、ディスクのストリーミング精度よりも大きいとI/O使用が不足したりすることがあります。 目安としディスクのストリーミング精度以下のシークテーブルサイズ、つまり初期化でAkDeviceSettings::uGranularity
で使う値を選択します。
ファイルが小さすぎると、シークが失敗することも | |
---|---|
ファイルが、Seek tableの精度(granularity)のサイズより小さいか、非常に近い場合は、シークが失敗する可能性があります。その場合は、Seek tableの精度を細かくしてください。 |