Community Q&A

Welcome to Audiokinetic’s community-driven Q&A forum. This is the place where Wwise and Strata users help each other out. For direct help from our team, please use the Support Tickets page. To report a bug, use the Bug Report option in the Audiokinetic Launcher. (Note that Bug Reports submitted to the Q&A forum will be rejected. Using our dedicated Bug Report system ensures your report is seen by the right people and has the best chance of being fixed.)

To get the best answers quickly, follow these tips when posting a question:

  • Be Specific: What are you trying to achieve, or what specific issue are you running into?
  • Include Key Details: Include details like your Wwise and game engine versions, operating system, etc.
  • Explain What You've Tried: Let others know what troubleshooting steps you've already taken.
  • Focus on the Facts: Describe the technical facts of your issue. Focusing on the problem helps others find a solution quickly.

0 votes

Hello,

We use WAAPI to generate dialogue events for our Unity game. Our game has around 12,000 lines of dialogue.

Let me first explain an odd WAAPI limitation we ran into: There seems to be no way to clear out the Actions set to an Event and add the one you want without replacing the event entirely...

  • If we use the "event" field in ak.wwise.core.audio.import, it ADDS an action to that event rather than replacing it.
  • We cannot access the "@Action" field of an event during ak.wwise.core.object.create, unless we use a different JSON serializer rather than JsonUtility, since JsonUtility will ignore the @ symbol in the serialization.
    • Even if we could, I'm not sure what the functionality would be. Would this add an action or replace the Action set with the ones I specified?
  • Thus, we had to overwrite all generated events with no Actions, then set the action at the import step using the event field. Remember, that's 12,000 events that get assigned a different GUID.

If you have any pointers in getting around this, please let us know!

 

BUT:

 

The biggest issue this causes the WWU parsing step to take 1-5 HOURS after the Wwise events have been generated. This is killing productivity for everyone who uses Unity at the studio.

 

I narrowed it down to one line of code in the Unity plugin, in WwiseObjectReference.cs line 128 via AkWwiseBuilder.cs line 583: The plugin uses AssetDatabase.DeleteAsset() for ALL of these 12,000 "removed" event reference objects. This takes 0.25 - 1 second each.

 

Fortunately for us, we don't actually use the Unity reference for any of our VO; we call it all directly through AkSoundEngine.PostEvent(). This means that these reference objects didn't actually exist!

 

My optimization is as follows, which I hope can make it into the next Unity plugin update:

if (UnityEditor.AssetDatabase.LoadAssetAtPath<WwiseObjectReference>(path) != null)

{

    UnityEditor.AssetDatabase.DeleteAsset(path);

}

LoadAssetAtPath is hundreds or even thousands of times faster than DeleteAsset, so this saved a TON of parsing time.

 

I'd also like to reiterate from my other post (which has not yet been answered) that the event reference objects are causing us a ton of problems: https://www.audiokinetic.com/qa/5516/unity-integration-2018-1-4-update-causing-massive-problems

 

Thank you, and I hope this is looked into soon.

 

Best,

Bryant

in General Discussion by Bryant C. (150 points)

Please sign-in or register to answer this question.

...