오늘은 강의를 따라 AI 기능을 구현하던 중 캐릭터를 추적하는 NPC가 애니메이션이 제대로 연출되지 않는 문제를 해결해보기로 하였다.

점프는 구현이 되는데 걷거나 뛰는 애니메이션이 연출되지 않았다.
애니메이션 블루프린트에서 문제가 있을 것으로 생각하고 애니메이션 블루프린트의 로직을 확인하였다.

애니메이션 블루프린트에서 캐릭터를 캐스트하는 부분이 문제라고 처음에 생각하였다.
그래서 이부분을 해당 추적 캐릭터로 캐스트를 변경하였다.

하지만 동일하게 애니메이션이 제대로 연출되지 않았다.
그래서 속도가 '0'으로 되어 애니메이션이 안되는 것 같다고 다른 문제를 생각하고 Print String 노드로 속도를 출력해 보았다.

속도도 정상적으로 출력이 되었다.
현재까지 캐릭터 캐스트 문제, 속도 문제가 아니고 다른 문제인 것 같았다.
노드들을 보던 중 Should Move 부울 변수를 셋하는 노드 중 Get Current Acceleration 노드를 보게 되었다.
'Get Current Acceleration'가 어떤 역할을 하는지 알아보았다.
Get Current Acceleration란?CharacterMovementComponent에서 가속도로 변환이러한 역할을 하는 함수가 AI는 플레이어의 입력을 직접 받지 않기 때문에 필요한 함수가 아니라고 생각했다. 이 함수가 연결된 노드를 끊어 주었다.
이렇게 하고 다시 플레이를 해보았다.
비로소 캐릭터를 향해 뛰거나 걸으면서 따라 오기 시작했다.
플레이어 캐릭터에서 사용하던 애니메이션 블루프린트를 그대로 가져와서 쓰다보니 이런 문제가 발생하였다.
AI와 플레이어 캐릭터는 같은 캐릭터이고 같은 애니메이션을 사용할 수 있지만 내부 함수(코드) 등은 서로 다를 수 있다는 걸 이해한 기회였다.