SetCreate3DSoundFlag

次に作成するメモリに読み込む音データを3Dサウンド用にするかどうかを設定する

SetCreate3DSoundFlag Flag

Flag : 作成する音データを3Dサウンド用にするかどうかのフラグ
( TRUE:3Dサウンド用にする FALSE:2Dサウンド用にする( デフォルト ) )

(プラグイン / モジュール : DxLibW)

解説

3Dのゲームでは映像だけではなく音も鳴っている位置とリスナー( 聞く人 )の位置によって小さく聞こえたり特定の方向から聞こえたりといった2Dゲームとの違いがあります。

DXライブラリでは2Dサウンド用の音データと3Dサウンド用の音データは区別されていて、
音データが3Dサウンド用になるか2Dサウンド用になるかは LoadSoundMem などの関数で音ファイルを読み込む前にこの関数で3Dサウンド用の音データにする設定にしていたかどうかで決まります。

そして、3Dサウンド用か2Dサウンド用かは後から変更することはできません。

<2Dサウンド用として読み込む場合>

SetCreate3DSoundFlag( FALSE ) ;
SoundHandle = LoadSoundMem( "Test.wav" ) ;

<3Dサウンド用として読み込む場合>

SetCreate3DSoundFlag( TRUE ) ;
SoundHandle = LoadSoundMem( "Test.wav" ) ;

3Dサウンド用として読み込んだ場合は、音データを PlaySoundMem で再生する前に Set3DPositionSoundMem で音の再生位置を、
Set3DRadiusSoundMem で音が聞こえる距離を設定する必要があります。


また、リスナーの位置も Set3DSoundListenerPosAndFrontPos_UpVecY などの関数で設定しておく必要があります。
( 尚、当然ですが音が届く距離よりも音の再生位置とリスナーとの距離の方が離れている場合は、音を鳴らしてもスピーカーからは何も音が聞こえません )

諸々の設定を行い実際に3Dサウンドを再生するサンプルプログラムが Set3DPositionSoundMem
のサンプルプログラムとしてありますので、参照してください。


<注意>

尚、XAudio2 が使用できる環境で、且つ DxLib_Init を呼び出す前に SetEnableXAudioFlag に TRUE を渡して XAudio2 を使用する設定にしている場合は XAudio2 を使用して正式な3Dサウンドを実現しますが、
XAudio2 が使用できない環境か若しくは DxLib_Init の呼び出し前に SetEnableXAudioFlag を使用して XAudio2 を使用する設定にしていない場合は DirectSound による擬似的な3Dサウンドとなりますので、
正式な3Dサウンド再生機能を使用したい場合は必ず SetEnableXAudioFlag を使用するようにしてください。

戻り値:
  0:成功

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib サウンド
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs