MouthMovement

[最后更新时间:2020/01/30]

概述

MouthMovement 是将开/关值应用于口形同步参数的当前值的函数。
可以将口形同步设定的曲线应用到运动和从正在播放的音频文件中实时采样到模型的值。
了解如何在模型上设定口形同步参数。

嘴巴运动中唯一设定的是嘴巴的张开/闭合状态。
无法执行将嘴形与元音匹配等操作。

在 Unity 上指定口形同步的参数,可以在 Cubism 编辑器的模型中设定,也可以在 Unity 上任意指定。

Cubism SDK for Unity 中的 MouthMovement 包含三种类型的元素。

  1. 参数说明组件
  2. 将值应用于每个参数的组件
  3. 操作 2 中应用的值

 

1. 参数说明组件

使用 CubismMouthParameter 指定要用于 MouthMovement 的参数。

CubisMouthParameter 是一个继承 MonoBehaviour 的组件。
它通过附加到位于 [Root of Prefab] / Parameters / 下的 GameObject 来使用。
它将与附加的 GameObject 具有相同 ID 的参数视为口形同步的参数。

如果模型本身有一个口形同步参数,那么 CubisMouthParameter 将在载入时附加到该参数的 GameObject 上。

由于 CubisMouthParameter 用作获取参考目的地的标记,因此它内部不处理任何内容,也没有数据。

 

2. 对每个参数应用值的组件

使用 CubisMouthController 将打开/关闭值应用于每个参数。
这是一个继承自 MonoBehaviour 的组件,使用时会附加到 Cubism 的 Prefab 的根。

获取对在初始化期间附加到 Prefab 的所有 CubismMouthParameters 的引用。
如果在执行过程中追加/移除眨眼参数,调用CubismMouthController.Refresh()再次获取引用。

 

CubismMouthController 在每帧的 LateUpdate() 时机,将 CubismMouthController.MouthOpening 的值应用于由 CubismMouthParameter 标记的参数。

 

为 MouthOpening 设定的值在 0.0f 到1.0f 的范围内。
CubisMouthController 使用 CubisMouthController.BlendMode 中设定的计算方法将此值应用于目标参数。

通过从外部操纵这个嘴巴张开值,您可以打开和关闭模型的嘴巴。

 

 

3.操纵2中应用的值

您可以通过操作 CubismMouthController.MouthOpening 中的值将值应用于口形同步的参数,如 2. 将值应用于每个参数的组件中所述。

Unity 的 Cubism SDK 可以通过三种方式操纵此值:

  • 通过运动操纵值
  • 定期操作值
  • 通过从 AudioClip 中采样来操作值

此外,您可以通过在用户端实现对该值进行操作的过程来自定义口形同步的速度和时间。

Tips
如果操作 CubismMouthController.MouthOpening 的组件在 CubismMouthController 之后执行,它可能不会按预期运行。
如果操作出现问题,可以通过在用户端显式控制组件的执行顺序来避免。
在 Cubism SDK for Unity 中,每个组件的执行顺序由 CubismUpdateController 控制,因此您也可以使用它。

此外,由于上述三种设定方法操作相同的值,很难在没有任何独创性的情况下将它们共存于一个模型中。

 

通过运动操纵值

当使用带有眨眼参数的模型使用 Cubism 的 Animator 创建动作时,可以设定眨眼曲线。

如果将带有眨眼曲线的 .motion3.json 载入 Unity 项目,AnimationClip 将为 CubismMouthController.MouthOpening 的值生成该曲线。
因此,CubismMouthController.MouthOpening 的值是通过播放带有 Animator 组件的 AnimationClip 来操作的。

 

定期操作值

使用 CubismAutoMouthInput 定期操作口形同步的值。
CubismAutoMouthInput 是一个使用正弦波计算和设定口形同步值的组件。

要使用 CubismAutoMouthInput,请将其附加到 Cubism Prefab 的根目录。

CubismAutoMouthInput 有一个设定项。

  • Timescale

正弦波的周期发生变化。

 

 

通过从 AudioClip 中采样来操作值

使用 CubismAudioMouthInput 从 Unity 上播放的音频中设定口形同步值。

CubismAudioMouthInput 通过从 AudioSource 播放的音频信息中采样实时生成和设定口形同步值。

要使用 CubismAudioMouthInput,请将其附加到 Cubism Prefab 的根目录。

 

CubismAudioMouthInput 有四个设定项。

  • AudioInput

对要采样的 AudioSource 的引用。

  • SamplingQuality

要采样的音频的准确性。

  • Gain

采样值的倍率。
1是同样大小,数值越大,口形同步值越大。

  • Smoothing

采样值的平滑量。
该值越高,口形同步值的变化就越平滑。

© 2010 - 2022 Live2D Inc.