私はあなたが正しい軌道に乗っていると思います。提案されている距離ベースの減衰システムは、次の場合に機能します。
このようにして、プレイヤーは物事を見る前に物事を聞くことができ、リアリズムと発見の感覚を伝えます。また、あまりにも多くのアンビエントサウンドを再生するほとんどのシナリオを防ぎます。
もちろん、世界の同じ場所にたくさんの音を発するオブジェクトがある場合でも、アンビエントサウンドチャネルが過負荷になる可能性があります。これは解決することができます
そうしないようにレベルを設計するか、それが実行可能でない場合は、
オブジェクトに適切な優先度を与え、n
最も優先度の高いオブジェクトのみを取得する、または
すべてのアンビエントサウンドのボリュームを(多かれ少なかれ)「シーン内のサウンドの数で除算」して調整します。オブジェクトが遠ざかるにつれてサウンドがスムーズにフェードアウトし、「ポップ」するのを避けます。たとえば、5つのオブジェクトから4つのオブジェクトに個別にジャンプします。
特定のレベルまたはゲーム全体について、一度に範囲内にあり、サウンドを再生できるオブジェクトの最大数を事前計算します(これは、レベルまたはゲームデータのビルドプロセスの一部として行います)。これに基づいて、最悪のケースが特定のボリュームを超えないように、1つのオブジェクトを再生する音量を決定できます。
後者の2つのオプションは、純粋にボリュームの観点から問題に対処します。ただし、500のバックグラウンドサウンドを十分に静かに再生しても、プレーヤーの鼓膜を圧倒しないという事実は考慮されていません。音量の意味ではなく、混乱する意味で騒がしいものにしてください。
その問題に対処するには、アンビエントエミッターの総数を減らすか、n
優先順位の高いサウンドのみを取得することをお勧めします(参考までn
に、ギルドウォーズ2で決めたのは、トップを取得することです)。