Motion(UE)
업데이트: 2024/09/05
이 페이지에는 알파 버전에 관한 설명이 포함되어 있습니다.
개요
Motion을 사용하면 Unreal Engine의 Animation 블루프린트에서 스테이트 머신을 구성하지 않고 스크립트에서 애니메이션을 재생할 수 있습니다.
모션 기능 설정 파일은 .motion3.json 형식으로 내보내집니다.
모션 설정 방법 등에 대한 자세한 내용은 여기를 참조하십시오. Motion을 사용하려면 CubismFadeController 컴포넌트와 Unreal Engine의 Animation 블루프린트가 필요합니다.
Animator 컴포넌트에 AnimatorController를 설정하면 Motion이 재생되지 않고 AnimatorController의 애니메이션이 재생됩니다.
해당 튜토리얼 기사는 여기를 참조하십시오.
컴포넌트 취급법
Cubism SDK for Unreal Engine의 Motion은 CubismMotionComponent를 CubismModel 액터의 하위 컴포넌트에 추가하여 사용할 수 있습니다.
.model3.json에 .motion3.json의 패스가 설정되어 있는 경우 가져오기 시에 자동으로 CubismModel 액터에 CubismMotionComponent가 하위 컴포넌트로 추가되기 때문에 사용자 측에서의 설정은 불필요합니다.
모션 재생 방법
모델을 가져오면 .motion3.json이 Unreal Editor용 .uasset으로 변환되어 CubismMotionComponent의 Jsons 배열에 추가됩니다.
Unreal Editor에서는 Jsons에 등록된 재생하려는 모션의 인덱스를 Index로 지정하여 모션을 적용할 수 있습니다. Index가 배열의 인덱스 범위를 벗어나면 적용되지 않습니다.
모션 등록 순서는 에디터상에서 임의로 변경 가능하며, 일반적으로는 불필요하지만 사용자가 임의로 모션을 추가·삭제하는 것도 가능합니다.
모션의 재생/정지를 제어하는 경우는 CubismMotionComponent에 준비되어 있는 다음의 함수를 사용합니다.
UFUNCTION(BlueprintCallable, Category = "Live2D Cubism") void PlayMotion(const int32 InIndex, const float OffsetTime=0.0f, const ECubismMotionPriority Priority=ECubismMotionPriority::Normal); UFUNCTION(BlueprintCallable, Category = "Live2D Cubism") void StopAllMotions(const bool bForce = false);
- PlayMotion
- InIndex
재생하려는 모션의 Jsons에서의 인덱스를 지정합니다.
- InIndex
- StopAllMotions
- bForce
true를 지정하면 페이드를 적용하지 않고 강제로 정지합니다.
false를 지정하면 페이드를 적용하는 방식으로 정지합니다.
- bForce
업데이트 순서에 대하여
CubismMotionComponent는 모션의 업데이트 처리를 담당하지만, 그 업데이트는 CubismParameterStoreComponent의 업데이트 후에 적용됩니다.
이는 CubismMotionComponent가 실시하는 업데이트가 다음 프레임에 영향을 주지 않게 하기 위해서입니다.
CubismMotionComponent 업데이트 후에 CubismParameterStoreComponent::LoadParameters()를 호출하면, 의도하지 않은 동작이 될 우려가 있습니다.