728x90
반응형
스테이트 머신의 필요성
if else 만으로 애니메이션을 구현하다 보면 로직이 꼬이게 될수 있기 때문에 스테이트 머신이 필요하다.
스테이트 머신 생성
생성시 이런 창이 뜨게 된다.
상태를 추가해준다.
Ground 스테이트
Ground라는 스테이트에 저번에 만들어 놓은 애니메이션을 추가해준다.
Jump 스테이트
먼저 점프를 구현해야되기에 코드를 추가해준다.
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Pawn, Meta = (AllowPrivateAccess = true))
bool Isjump;
#include "GameFramework/Character.h"
#include "GameFramework/PawnMovementComponent.h"
auto Character = Cast<ACharacter>(pawn);
if (Character)
{
Isjump = Character->GetMovementComponent()->IsFalling();
}
IsFalling 함수는 언리얼 엔진에서 제공해주는 함수이다.
추가해준 함수를 캐릭터에 바인딩 해준다.
PlayerInputComponent->BindAction(TEXT("Jump"),EInputEvent::IE_Pressed,this,&AMyCharacter::Jump);
추가해주었다면 엔진에 적용시켜야한다. 적용시키는 방법은 Setting->Project settings->Input창에서 가능하다.
이로써 space바를 누르면 캐릭터가 점프하지만 현재 state변경에 대한 조건이 없기 때문에 Jump스테이트로 가지 않는다.
이런식으로 조건을 걸어줄수 있다.
728x90
반응형
'UE4 > 애니메이션' 카테고리의 다른 글
Ureal)애니메이션 노티파이 (0) | 2022.01.16 |
---|---|
Ureal)애니메이션 델리게이트 (0) | 2022.01.16 |
Ureal)애니메이션 몽타주 (0) | 2022.01.15 |
Ureal)애니메이션 기초 (0) | 2022.01.14 |
댓글