I’m currently integrating FMOD Studio to our engine and working on sounds 3D positioning at the moment. There is a problem with setting up listener 3D position and I’d appreciate some assistance from you to deal with it.
We support multi-listener environment for split-screen mode, so I’d want to pass the listener ID to the function that receives 3D attributes, and the first thing is that Studio::System::setListenerAttributes doesn’t have the ID in it’s arguments list and it seems that on Studio level there is no certain way to specify which listener attributes are meant to be set up.
If I see it right, the low level system function System::set3DListenerAttributes is supposed to be used for this purposes, and I’ve tried to set listener attributes with it, but despite System::get3DListenerAttributes retuns correct values (those that were passed to the ‘set’ function) after setting them, the ‘set’ function doesn’t have any influence on the actual listener position as the playing sound stays exactly the same as it was before calling System::set3DListenerAttributes. Meanwhile if Studio::System::setListenerAttributes is used with the same parameters, there are some reasonable changes in panning of playing sound and it’s obvious that listener position was changed. So it seems that System::set3DListenerAttributes doesn’t work properly or I need some clarification on how to make it work the right way.
In order to make sure that System::set3DListenerAttributes doesn’t alter listener’s position, I’ve opened studio API examples solution and changed listener setup in 3D example using System::set3DListenerAttributes. I’ve also changed logic that moves vehicle engine event position when arrow keys are pressed to move the listener rather than event and it works with Studio::System::setListenerAttributes, but doesn’t with System::set3DListenerAttributes.
To sum up, there are two actual questions: how can I specify what listener to set up on studio API level? And if I have to use the low level function for this, how to make it work properly?
Saber Interactive Inc
we are using 1.05.11 API version currently