自动眨眼设置

最終更新: 2022年3月18日

这里将说明如何使模型自动眨眼。
以下说明以追加到已执行[SDK载入~置入模型]的项目为前提。

概述

如果模型设置了标准参数[左眼 开合(ParamEyeLOpen)]和[右眼 开合(ParamEyeROpen)],
眨眼设置在载入并生成的模型的Prefab中自动设置。

如果您希望使没有上述设置的模型自动眨眼,可以按照本文中说明的步骤进行设置。

眨眼设置使用Cubism SDK中名为EyeBlink的组件。

要在Cubism模型上设置EyeBlink,请执行以下三项操作:

  1. 附加一个管理眨眼的组件
  2. 指定使其眨眼的参数
  3. 设置自动操作眨眼参数值的组件

附加一个管理眨眼的组件

附加一个名为CubismEyeBlinkController的组件来管理眨眼。

CubismEyeBlinkController有两个设置项目。

– Blend Mode:针对当前为指定参数设置的值,指定如何计算Eye Opening值。

  • Mutiply:将Eye Opening值正片叠底到当前设置的值。
  • Additive:将Eye Opening值加算到当前设置的值。
  • Override:用Eye Opening值覆盖当前设置的值。

– Eye Opening:睁眼闭眼的值。1视为睁眼、0视为闭眼状态。当从外部操作该值时,指定参数的值也会联动。

此次将Blend Mode设置为[Override]。

指定使其眨眼的参数

在[模型]/Parameters/下,置入了管理该模型参数的GameObject。
另外,这个GameObject中设置的名称就是参数的ID。
这些与您可以使用CubismModel.Parameters()获得的内容相同。

从该参数的GameObject中,将名为CubismEyeBlinkParameter的组件附加到ID被视为眨眼的组件。

如果CubismEyeBlinkParameter附加到参数用GameObject,则执行场景时,CubismEyeBlinkController将参考它设置眼睛的开合。

通过上述设置,您将能够从脚本等执行眨眼操作,但仅依靠次还不会自动眨眼。

为了使其自动眨眼,还需要设置一个定期操作该值的组件。

设置自动操作眨眼参数值的组件

与CubismEyeBlinkController一样,将名为CubismAutoEyeBlinkInput的组件附加到模型的根。

CubismAutoEyeBlinkInput有以下三个设置项目。

– Mean:设置至眨眼的时间。单位是秒。实际上,使用了这个值加上Maximum Deviation所引起误差后的时间。

– Maximum Deviation:设置要添加到Mean中设置的时间的波动最大值。要设置的值是大于或等于0的数值。

如果在上述Mean设置的时间眨眼,由于周期会是均匀的,角色的动作会不自然。
因此,通过在设置的时间周期中随机添加波动,使动作变得自然。
实际计算如下。

至下一次眨眼的时间 = Mean + (-Maximum Deviation 至 +Maximum Deviation之间的随机值)

– Timescale:设置眼睛开合的的速度。设置的值越小,则会越慢。

此次将Mean设置为 2.5,Maximum Deviation设置为 2,Timescale设置为10。

这样就完成了自动眨眼设置。

如果您在这种状态下运行Scene,则可以进行自动眨眼。

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