EyeBlink

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

概述

EyeBlink 是将开/关值应用于眨眼参数的当前值的函数。
了解如何在模型上设定眨眼参数。

除了在模型本身中设定之外,用户还可以在 Unity 上指定眨眼参数。

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

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

 

1. 参数说明组件

使用 CubismEyeBlinkParameter 指定用于 EyeBlink 的参数。

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

如果模型本身具有眨眼参数,则 CubismEyeBlinkParameter 将在载入时附加到该参数的 GameObject 上。

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

 

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

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

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

 

CubismEyeBlinkController 在每帧的 LateUpdate() 时机将 CubismEyeBlinkController.EyeOpening 的值应用于 CubismEyeBlinkParameter 标记的参数。

 

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

通过从外部操纵此眼睛打开值,您可以打开和关闭模型的眼睛。

 

 

3.操纵2中应用的值

如“2. 将值应用于每个参数的组件”中所述,您可以通过操作 CubismEyeBlinkController.EyeOpening 的值将值应用于眨眼的参数。
Unity 的 Cubism SDK 可以通过两种方式操作此值:

  • 通过运动操纵值
  • 按组件操作值

此外,通过在用户端实现对该值的操作过程,可以独立自定义眨眼速度、时间等。

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

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

 

通过运动操纵值

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

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

 

按组件操作值

在 Unity 的 Cubism SDK 中,CubismAutoEyeBlinkInput 组件也可用于操作眨眼值。

CubismAutoEyeBlinkInput 根据从 检查器 设定的速度和间隔以及添加到间隔的随机波动的宽度来计算和设定眨眼值。

 

CubismAutoEyeBlinkInput 具有三个设定项。

  • Mean
  • MaximumDeviation
  • Timescale

 

  • Mean

设定时间直到眨眼。
单位是秒。
实际上,使用了这个值加上 最大偏差引起的误差。

  • MaximumDeviation

设定要添加到为平均值设定的时间的随机波动的宽度。
这些计算如下:

 

  • Timescale

这将是你眨眼的速度。
它乘以从前一帧经过的时间。

© 2010 - 2022 Live2D Inc.