그냥 게임개발자
ProjectA - 애니메이션 Retarget, AnimBlueprint 본문
https://www.youtube.com/watch?v=UORC3YjlbZQ
여기서 다운받은 애니메이션들을 Ue5 마네킹으로 Retarget을 하려고 한다.

마침 언리얼 엔진에서 제공해주는 UE4 to UE5 Retarget이 있다.

이 애니메이션들을 다시 Export한다.
그리고 내 프로젝트로 다시 가져와서 적용해서 애니메이션들을 만들 예정

가져온 애니메이션
- 위 유트브
- Lyra(UnrealEngine Sample Project)
잘 Export되었으니 내 프로젝트에 적용해서 애니메이션 블루프린트를 새로 생성하자

상속 클래스는 AnimInstance이다.
기본적인 AnimGraph는 아래와 같다.


애님인스턴스를 가지고 있는 캐릭터를 가져와서 Speed와 Falling 등을 가져와 조건에 부합하게 만든다.
UPAAnimInstance::UPAAnimInstance()
{
MovingThreshould = 0.5f;
JumpingThreshould = 100.0f;
bIsIdle = true;
}
void UPAAnimInstance::NativeInitializeAnimation()
{
Super::NativeInitializeAnimation();
Owner = Cast<ACharacter>(GetOwningActor());
if (Owner != nullptr)
{
Movement = Owner->GetCharacterMovement();
}
}
void UPAAnimInstance::NativeUpdateAnimation(float DeltaSeconds)
{
Super::NativeUpdateAnimation(DeltaSeconds);
if (Movement != nullptr)
{
Velocity = Movement->Velocity;
Speed = Velocity.Size2D();
bIsIdle = Speed < MovingThreshould;
bIsFalling = Movement->IsFalling();
bIsJumping = bIsFalling & (Velocity.Z > JumpingThreshould);
}
}
이렇게 CharacterMovement의 Velocity를 가져와 Speed를 가져오고 Idle 상태인지 체크하는 경우는 MovingThreshould값보다 작으면 Idle 상태이다.
틱마다 계속 가져와서 애니메이션의 상태를 계속 업데이트 한다.
'ProjectA' 카테고리의 다른 글
ProjectA - 임시적 1인칭 Yaw회전 적용(2023/12/27) (0) | 2023.12.27 |
---|---|
ProjectA - ChangeCamera 에러 수정(2023/12/26) (1) | 2023.12.26 |
ProjectA - EnhancedInput(Move, Look)(2023/12/26) (0) | 2023.12.26 |
ProjectA - GameMode, Character 클래스 생성 2023/12/26 (0) | 2023.12.26 |
프로젝트명 : ProjectA(2023/12/26) (0) | 2023.12.26 |