SG Com 5.1 有哪些新功能?
呼吸动画
SG Com 现在可以为呼吸生成动画。只需定义角色的胸部呼吸肌肉,即可使用本功能。
连续呼吸动作是由生物模型生成,而生物模型则受到音频分析的限制。呼吸动作会与吸气、呼气声以及角色讲话中的停顿精确同步。同时,声音的表现会影响呼吸的强度和速度。
如有需要,可以通过两个全新的情绪修改器来调整默认的呼吸情绪:使用 SG_COM_MOD_BREATH_MAG
调整呼吸幅度,使用 SG_COM_MOD_BREATH_SPEED
调整呼吸速度/频率。
改进了非嘴部动作
实时控制非嘴部情绪的动态肌肉模型已改进。肌肉的响应时间缩短,从而增强了情绪的互动性。动作更加自然,卡顿更少。
笑声自动模式和笑声动画
我们的宗旨是针对人类可以发出的所有声音自动生成动画,为此,SG Com 5.1 添加了一个新的自动模式:笑声。每当在音频中检测到笑声时,就会触发此功能。这个新的自动模式会将情绪映射到多种笑声似的表情。例如:
SG_COM_SetAutoMode(engine_handle,SG_COM_LAUGH_MODE,”my_laughter_mode”);
InsertExpression 函数
通常情况下,SG Com 会根据音频自动确定表情出现的时间、表情的类型和幅度。然而,有时用户可能需要更精确地控制所出现的表情。现在,通过 SG_COM_InsertExpression 函数,即可实现此功能。调用此函数时,将触发一个新表情。您还可以指定以下条件:
具体需要触发哪个表情
表情的具体持续时间
表情的具体比例
例如,以下命令会触发即时表情切换,无需指定表情类型、持续时间和比例:
SG_COM_InsertExpression(engine_handle, nullptr, 0, 0);
此命令会触发表情 “/Happy/3”;而表情的持续时间和比例将由程序自动确定。
SG_COM_InsertExpression(engine_handle, "/Happy/3", 0, 0);
以下命令会触发表情 “/Happy/3”,表情比例为 0.5,表情的持续时间为 2,000 毫秒。
SG_COM_InsertExpression(engine_handle, "/Happy/3", 2000, 0.5);
状态更新类型
SG_COM_Status 枚举中新增了两种状态类型,可在 SG_COM_EngineStatusCallback 函数中使用:
当呼吸状态从吸气切换到呼气或从呼气切换到吸气时,会触发
SG_COM_STATUS_BREATH_CHANGED
。此时,message 字符串的参数为 “inhale” 或 “exhale”。当检测到新的自动模式时,会触发
SG_COM_STATUS_AUTO_MODE_CHANGED
。message 参数为自动模式的名称(例如“积极”、“消极”、“笑声”等)。无论自动模式是否主动映射到特定情绪模式,都会触发此更新。
此外,对于 SG_COM_STATUS_EXPRESSION_CHANGED
,message 参数不仅包含表情在角色情绪模式库中的路径,还包含表情比例。路径与比例通过分号分隔。例如,如果表情为 “/Happy/3”,比例为 0.5,则信息字符串为:
/Happy/3;0.5
API 更改
在 SG_COM_Modifier 枚举中,幅度和速度修改器的类型已进一步细分。
SG Com 5.0 | SG Com 5.1 | 描述 |
|
| 调整语音动作的幅度 |
| 调整非嘴部动作的幅度 | |
| 调整呼吸动作的幅度 | |
|
| 调整非嘴部动作的速度 |
| 调整呼吸动作的速度 |