언리얼4 C++ 점프 애니메이션

Intro

  • 언리얼 C++ 점프 애니메이션

점프 변수

AnimInstance에서 점프중인지 확인하기위한 IsInAir 변수 생성

헤더

UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Pawn, Meta = (AllowPrivateAccess = true))
bool IsInAir;

cpp

auto Character = Cast<ACharacter>(Pawn);
if (Character)
{
    IsInAir = Character->GetMovementComponent()->IsFalling();
}

IsFalling 함수를통해 캐릭터가 낙하중인지 bool변수 IsInAir에 저장

점프 애니메이션

점프하는 애니메이션을 시작, 루프, 착지로 나누어준다

1

루프는 공중에 떠있는 지점을 저장하고 착지는 시작모션을 역재생하여 바닥에 착지하는 모션을 저장

*역재생은 Rate Scale을 -로 바꿔주면 된다.

애니메이션 블루프린트

JumpStart, Loop, End 스테이트 구성

2

IsInAir가 True일때 점프를 시작하고 Time Remaining(Ratio)를 이용해 애니메이션이 다끝날때 쯤 Loop애니메이션 재생 캐릭터가 착지하여 IsInAir가 false가 되면 End애니메이션 재생 마찬가지로 애니메이션이 끝날때쯤 다시 Ground State로 이동하도록 구성

이때 JumpStart와 End 모션은 Loop를 꺼주어야한다.

실행결과

gif

참고문서

이득우, 이득우의 언리얼 C++ 게임개발의 정석,2018, 239쪽

댓글남기기