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
Hi,

When I use the WAAPI call ak.wwise.core.object.getPropertyAndReferenceNames, how can I best use the results of this information to find all the Event references for that Audio object?

What would the WAAPI call(s) and results look like if I want to get the Event references for a given Audio object?

Thanks!
in General Discussion by Michelle A. (220 points)

1 Answer

+1 vote
 
Best answer

ak.wwise.core.object.getPropertyAndReferenceNames is not what you are looking for. ak.wwise.core.object.getPropertyAndReferenceNames serve as an introspection service. It can tell you what are the properties & references available for a specific object type.

For your situation, you are looking for the equivalent of the Reference View. This is available with the referencesTo select statement in ak.wwise.core.object.get.

Here is the python code:

from waapi import WaapiClient
import pprint

# Connect (default URL)
client = WaapiClient()

# Return all events referencing the specified object
args = {
    "from": {"path": ['\\Actor-Mixer Hierarchy\\Default Work Unit\\MySound']},
    "transform": [
        {"select": ['referencesTo']},
        {"where": ['type:isIn', ['Action']]},
        {"select": ['parent']},
        "distinct",
    ]}
options = {
"return": ['id', 'name','type']
}

result = client.call("ak.wwise.core.object.get", args, options=options)
pprint.pprint(result)
-->
{'return': [{'id': '{C4C14D5C-F6AA-4534-98A0-398BA5026F37}',
             'name': 'Play_MySound',
             'type': 'Event'},
            {'id': '{13D67C80-0900-4CE0-BBC4-3DC3D696DCBC}',
             'name': 'Stop_MySound',
             'type': 'Event'}]}

 https://gist.github.com/decasteljau/fc2d6a62480ec2a124c1f72495eeb753

by Bernard R. (Audiokinetic) (35.8k points)
selected by Mads Maretty S. (Audiokinetic)
Ah, I see, thank you!

Can this also work inversely?  Can I find all the objects referenced by an Event, or would this not be possible since referencesTo only works one direction?

Thanks!
You could achieve that with:

args = {
    "from": {"path": ['\\Events\\Default Work Unit\\Play_MySound']},
    "transform": [
        {"select": ['children']},
    ]
}

options = {
    "return": ['id', 'name','@ActionType','@Target']
}
result = client.call("ak.wwise.core.object.get", args, options=options)
...