1

FMODでイベントシステムをセットアップし、リスナーが近くにいるときに3Dサウンドがトリガーされるようにしました。リスナーの角度を変更して、サウンドランドスケープ全体がリスナーの回転と同じ角度だけシフトするようにしたいと考えています。いいね?

出来ますか?そのためのiPhoneコードは何でしょうか?set3DListenerAttributesメソッドに何かを渡しますか?

4

2 に答える 2

1

完全に理解できているかわかりませんが、リスナーを3D空間で回転させたいだけですか?その場合、新しい方向を指すようにリスナーの前方ベクトルを調整します。

**あなたの回答に基づく**

FMODはデカルト座標系で動作し、オブジェクト(またはリスナー)が向いている方向を指す単位長ベクトルを持っています。角度(度またはラジアン)をベクトルに変換する方法を完全に理解するために、三角法を読んでおくことをお勧めします。

フォワードベクトルの場合、方程式は次のようになります(私が正しく覚えている場合):x = cos(angle)z = sin(angle)y = 0;

これは、角度がラジアンであり、度からラジアンに変換されることを前提としています。ラジアン=度*(180 / Pi)ここで、Piは約3.14159265です。

于 2011-07-10T23:23:28.910 に答える
0

これは私が最後に使用したコードでした:

float degree = 90;
float radians = (degree) * (M_PI/180);


float fx = cos(radians);
float fz = sin(radians);

forward.x = fx;
forward.z = fz;

listenerpos.x = lxPos * DISTANCEFACTOR;   
listenerpos.z = lyPos * DISTANCEFACTOR;


result = eventSystem->set3DListenerAttributes(0, &listenerpos,&vel,&forward,NULL);
于 2011-07-14T14:31:37.737 に答える