Audio & Mannequin

Overview

This section gives an overview of how to apply Audio to Mannequin. Please note however that the article Mannequin Editor Tutorial 1 is prerequisite knowledge for the following information.

Introduction

Audio in Mannequin is controlled by adding Procedural Clips to Fragments and setting their Type to Audio in the Procedural Clip Properties.

Fragments are played on Scopes, but there are no technical restrictions on which Scopes the Audio Procedural Clips are placed. However, it is quite common for a project to setup a Mannequin character in such a way that certain Scopes only have audio system Triggers placed on them. For example, in the case of the Audio & Mannequin Usecases* we have the Audio1 and Audio2 Scopes on which all audio system Triggers are placed.

Mannequin decides which Fragments it will trigger via Tag States. This allows flexibility in supporting animations with sound, so you can go very granular or stay rather generic.

The Mannequin Editor describes how to add tags to a Fragment. These tags define what needs to be going on in the game or with the character in order for that specific Fragment to be selected.

For example, say you want to support each weapon with a different sound, but you don't necessarily want to distinguish between whether the player is crouching or standing while firing. To ensure this, you need to make sure that the FragmentID is properly flagged using the parent of the weapon item name. For example, fire [SDKRifle] needs the SDKRifle selected to work in all stances (crouch, stand, etc).

FragmentID properly flagged


The game might also trigger extra tags such as "standing" or "crouch" depending on the character's stance, but will always pick the best fitting one - this means the one that matches most of the tags provided. If you decide to provide more detail, this can be achieved by creating different Fragments with different audio system Triggers and a wider range of tags.

To learn more about Tags please read the article Mannequin Tag Definition Editor.

Enabling Scopes for a Fragment

Depending on your setup, you might want to place audio system Triggers in specific Scopes. For example, in the Sandbox Editor setup, sounds are usually placed in the "Audio1" or the "Audio2" Scopes.

Furthermore, the preferred way of enabling a Scope for a FragmentID is to edit its default Scope Mask: When editing a FragmentID you can select which Scopes it should use by default.

Enabling a Scope for a Fragment - 1

Enabling a Scope for a Fragment - 2

For an extensive step-by-step guide on how to achieve this please refer to the Mannequin Editor Tutorial 1.

Adding a ProcLayer Track

Once you have decided on which Scope you want to place the audio system Triggers on, you need to create a ProcLayer track.

To add a ProcLayer track, right click on the Scope and select AddTrack -> ProcLayer:

Afterwards the layout should look like screenshot below.

To learn more about these tracks and their properties, please read the article Mannequin Track Properties.

Creating an Audio System Trigger on an Audio Proc Layer

In the ProcLayer’s timeline double-click to add a Procedural Clip. The clip can be moved by dragging its start point.

Under the Procedural Clip Properties menu you can set what type the clip should be.

In order to execute audio system Triggers click on the Type property and select Audio.

You can see that this selection changes the options available for the clip in the Procedural Clip Properties (screenshot below). It is now possible to set a Start and Stop Trigger and define its behavior.

When the Fragment ends the Sound stops and as described in the Start/Stop Trigger behavior see here.

To keep the Sound playing, then use do_nothing as the StopTrigger.

The Blend time does not affect the fade-in of a sound.

Tips

You can add any number of ProcLayers to a Scope which can help you to better organize your Fragment.
Procedural Clips can be added to any ProcLayer on any Scope. Just be aware that depending on your setup the clips might then be saved to a different Database file.

The CVar mn_debug <entity name> shows you the Fragments and Animations that are triggered by an Entity at any given time. This helps you to figure out which Fragments are the ones without Sound. See Mannequin Debugging.