KoreanFoodie's Study
[언리얼] Enemy 의 MoveTo 걷는 애니메이션 재생 안됨 본문
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();
}
}
위의 함수를 이벤트 그래프에서 다음과 같이 계속 호출하도록 만들었다.
이제 몬스터가 걷기 시작했다!
'Game Dev > Unreal C++ : Dev Log' 카테고리의 다른 글
[언리얼] 위젯(UUserWidget) 과 Native 함수들, UObject Interface (0) | 2022.12.06 |
---|---|
[언리얼] 언리얼에서 더티 플래그(Dirty Flag) 패턴 사용하기 (0) | 2022.12.01 |
[언리얼] 설치시, .uproject 파일 링크하기 (Generate Visual Studio project files 띄우기) (0) | 2022.08.29 |
[언리얼] Unreal unresolved external symbol 에러 (0) | 2022.07.20 |
[언리얼] Widget 데이터와 클래스 데이터 연동(bind) 하기 (0) | 2022.06.23 |
Comments