Version
menu_open

Defining how objects within a container are played

Containers can contain multiple objects. When a container is played, one or all of its child objects is played depending on the Play Mode setting:

  • Step play mode: Plays one child object each time the container is played.

  • Continuous play mode: Plays all the child objects each time the container is played. This mode includes options for looping and for transitions between objects.

Step play mode

You might want one object within the container to be played each time it is called. For example, each time a handgun is fired you might want only one sound to be played. As another example, each time a character speaks you might want them to deliver only one line of dialogue. To achieve this, set the play mode of the container to Step.

The following illustration shows what happens when a handgun is fired and the sounds for that handgun are in a Random Container in step mode.

To play one object in the container:

  1. Open the Property Editor for a Random or Sequence Container.

  2. In the Play Mode group, select the Step option.

    The container will only play one object each time it is played.

Continuous play mode

In other situations, you might want all the objects in the container to be played each time the container is played. For example, when certain guns in your game are fired, a series of sounds that must be played in sequence. To achieve this, set the play mode of the container to Continuous.

[Note]Note

Continuous play mode is always applied on the game object scope. Refer to Defining the scope of containers for further details.

The following illustration shows how Wwise manages the sequence of sounds played when a particular gun is fired using a Sequence Container in continuous mode.

In Continuous mode, all objects within the container are played, which means you can also add looping and various transitions between the objects.

[Note]Note

When a Random Container is in Continuous mode, some objects might be repeated several times before the complete list has played once. This is due to the weighting applied to each object within the container.

To play all objects within the container:

  1. Open the Property Editor for a Random or Sequence Container.

  2. In the Play Mode group, select the Continuous option.

  3. For Sequence Containers, select the Always reset playlist option to return the playlist to the beginning each time the container is played. If you clear this option, the container will continue playback from where it was stopped or more precisely at the beginning of the next object in the playlist.

  4. Select the Loop option to loop the entire contents of the container.

  5. Select one of the following options:

    • Infinite to specify that the container will be repeated indefinitely.

    • No. of Loops to specify a particular number of times that the container will be played.

  6. If you selected the No. of Loops option, type the number of times you want the container to be played.

  7. Select the Transitions option to apply a transition between the objects in the playlist.

    The Transition options become available.

  8. From the Type list, select one of the following options:

    • Xfade (amp) to add a crossfade between two objects using constant amplitude.

    • Xfade (power) to add a crossfade between two objects using constant power.

    • Delay to add a silence between two objects.

    • Sample Accurate to create a seamless transition with no latency between objects. Note that the Opus (if streamed from disk) and XMA audio formats are not reliable codecs for sample accurate transitions.

    • Trigger rate to define a specific rate at which the objects within the container will be triggered. This option is useful for simulating rapid gun fire. Alternatively, you can use MIDI to post each bullet sound with greater precision. Refer to Simulating Rapid Gunfire in the SDK documentation for details.

    [Note]Note

    There are some limitations and restrictions when using Xfade, Sample accurate, and Trigger rate transitions. A couple of notable ones are:

    • Blend and Switch Containers do not work with crossfades (Xfade). A Random/Sequence Container's Xfade will fail when any of its child Blend or Switch Containers play.

    • Using a break action to loop out of a Random/Sequence container set to sample accurate transition could result in a non-accurate transition with the next sound to be played, if the break occurred at the very end of the current sound and the next to play does not have enough time to prefetch. This can be avoided by using in-memory content for these sounds (not streaming and not using a hardware codec).

    • Fade outs of stop Actions do not propagate to containers using Xfade or Trigger rate transitions. Whenever a StopEvent is called on the container, with a fade out value that is longer than the current segment that's playing, the sound will just cut off abruptly when that segment ends. The workaround to this is to use a Set Voice Volume Action to create the fade and delay the Stop Action.

  9. In the Duration text box, type the length of time you want for the crossfade, delay, or Trigger rate.

    [Note]Note

    The Duration option is not available for sample accurate transitions.


Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise