EyeBlink (UE)

最終更新: 2024年9月5日

此页面包含有关Alpha版的描述。

概述

EyeBlink是将开/关值应用于眨眼参数的当前值的功能。
参考此处了解如何在模型上设置眨眼参数。

眨眼用参数可以在模型本身中设置,也可以由用户在Unreal Engine中任意指定。

如何处理组件

通过将CubismEyeBlinkComponent追加到CubismModel Actor的子组件,可以使用Cubism SDK for Unreal Engine中的EyeBlink。

如果在.model3.json中设置了眨眼参数,则会应用默认的自动眨眼动作,因此用户端无需进行设置。

如何追加对象参数

如果在.model3.json中设置了眨眼参数,则载入时CubismEyeBlinkComponent将作为子组件自动追加到CubismModel Actor中,但如果要手动追加EyeBlink的对象参数,请从“详细信息”选项卡中选择CubismEyeBlink,打开底部显示列表中的“Live2D Cubism”→“Ids”,手动重写指定参数的名称,或插入新索引并手动添加参数名称。

参数的应用

CubismEyeBlinkComponent根据BlendMode中指定的混合方式,将Value的值统一应用到Ids中设置的ID对应的所有参数上。

for (FString Id : Ids)
{
	UCubismParameterComponent* Destination = Model->GetParameter(Id);

	if (!Destination)
	{
		continue;
	}

	switch (BlendMode)
	{
		case ECubismParameterBlendMode::Overwrite:
		{
			Destination->SetParameterValue(Value);
			break;
		}
		case ECubismParameterBlendMode::Additive:
		{
			Destination->AddParameterValue(Value);
			break;
		}
		case ECubismParameterBlendMode::Multiplicative:
		{
			Destination->MultiplyParameterValue(Value);
			break;
		}
	}
}

如果要追加或删除眨眼的对象参数,需在组件Ids中追加或删除参数ID。

手动操作值

如果AutoEnabled设置为false,则可以通过外部操作Value值将用户任意值批量应用到指定参数。

自动操作值

AutoEnabled设置为true时,将应用一个类似于自动眨眼动作的值。可以使用CubismEyeBlinkComponent中提供的参数来控制此动作。

  • Mean
    指定眨眼时的平均间隔。
  • MaximumDeviation
    指定眨眼时平均间隔时间的摆动幅度。
StartTime = Mean + FMath::FRandRange(-MaximumDeviation, MaximumDeviation);
  • TimeScale
    指定动作的时间规模。增加值将使动作变快,减小值将使动作变慢。
  • ClosingPeriod
    指定眼睛闭上所需的时间。
const float t = TimeScale * (Time - StartTime) / ClosingPeriod;
NewValue = 1.0f - t;
  • ClosedPeriod
    指定闭眼的时间。
const float t = TimeScale * (Time - StartTime) / ClosedPeriod;
NewValue = 0.0f;
  • OpeningPeriod
    指定睁眼所需的时间。
const float t = TimeScale * (Time - StartTime) / OpeningPeriod;
NewValue = t;
请问这篇文章对您有帮助吗?
关于本报道,敬请提出您的意见及要求。