Skip to main content
Skip table of contents

What's new in SG Com 5.1?

Breath animation

SG Com now animates breath. The only requirement to use this feature is to have the Chest Breath muscle defined in your character.

Continuous breathing motion is generated by a biological model constrained by the audio analysis. The breaths are synched to audible inhales and exhales, and to the pauses in the speech. The intensity and rapidity of breath are determined by the vocal performance.

If desired, default breath behavior can be adjusted using two new Behavior Modifiers: SG_COM_MOD_BREATH_MAG to adjust the magnitude of breaths, and SG_COM_MOD_BREATH_SPEED to adjust the speed/frequency of breaths.

Improved nonverbal movement

The dynamic muscle models governing real-time nonverbal behavior have been improved. The muscles have lower response times resulting in more interactive behavior. Movements are also more natural and less glitchy.

Laughter auto mode & laughter animation

As part of our mission to automate animation for all of the vocal sounds a human can make, SG Com 5.1 adds a new auto mode: Laugh. This is triggered whenever laughter is detected in the audio. The behavior of the new auto mode is defined by mapping it to a behavior mode with laugh-like expressions. For example:

CODE
SG_COM_SetAutoMode(engine_handle,SG_COM_LAUGH_MODE,”my_laughter_mode”);

InsertExpression function

Normally, SG Com automates the timing, selection and magnitude of each expression based on the audio. However, users may sometimes want more control over the occurrence of expressions. This is now provided by the SG_COM_InsertExpression function. When called, this function triggers a new expression. Optionally, you may also specify:

  • exactly which expression to trigger

  • the exact duration of the expression

  • the exact scale of the expression

For example, this command triggers an immediate change in expression, without specifying which expression, what duration and what scale:

CODE
SG_COM_InsertExpression(engine_handle, nullptr, 0, 0);

This command specifically triggers the expression “/Happy/3”; duration and scale are automatically determined.

CODE
SG_COM_InsertExpression(engine_handle, "/Happy/3", 0, 0);

And this command triggers “/Happy/3” for 2000 milliseconds at a scale of 0.5.

CODE
SG_COM_InsertExpression(engine_handle, "/Happy/3", 2000, 0.5);

Status update types

Two new status types have been added to the SG_COM_Status enum, which is used in the SG_COM_EngineStatusCallback function:

  • SG_COM_STATUS_BREATH_CHANGED is triggered whenever breath changes from inhale to exhale or vice-versa. The message string argument is either “inhale” or “exhale”.

  • SG_COM_STATUS_AUTO_MODE_CHANGED is triggered whenever a new auto mode is detected. The message argument is the name of the auto mode (e.g., “positive”, “negative”, “laugh”, etc.). This update occurs regardless of whether the auto modes are actively mapped to specific behavior modes.

In addition, for SG_COM_STATUS_EXPRESSION_CHANGED, the message argument now contains not only the path of the expression in the character's behavior mode library, but also the scale of the expression. A semicolon separates the expression path from the scale. For example, if the expression is “/Happy/3" and the scale is 0.5, the message string would be:

CODE
/Happy/3;0.5

API Changes

In the SG_COM_Modifier enum, the magnitude and speed modifiers have been divided into more specific modifiers.

SG Com 5.0

SG Com 5.1

Description

SG_COM_MOD_SCALE

SG_COM_MOD_SPEECH_MAG

Adjust magnitude of speech motion

SG_COM_MOD_NONVERBAL_MAG

Adjust magnitude of nonverbal motion

SG_COM_MOD_BREATH_MAG

Adjust magnitude of breath motion

SG_COM_MOD_SPEED

SG_COM_MOD_NONVERBAL_SPEED

Adjust speed of nonverbal motion

SG_COM_MOD_BREATH_SPEED

Adjust speed of breath motion

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.