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:
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:
SG_COM_InsertExpression(engine_handle, nullptr, 0, 0);
This command specifically triggers the expression “/Happy/3”; duration and scale are automatically determined.
SG_COM_InsertExpression(engine_handle, "/Happy/3", 0, 0);
And this command triggers “/Happy/3” for 2000 milliseconds at a scale of 0.5.
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:
/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 |
|
| Adjust magnitude of speech motion |
| Adjust magnitude of nonverbal motion | |
| Adjust magnitude of breath motion | |
|
| Adjust speed of nonverbal motion |
| Adjust speed of breath motion |