社区问答

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

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

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

0 投票
Foremost, I am attempting to teach myself what I can with C# on my spare time. I have had very minimal instruction on C# coding thus far (via Udemy), but am also attempting to practice what I can based on examples. I have become comfortable with posting events with code, and am trying to graduate up to controlling RTPC's with code.

Essentially, I have a Blend Container set up in Wwise, with five different engine loops at various RPMs, each with slight graduating pitch. In Unity, I am using the Car from the Standard Assets as my test subject. Additionally in Unity, I started a new script on the vehicle controller, and am successfully starting the engine with a PostEvent, like so:

-----------------------------------------------------------------------------

public class Engine : MonoBehaviour {

    private string StartEngine = "Engine"

    void Start () {

        AkSoundEngine.RegisterGameObj(gameObject);

    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            AkSoundEngine.PostEvent(StartEngine, gameObject);
        }

 --------------------------------------------------------------------

Next, for calling my Game Sync / Parameter, "EngineRTPC" I know that I need something in the ballpark of this:

------------------------------------------------------------------------

        {
           
            AkSoundEngine.SetRTPCValue("EngineRTPC", gameObject);
        }

---------------------------------------------------------------------

... but am stuck on what line of code I need above that to attach to the speed of the vehicle.

I have tried various combinations, with GetSpeed, mathf, Vector3, float, GetComponent, velocity, etc; but fear I'm way in over my head, with seemingly what might be one line of code.

Any help and / or explanation would be most appreciated!
分类:General Discussion | 用户: Dennis B. (100 分)
After some tinkering with some, most appreciated, help from various sources (here on the AudioKinetic Q&A as well as the Wwise Wwizards & Wwitches facebook group), I ran across a video by Bjorn Jacobsen that breaks this down to the bare bones of controlling an RTPC via the speed of a rigidbody. Hope this helps others as well: https://youtu.be/xkB17uhKeMw

1个回答

0 投票

Hey Dennis, 

First off, are you aware that you are inputting the game object and not a float value into the .SetRTPCValue() function? 
You probably want it to look something like this: 
AkSoundEngine.SetRTPCValue("EngineRTPC", 23f);
where 23 is the value you set the RTPC to, and f means that it is a float value (the type of property that the function needs). 

Here's a suggestion to how you can get started, where you can change a slider to easier test your implementation.  

Start by making a float property, like...
[Range(0f,100f)] // This just displays a nice slider in Unity's inspector, that you can interact with. 
public float speedValueOfCar = 50; // Insert this outside any functions, but inside your script class. 

And then inside the update function could look like this: 
void Update() {
    if (Input.GetKeyDown(KeyCode.Space)) {
        AkSoundEngine.PostEvent(StartEngine, gameObject);
        }
        AkSoundEngine.SetRTPCValue("EngineRTPC", speedValueOfCar);
}

Now save, and then return to Unity, click Play, start the sound and try out the slider. 

Tip: Do you know about Wwise-Types? They can be a bit simpler to call, compared to AkSoundEngine functions. To start with your example, you could do this instead: 
    [Range(0f,100f)]
    public float speedValueOfCar = 50;
    public AK.Wwise.RTPC CarSoundRTPC; 

    void Update()
    {
        CarSoundRTPC.SetGlobalValue(speedValueOfCar);
    }

And then you'd get a nice button in the inspector, where you can select an Event and not have to check for typos. 

Does this make it clearer? 

用户: Mads Maretty S. (Audiokinetic) (40.2k 分)
Wow, thanks so much, Mads! I'll give these techniques a try and will repost on how it worked out! Cheers!
...