menu
バージョン
2021.1.14.8108
2024.1.3.8749
2023.1.11.8682
2022.1.18.8567
2021.1.14.8108
2019.2.15.7667
2019.1.11.7296
2018.1.11.6987
2017.2.10.6745
2017.1.9.6501
2016.2.6.6153
2015.1.9.5624
2024.1.3.8749
2023.1.11.8682
2022.1.18.8567
2021.1.14.8108
2019.2.15.7667
2019.1.11.7296
2018.1.11.6987
2017.2.10.6745
2017.1.9.6501
2016.2.6.6153
2015.1.9.5624
Wwise SDK 2021.1.14
|
デフォルトでは、Wwiseサウンドエンジンは専用のスレッド AK::EventManager
で、AkPlatformInitSettings::threadLEngine パラメータが制御しながらすべてのコマンド処理とオーディオレンダリングを行っています。 AK::SoundEngine::RenderAudio
をコールするとゲームフレームが終わることを意味するので、スレッドは、 RenderAudio
への最後のコール以降に受領したすべてのAPIコマンドを消費することができます。
AkInitSettings::bUseLEngineThread
を false
に設定すると、このスレッドが無効になり RenderAudio
が同期的に実行され、コマンドを処理し、必要に応じてオーディオをレンダリングします。オーディオ出力の実際のレートは、オーディオエンドポイントが引き続き制御します。 RenderAudio
の呼び出し間隔が、 AkInitSettings::uNumSamplesPerFrame
で定義したバッファ期間や、出力サンプルレートよりも短い場合は、 RenderAudio
へのコールの一部が、オーディオレンダリングの部分を省略します。逆に、 RenderAudio
の呼び出し間隔が出力バッファ期間よりも長い場合は、 RenderAudio
が同時に複数のバッファを処理する可能性があり、CPU使用量が急上昇し、次第にオーディオが途切れる可能性があります。
オフラインのレンダリングを有効にすると、非同期コマンド処理や、オーディオスレッドからのオーディオレンダリングが無効になります。 RenderAudio
への1回の呼び出しでレンダリングされるオーディオの量は、 AK::SoundEngine::SetOfflineRenderingFrameTime
に送る0以外の正の値で決まります。値が0または負の値であれば、強制的に、 RenderAudio
で処理されるオーディオバッファがちょうど1となります。
warning |
注意: オーディオレンダリングのスレッドを無効にした状態や、オフラインレンダリングを有効にした状態では、同期的な AK::SoundEngine::LoadBank や AK::SoundEngine::UnloadBank のAPIコールを、 RenderAudio のコールと同じスレッドで行ってはいけません。理由は、これらのコールが、オーディオバッファがレンダリングされるまでブロックし、それからStop操作を完了させSoundBankメディアを解放する可能性がありますが、これは RenderAudio への並列のコールがなければ起きないからです。 |
Microsoftのプラットフォームではsingle-threaded apartment (STA) という並列モデルを使用するため、 AkInitSettings::bUseLEngineThread
を false
に設定するときに、 CoInitializeEx()
のコールは、 AK::SoundEngine::RenderAudio
をコールするのと同じスレッドで行う必要があります。
一部の AK::SoundEngine::Query 関数はCPUのスパイクを引き起こすことがあります。無駄なCPU時間を最小限に抑えてパフォーマンスの最適化を確保するために、以下のガイドラインに従うことを推奨します:
デフォルトで、Wwiseサウンドエンジンはバスやボイスの処理をオーディオレンダリングスレッドで実行します。
個別のBusタスクやVoiceタスクのパラレル実行を AkInitSettings::taskSchedulerDesc
で有効にできます。同時に安全に実行できるタスクグループには、Wwiseが AkTaskSchedulerDesc::fcnParallelFor
コールバックを呼び出します。このリクエストは、ゲーム側のタスクスケジュラーに送られ、複数のワーカースレッドに実行が分割されます。
info |
注釈: パラレル実行を有効にすると、一部の AK::SoundEngine コールバックは、同時タスクスケジュラースレッドから生成されます。 |
info | 注釈: パラレル実行に対応していないプラグインもあります。 |