口形同步设置 (SDK for Cocos Creator)
最終更新: 2023年3月14日
这里将说明如何使模型从AudioSource的音量进行口形同步(口型同步)。
以下说明以追加到已执行“载入SDK”的项目为前提。
为了从AudioSource获取音量并进行设置,请另行准备一个可以由Cocos Creator处理的格式的音频。
概述
口形同步设置使用Cubism SDK中名为MouthMovement的组件。
要在Cubism模型上设置MouthMovement,请执行以下三个处理:
1. 附加管理口形同步的组件
2. 指定口形同步的参数
3. 设置操作指定参数值的组件
附加管理口形同步的组件
将管理口形同步、名为CubismMouthController的组件附加到作为模型根的Node上。
CubismMouthController有两个设置项目。
- Blend Mode:针对当前为指定参数设置的值,指定如何计算Mouth Opening值。
- Multiply:将Mouth Opening值正片叠底到当前设置的值。
- Additive:将Mouth Opening值加算到当前设置的值。
- Override:用Mouth Opening值覆盖当前设置的值。
- Mouth Opening:嘴巴开合的值。1视为张嘴、0视为闭嘴状态。当从外部操作该值时,指定参数的值也会联动。
此次将Blend Mode设置为[Override]。
指定口形同步的参数
在[模型]/Parameters/下,置入了管理该模型参数的Node。
另外,这个Node中设置的名称就是参数的ID。
附加到这些Node的CubismParameter与您可以使用CubismModel.parameters获得的项目相同。
从该Node中,将名为CubismMouthParameter的组件附加到ID被视为口形同步的组件。
通过以上设置,您将能够进行嘴巴开合的操作。
但是,仅依靠上述设置,即使执行也不会进行口形同步。
为了自动进行口形同步,还需要设置操作CubismMouthController的Mouth Opening值的组件。
设置操作指定参数值的组件
将口形同步输入用组件附加到作为模型根的Node。
MouthMovement包含作为输入范例,根据AudioSource的音量和Sin波操作嘴巴开合值的组件。
此次附加一个名为CubismAudioMouthInput的组件,以便您可以从AudioSource设置值。
CubismAudioMouthInput 有以下四个设置项目。
- Audio Input:设置用于输入的AudioSource。使用此处设置的AudioSource中附加的AudioClip的音量。
- Sampling Quality:设置要采样的音量的精度。以下设置的阶数越低,精度越高,但计算负载越大。
- High
- Very High
- Maximum
- Gain:设置以多少倍的值处理采样音量。1为等倍。
- Smoothing:设置从音量计算的开/关值平滑化多少。值越高,则越平滑,但也会增加计算负载。
此次设置如下。请在Audio Input中设置附加AudioSource的Node。
- Sampling Quality:High
- Gain:1
- Smoothing:5
最后,要获取音量,请将AudioSource附加到任意Node,并将其设置为上述CubismAudioMouthInput的Audio Input。
这样就完成了口形同步设置。
如果您在此状态下运行场景,将播放AudioSource中设置的音频,并且将根据其音量对模型进行口形同步。