リミット処理のかかる順番と音が聞こえない条件

キューのリミット

キューを再生した時、そのキューがリミットされて再生されない条件はデータ側にあります。
このデータの設定は以下の順番で行われます。

  1. 多重再生禁止時間
  2. キューリミット
  3. カテゴリキューリミット

ボイスのリミット

ボイスが再生される時、そのボイスがリミットされて再生されない条件はデータ側にあります。
このデータの設定は以下の順番で行われます。

  1. ボイスリミットグループ設定のリミット
  2. ボイスプール数リミット

自動停止する機能

データ側でのリミット制御

  • 多重再生禁止時間でのリミット
  • キューのリミット
  • カテゴリキューのリミット、プライリティの優先度
  • ボイスリミットグループでのリミット

プログラム側でのリミット

  • ボイスプール数
  • ストリーム最大数

他に特殊なケースでデータ側設定で停止する例

  • トラックのMonoモード
  • ブロックの遷移時停止(ブロックを遷移させたタイミング)
  • ボイスビヘイビアのVol0時ボイス停止(ボリュームを0にした、AISACで0になった、ボリュームランダムで0になったなど)
  • セレクタによるトラック遷移の遷移時の停止(セレクタを切り替えたタイミング)
  • アクションによる停止(プレーヤー間、サウンドオブジェクトスコープ間)
  • オートメーションのボリューム0
  • キュー、トラック、ウェーブフォームリージョンのボリュームが0

再生される/されないが状況で変わる例

  • トラックに設定されたセレクタによる分岐(ポリフォニック、スイッチ)
  • トラックに設定された言語設定による分岐(ビルド時に含まれる/含まれないが決まる)
  • シーケンスタイプがランダム(トラックがランダムに選ばれる、空のトラックが含まれるなど)
  • キュー、トラック、ボイスの再生確率設定が100以下
  • ランダムの重み付けが100以下
  • スイッチでのゲーム変数が範囲外での再生
  • スイッチでのセレクタの設定が未設定での再生
  • トラックやウェーブフォームリージョンでのフィルター設定(フィルターがかかって聞こえない)
  • シーケンススタートマーカーを複数設定した時のランダムスタート(開始位置が再生時間よりうしろだと再生されない)
  • 外部キューリンクで、リンク先のキューが見つからない(外部キューリンク先のACBがロードされている/いない)
  • ブロックのタイミングで再度リピートするタイミングによるブロック切り替え(ぎりぎりのタイミングだと次の遷移機会に流れる)
  • ブロック再生による遷移先がランダム設定
  • AISACのランダムでボリュームが0など(鳴っているが聞こえない)
  • 距離減衰設定の最大距離が0
  • 距離減衰AISAC/角度AISACによるボリュームが0
  • 3Dポジショニング設定で最大距離より離れたソース
  • バスセンド先指定でバスが無いDSPバス設定に切り替えた
  • バスセンド先指定でマスターのセンド量が0(AISACやオートメーションも)
  • バスセンド先のエフェクトの設定でゲインが下げられている(フィルター要因など)
  • REACTでダッキングされた状態
  • ランタイムのエラー発生後に継続できない場合(ファイルシステムやリソース不足など警告やエラーが発生後など)

ランタイム側の処理で停止する(再生されない)例

  • ボイスプールが1つしか無いものの再生時(ボイスプール数によるリミット、リモコンや特殊デバイスなど)
  • フェーダーのアタッチされたプレーヤーで再生(前回再生音が停止)
  • 再生中のACBを解放した
  • 存在しないキューを再生した(キューが見つからない)
  • オーディオデバイスが切り替わった(ヘッドフォンをさした、HDMIポートのオーディオ出力に切り替わった)
  • BGMカテゴリの再生で、カテゴリ設定が鳴らなくなる(BGMカテゴリはランタイムでの設定)
  • ASRラックの指定(配信不可能サウンドなど)
  • DSPバス設定切り替え、スナップショット切り替え(停止はしないがエフェクトの種類によってはノイズになる可能性あり、ディレイ系など)
  • ボイスプールが用意されていない(再生時に警告あり)

停止しない機能

他のシステムなどでは1音のみ再生だったりするものもあるので補足
  • 初期状態でのプレーヤーによるキューの再生(ボイスプールがある限り、リミット処理がかからない限り多重再生)
フェーダーをつけたりしない限り、一つのプレーヤーで複数の音を再生可能です。

停止要因の確認について

プロファイラーを使うことで、直前に再生されたキューなどから、ある程度の要因がつかめます。