ズームインおよびズームアウトできる2Dゲームでサウンドを減衰させるにはどうすればよいですか?


8

私の2Dゲームでは、滝のノイズやジェネレーターのハミングのようないくつかのアンビエントサウンドがあります。ただし、これらのサウンドを大音量で常に再生することは現実的ではありません。大きなレベルでは、このようなノイズの多くが重なり合うことは耳にとって非常に不快になるためです。

私は現在、プレイヤーまでの距離に応じて特定の音の音量を調節するシステムについて考えています。ただし、これは(たとえば)ズームされた状態では、プレーヤーが音源(滝など)からかなり離れている可能性があるため、画面には表示されても聞こえないため(これにより遠くへ)かなり厄介です。

そのような問題の解決策はありますか?


3
「ベストプラクティス」は広すぎますが、質問の要点はズームに関するものであり、より回答的で興味深いものです。そこで、「ベストプラクティス」のビットを削除しました。

回答:


8

私はあなたが正しい軌道に乗っていると思います。提案されている距離ベースの減衰システムは、次の場合に機能します。

  • プレーヤーからオブジェクトまでのゲーム内距離を常に使用します。これは、ズームレベルに関係なく固定されたままです(「画面上」の距離は使用しないでください。ズームすると変化します)。

  • 減衰システムを設定して、世界のプレーヤーまでの距離が、オブジェクトが最大ズームレベルでプレーヤーにほとんど見えるようになるとすぐにオブジェクトのサウンドの再生を開始します。

このようにして、プレイヤーは物事を見る前に物事を聞くことができ、リアリズムと発見の感覚を伝えます。また、あまりにも多くのアンビエントサウンドを再生するほとんどのシナリオを防ぎます。

もちろん、世界の同じ場所にたくさんの音を発するオブジェクトがある場合でも、アンビエントサウンドチャネルが過負荷になる可能性があります。これは解決することができます

  • そうしないようにレベルを設計するか、それが実行可能でない場合は、

  • オブジェクトに適切な優先度を与え、n最も優先度の高いオブジェクトのみを取得する、または

  • すべてのアンビエントサウンドのボリュームを(多かれ少なかれ)「シーン内のサウンドの数で除算」して調整します。オブジェクトが遠ざかるにつれてサウンドがスムーズにフェードアウトし、「ポップ」するのを避けます。たとえば、5つのオブジェクトから4つのオブジェクトに個別にジャンプします。

  • 特定のレベルまたはゲーム全体について、一度に範囲内にあり、サウンドを再生できるオブジェクトの最大数を事前計算します(これは、レベルまたはゲームデータのビルドプロセスの一部として行います)。これに基づいて、最悪のケースが特定のボリュームを超えないように、1つのオブジェクトを再生する音量を決定できます。

後者の2つのオプションは、純粋にボリュームの観点から問題対処します。ただし、500のバックグラウンドサウンドを十分に静かに再生しても、プレーヤーの鼓膜を圧倒しないという事実は考慮されていません。音量の意味ではなく、混乱する意味で騒がしいものにしてください。

その問題に対処するには、アンビエントエミッターの総数を減らすか、n優先順位の高いサウンドのみを取得することをお勧めします(参考までnに、ギルドウォーズ2で決めたのは、トップを取得することです)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.