口形同步设置 (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中设置的音频,并且将根据其音量对模型进行口形同步。

请问这篇文章对您有帮助吗?
关于本报道,敬请提出您的意见及要求。