Audiokinetic's Community Q&A is the forum where users can ask and answer questions within the Wwise and Strata communities. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

How to get and add Effects with WAAPI?

0 votes
Hi,

Is it possible to get any or all of the four possible Effects in the Effects tab of a Wwise object using WAAPI?

Can they be added/set as well?

Which property is the "Bypass All" checkbox in the Effects tab referring to?

Thanks!
asked Sep 25, 2019 in General Discussion by Michelle A. (220 points)

1 Answer

+1 vote

Yes,

To get the current effect of an object, use ak.wwise.core.object.get, with the following "return"

  • "@Effect0", "@Effect1", "@Effect2", "@Effect3": Return the effect set on the object directly
  • "@@Effect0", "@@Effect1", "@@Effect2", "@@Effect3": Return the resulting effect on the object, taking the override effects into account

To set the effects, use ak.wwise.core.object.setReference with the reference names enumerated above, without the @.

The bypass all is "@BypassEffect".

Refer to this page for more information:
https://www.audiokinetic.com/fr/library/edge/?source=SDK&id=wwiseobject__sound.html

answered Sep 30, 2019 by Bernard R. (Audiokinetic) (35,110 points)
Is it possible to check whether there are any valid Effects set before setting the properties for the effects?  How can you tell if the Effects tab is all grayed out (for objects that can or can't have Effects assigned)?
that is a bit complicated. In general, an object can define effects if @OverrideEffect=True.  However, if the object is on top of the hierarchy and has no ancestor that can have effects, it is possible that @OverrideEffect=False for those.

With WAAPI,
if @OverrideEffect=True, then the object can have effects
if @OverrideEffect=False, then you need to query all ancestors for their OveerideEffect property:

args = {
    "from": {
        "path": [
            '\\Actor-Mixer Hierarchy\\Default Work Unit\\MySound'
        ]
    },
    "transform": [{
        "select": ['ancestors']
        }]
}
options = {
    "return": [
        "@OverrideEffect"
    ]    
}

And see if any of them has @OverrideEffect. If no found, then the object can have effects.
Hmm, I can't seem to set the "Bypass All" checkbox via WAAPI.  When I try to set the "BypassEffect" property with WAAPI (to true or false), Wwise does not do anything and the request hangs.  Am I missing another step/check?  Thanks!
...