KoreanFoodie's Study

[언리얼] Enemy 의 MoveTo 걷는 애니메이션 재생 안됨 본문

Game Dev/Unreal C++ : Dev Log

[언리얼] Enemy 의 MoveTo 걷는 애니메이션 재생 안됨

GoldGiver 2022. 8. 31. 12:37

MoveTo 와 애니메이션

비헤이비어 트리 로직을 짜면서 MoveTo 를 테스트했는데, 해당 지점으로 이동할 때 걷는 애니메이션이 재생되는 것이 아니라 캐릭터 메시 자체가 미끄러지듯이 슬라이딩하는 현상이 생겼다. 애니메이션을 어떻게 하면 재생할 수 있지? 라고 생각하며 AnimBP 를 잘 연결해줬는데도 동작이 제대로 안되는 상황이 있었다.

걷는 애니메이션 재생이 안됨

언리얼 포럼에서는 다양한 해결책을 제시한다.

1. 애니메이션 블루프린트 연결 확인하기

2. CharacterMovement -> NashMovement 에서 Use Acceleration for Paths 체크하기

 

근데 나는 이 두가지 전부 아니였다. 나의 경우, 아래와 같이 Speed 값에 따라 애니메이션을 변경하는 블렌드 스페이스를 만들었는데, 알고보니 Speed 값이 제대로 전달이 안된 거였다!

 

그래서 BlueprintCallable 한 함수를 만들어서 현재 액터의 속도값을 Speed 변수에 저장할 수 있도록 하고,

void UEnemyAnimInstance::UpdateAnimationProperties(float DeltaTime)
{
	if (Enemy == nullptr)
	{
		Enemy = Cast<AEnemy>(TryGetPawnOwner());
	}

	if (Enemy)
	{
		FVector Velocity{ Enemy->GetVelocity() };
		Velocity.Z = 0.f;
		Speed = Velocity.Size();
	}
}

 

위의 함수를 이벤트 그래프에서 다음과 같이 계속 호출하도록 만들었다.

 

이제 몬스터가 걷기 시작했다!

Comments