自动眨眼设置
最終更新: 2022年3月18日
这里将说明如何使模型自动眨眼。
以下说明以追加到已执行[SDK载入~置入模型]的项目为前提。
概述
如果模型设置了标准参数[左眼 开合(ParamEyeLOpen)]和[右眼 开合(ParamEyeROpen)],
眨眼设置在载入并生成的模型的Prefab中自动设置。
如果您希望使没有上述设置的模型自动眨眼,可以按照本文中说明的步骤进行设置。
眨眼设置使用Cubism SDK中名为EyeBlink的组件。
要在Cubism模型上设置EyeBlink,请执行以下三项操作:
- 附加一个管理眨眼的组件
- 指定使其眨眼的参数
- 设置自动操作眨眼参数值的组件
附加一个管理眨眼的组件
附加一个名为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,则可以进行自动眨眼。