menu
 
バージョン
2024.1.5.8803

2024.1.5.8803

2023.1.13.8732

2022.1.19.8584

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

menu

Audio command queue is full, blocking caller. Reduce number of calls to sound engine or boost command queue memory.

オーディオコマンドキューは、ゲームから内部サウンドエンジンへの全てのAPIコールを伝達するメカニズムです。これは、Performance Monitorビューでモニタリングできるメモリバッファです。バッファがコマンドでいっぱいになると、さらにコマンドを追加しようとするゲームスレッドが一時的にブロックされます。目的は、APIコールの損失によるゲームとサウンドエンジンの同期問題を防止することです。ただし、ゲームのフレームレートが乱れる可能性が高くなります。

考えられる原因:

  • 1つのゲームフレームで送信されるAPIコールが多すぎます。これが、このエラーの最も一般的な原因です。 SetPosition SetRTPCValue SetSwitch などへの余分なコールが理由で、よく発生するエラーです。また、ゲームで新しいレベルを展開するときに、多数のゲームオブジェクトを作成して、実際のゲームプロセスのスタート前にそれらのポジションやRTPCを設定する場合などにも、発生します。

  • 大量のパラメータアレイ( SetMultiplePositionsや、スペーシャルオーディオ用のジオメトリ関連コールなど)が含まれる、メモリ負荷の高い複数のAPIコールが発生しました。

  • オーディオ処理スレッドに過度の負荷がかかり、コマンド処理を阻止しています。このエラーにボイススターベーションが伴えば、Voice Starvationエラーも表示されます。

  • オーディオ処理スレッドがブロックされた、またはデッドロックが発生しました。ゲームまたはWwise自体のバグの可能性があります。

推奨される解決策:

  • API CallsProfiler Settings (Alt-G)で有効にしてゲームが行っているAPIコールのプロファイリングを行います。これを使って、キューに大量のAPIコールを送り込んでいるゲームプロセスを特定できます。

  • ゲームがWwiseに対して、ゲームシンク(States, Switches, Game Parameters)をどのように更新しているかを、再確認します。これらの更新は、必要なときだけに行うようにします。

  • AK::SoundEngine::RenderAudio にゲームフレーム内コールを追加し、1つのゲームフレームを複数のオーディオフレームに分割します。RenderAudioは、1つのゲームフレームに属する一連のAPIコールの終了だけを認識します。内部サウンドエンジンの状況を更新するために、Audioコマンドキューの処理をトリガーしますが、このファンクションコールでレンダリングされる実際のオーディオはありません。

  • オーディオ処理スレッド(名前は AK::EventMgrThread であるものの、プロパティは AkPlatformInitSettings::threadLEngine 経由で設定)のCPUのプライオリティを、処理するのに充分な優先順位にします。問題がある場合は、ゲーム中に"Voice Starvation"エラーも頻繁に発生するはずです。

  • ゲームにデバッガを接続して、AK::EventMgrThreadというスレッドが実際に稼働しているかを、検証してください。稼働していない場合は、ゲームのサウンドが既に失われていることを意味します。この場合はAudiokineticサポートにご連絡ください。

  • コマンドキューのメモリサイズを、 AkInitSettings::uCommandQueueSize を参照し、拡張してください。


このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう