在FMOD中更改侦听器角度

时间:2011-07-10 16:46:30

标签: iphone fmod

我已经在FMOD中设置了一个事件系统,当听众接近它时会触发3D声音。我希望能够改变听者的听者角度,以便我的整个声音景观移动与听众旋转相同的度数。好吧?

有可能吗? iPhone的代码是什么? 我会将一些东西传递给方法set3DListenerAttributes吗?

2 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解,您是否只想在3D空间中旋转侦听器?如果是这样,您可以调整侦听器前向矢量以指向新方向。

**根据您的回复**

FMOD与笛卡尔坐标系统一起工作,它有一个单位长度向量,指向对象(或听众)所面对的方向。我建议你做一些关于三角学的阅读,以完全理解如何将角度(以度或弧度)转换为矢量。

对于前向矢量,等式是(如果我没记错的话): x = cos(角度) z = sin(角度) y = 0;

这假设角度是弧度,从度数转换为弧度: 弧度=度*(180 / Pi) 其中Pi约为3.14159265

答案 1 :(得分: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);