EyeBlink (UE)

업데이트: 2024/09/05

이 페이지에는 알파 버전에 관한 설명이 포함되어 있습니다.

개요

EyeBlink는 눈 깜빡임용 파라미터의 현재 값에 개폐 상태 값을 적용하는 기능입니다.
모델에 눈 깜빡임용 파라미터를 설정하는 방법은 여기를 참조하십시오.

눈 깜빡임용 파라미터 지정은 모델 자체에 설정하는 것 외에 Unreal Engine에서 사용자가 임의로 지정할 수 있습니다.

컴포넌트 취급법

Cubism SDK for Unreal Engine의 EyeBlink는 CubismEyeBlinkComponent를 CubismModel 액터의 하위 컴포넌트에 추가하여 사용할 수 있습니다.

.model3.json에 눈 깜빡임용 파라미터가 설정되어 있으면 디폴트 자동 눈 깜빡임 동작이 반영되므로 사용자 측 설정이 필요하지 않습니다.

대상 파라미터 추가 방법

.model3.json에 눈 깜빡임용 파라미터가 설정되어 있는 경우 가져오기 시에 자동으로 CubismModel 액터에 CubismEyeBlinkComponent가 하위 컴포넌트로서 추가되지만, 수동으로 EyeBlink의 대상이 되는 파라미터를 추가하고 싶은 경우는 「상세」 탭에서 CubismEyeBlink를 선택하고 하단에 표시되는 목록에서 「Live2D Cubism」→「Ids」를 열고 지정된 파라미터의 이름을 수동으로 다시 작성하거나 새 인덱스를 삽입하여 파라미터 이름을 수동으로 추가하십시오.

파라미터 적용

CubismEyeBlinkComponent는 BlendMode로 지정된 블렌드 방식에 근거해, Ids에 설정된 ID에 해당하는 모든 파라미터에 대해 일률적으로 Value의 값을 적용합니다.

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;
이 기사가 도움이 되었나요?
아니요
이 기사에 관한 의견 및 요청사항을 보내 주시기 바랍니다.