トップページ > 記事閲覧
3Dサウンドリスナーについて
名前:AvanRX 日時: 2019/05/27 14:29

Set3DSoundListenerPosAndFrontPosAndUpVec関数において 第二引数と第一引数の値が同じになると音が聞こえなくなるのですが... 実行環境はWindows10,VisualStadio2017(Pro,x86,Debugのみ確認)です。 原因がわからないのでお時間ある際にご確認いただけると幸いです。 以下実装 #include<Dxlib.h> #include<iostream> int handle; //自作の三次元座標構造体、動作確認済み、互換性有 Vector3 pos; int main(){ SetCreate3DSoundFlag(TRUE); handle = LoadSoundMem(handle, "assets/test.wav"); SetCreate3DSoundFlag(FALSE); Set3DSoundOneMetre(10); Set3DRadiusSoundMem(handle, 250); Set3DPositionSoundMem(pos, handle); PlaySoundMem(current_BGM_, DX_PLAYTYPE_LOOP); while(ProssesMessage()==0){ if (CheckHitKey(KEY_INPUT_A)) { pos.x -= 1 * deltaTime; } else if (CheckHitKey(KEY_INPUT_D)) { pos.x += 1 * deltaTime; } else if (CheckHitKey(KEY_INPUT_W)) { pos.z += 1 * deltaTime; } else if (CheckHitKey(KEY_INPUT_S)) { pos.z -= 1 * deltaTime; } //ここの pos と{0,0,1}が等しくなると再生中の音が聞こえなくなります listener_.setPosAndDir_UpVecY(pos, { 0,0,1 }, { 0,1,0 }); } };
メンテ

Page: 1 |

Re: 3Dサウンドリスナーについて ( No.1 )
名前:管理人 日時:2019/05/27 23:30

分かりにくくてすみません、Set3DSoundListenerPosAndFrontPosAndUpVec の第二引数は 「前方を示す方向ベクトル」ではなく「前方を示す座標」となっていますので、 第一引数の「リスナーの位置」と同じ値になってしまうとリスナーの前方がどの方向なのか 判断ができなくなり、エラー状態となってしまいます なので、例えばリスナーの向きをZ軸のプラス方向にされたい場合は第二引数は リスナーの座標の Z を 1 プラスした値を渡すようにしてください
メンテ
Re: 3Dサウンドリスナーについて ( No.2 )
名前:AvanRX(解決) 日時:2019/05/28 11:09

>>管理人様 ありがとう御座います、解決しました リファレンスのサンプルコードのVAddを見落としてました...
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存