我已经在FMOD中设置了一个事件系统,当听众接近它时会触发3D声音。我希望能够改变听者的听者角度,以便我的整个声音景观移动与听众旋转相同的度数。好吧?
有可能吗? iPhone的代码是什么? 我会将一些东西传递给方法set3DListenerAttributes吗?
答案 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);