次の方法で共有


最小距離と最大距離

リスナーが音源に近づくにつれてサウンドが大きくなり、距離が半分になるとボリュームは倍になる。ただし、特定の点を過ぎると、ボリュームが増加し続けるのは合理的ではない。これが音源の最小距離である。

サウンドに対して設定した最小距離により、距離と共にサウンドが小さくなる速さが決まる。たとえば、この値を、ジェット エンジンに対しては 100 メートルに設定し、ハチに対しては 2 センチメートルに設定したとする。これらの設定では、ジェット エンジンはリスナーから 200 メートル離れると半分のボリュームになるが、ハチはリスナーからわずか 4 センチ離れただけで半分のボリュームになる。

次の図は、距離が大きくなるにつれて、最小距離と最大距離がジェット エンジンの音とハチの羽音のボリュームにどのように影響するかを示している。

最小距離と最大距離

サウンド バッファのデフォルトの最小距離 DS3D_DEFAULTMINDISTANCE は、1 単位、つまりデフォルトの距離係数では 1 メートルと定義されている。この値を変更しない限り、サウンドはリスナーから 1 メートル離れた位置で最大ボリュームになり、2 メートル離れると半分のボリュームに、4 メートル離れると 1/4 のボリュームになる。ほとんどのサウンドでは、最小距離をこれよりも大きく設定し、距離が大きくなってもサウンドが急速に消えないようにする。

音源の最大距離とは、そこを超えるとそれ以上サウンドのボリュームが小さくならない距離を意味する。DirectSound の 3D バッファのデフォルトの最大距離 (DS3D_DEFAULTMAXDISTANCE) は 10 億であり、普通は音が聞こえなくなった後も引き続き減衰を計算し続けることを意味する。VXD ドライバを使うソフトウェア バッファにおいて不必要な処理を避けるために、アプリケーションでは適切な最大距離を設定し、バッファを作成する際に DSBCAPS_MUTE3DATMAXDISTANCE フラグを指定する必要がある。DirectMusic では、オーディオパスの一部として作成された標準的な 3D バッファには、このフラグが自動的に設定される。

サウンドが聞こえなくなることを防止する目的でも、最大距離を利用できる。たとえば、あるサウンドの最小距離を 100 メートルに設定し、1,000 メートル以上離れるとそのサウンドが事実上聞こえなくなると仮定する。ここで最大距離を 800 メートルに設定すると、距離にかかわりなく、そのサウンドは最大ボリュームの少なくとも 1/8 で常に聞こえることが保証される。当然、この場合は DSBCAPS_MUTE3DATMAXDISTANCE フラグを設定しない。

デフォルトでは、距離の値はメートル単位で表される。

すべてのサウンド バッファについて距離がボリュームに及ぼすエフェクトを調整するには、ロールオフ係数を変更する。

参照