社区问答

欢迎来到 Audiokinetic 社区问答论坛。在此,Wwise 和 Strata 用户可互帮互助。如需我们团队直接提供协助,请前往技术支持申请单页面。若要报告问题,请在 Audiokinetic Launcher 中选择“报告错误”选项(注意,问答论坛并不会接收错误报告)。我们内部设有专门的错误报告系统,会有专人查看报告并设法解决问题。

要想尽快得到满意的解答,请在提问时注意以下几点:

  • 描述尽量具体:比如,想达到什么样的目的,或者具体哪里有问题。
  • 包含关键细节:比如,Wwise 和游戏引擎版本以及所用操作系统等等。
  • 阐明所做努力:阐明自己为了排除故障都采取了哪些措施。
  • 聚焦问题本身:聚焦于问题本身的相关技术细节,以便别人可以快速找到解决方案。

+2 投票

I'm not sure if this feature is deprecated, but I attempted to implement the 3D bus architecture in Unity (outlined in this blog post -- https://blog.audiokinetic.com/working-with-the-new-3d-bus-architecture-in-wwise-2017.1-simulating-an-audio-surveillance-system/ and documented in this help article -- https://www.audiokinetic.com/library/edge/?source=Help&id=applying_positioning_to_busses ), and am having a few issues:

First, there's no documented way to attach a Bus to a Unity game object. AkEnvironment components take an Aux bus as a reference (which makes sense, because these are used for environmental effects that act as sends), but there's no component with a Bus reference. So - how do I set the 3D settings on a bus in the game engine?

Second, the C# has no definition for a Bus... at all? This seems like an odd omission, and I would appreciate some help in understanding why there is no Bus class in Unity. This would seem to mean that there's no way to create my own spatialized bus from the scripting, because this is a part of the audio engine I cannot access.

In fact, a search through the C++ SDK yields very little information on Buses, and 3D positioning appears to only apply to events and sound sources. How does one attach a bus to a Game Object in order to apply positioning?

分类:General Discussion | 用户: Corey B. (490 分)
An update: this is even more mysterious than I originally thought.

There's a 3D bus example in the IntegrationDemo (Demo3DBus.cpp) that uses the C++ SDK.  I've combed through it multiple times - at no point are 3D attributes explicitly set on the bus, nor is the bus explicitly attached to the registered emitter object. And yet, it works - The bus is being spatialized with the Emitter object.

Can anyone tell me what I'm missing here? I would like to know how 3D bus is being attached to an object.

1个回答

+2 投票

Edit: I kinda managed to find a solution.

You need to use an intermediate listener as said here: https://www.audiokinetic.com/fr/library/edge/?source=SDK&id=soundengine_listeners.html#soundengine_registering_listeners

It is also possible to use listeners for 3D positioning of submixes. To do so, it is necessary to assign listeners to game object that are also listeners creating a directed graph of game objects, connected by emitter-listener associations.

 So in order the chain becomes:

  1. Sound (one or many) which will post non-positioned events to the 3d bus via AkGameObjs and will have only the Emitter below as listener (with Use Default Listeners unchecked)
  2. Emitter which will be used to output the submix positionally, it will need an AkAudioListener to receive input from all the Sounds and an AkGameObj with Use Default Listeners checked to redirect the output to the Default Listener (player)

This will create a chain like this

Which is still different from the Integration Demo below but at least it works


Original comment below:

I've been banging my head on this for 2 days with almost no results.

First of all I'd like to thank Audiokinetic for their VERY CLEAR and EXHAUSTIVE documentation about their integrations too, they are almost like black boxed.

I was profiling the Integration Demo and our project to see what is that we are doing differently and the Voices tab caught my attention:

This is our project (don't mind the missing event, the profiler started after it was sent), the Game Object and Listener gameobjects are correct, also the bus is selected (even if the positioning does not work)

And here you see the positioning is not working because the bus should be on the other GameObject


While here is the Integration Demo, and as you can see the weird thing is that the Game Object and Listener are the same object

Even though nowhere the Emitter lists itself as a listener, only Listener

 

So how is this supposed to work? All my other settings are the same as in the Integration Demo project so I'm guessing the problem lies in the Unity Integration but I can't figure out where, maybe who wrote that integration could help...


Another possible clue is that in the Integration Demo after the 3d bus it shows that the connection has a volume adjustment, but I can't figure out where in the project it's happening

用户: Xriuk (250 分)
...