1. 문제 상황
오늘은 적 AI를 구현하면서 애니메이션을 점검하는 중에 문제가 발생했다. 애니메이션 블루프린트를 내가 조종하는 캐릭터에 적용하면 이동할 때 걷기, 뛰기 모션이 정상 적용이 되는데, AI가 움직이는 적에 적용했을 때는 적용이 되지 않았기 때문이다.
2. 해결 과정
1. 애니메이션 블루프린트가 어딘가 문제가 있을지 모름 ㅡ> 전체적으로 살펴본 결과 그다지 문제 없어 보임
2. 스피드, 가속도 값들이 정상적으로 초기화되고 있는지 확인 ㅡ> 계속해서 0으로 확인
3. Character Movement Component를 통해 해당 값들을 초기화 중 ㅡ> 캐릭터가 움직이는 와중에도 값이 0임
4. 왜 이런 현상이 발생할까? ㅡ> AI가 캐릭터를 움직이는 과정에서 Character Movement Component를 사용하지 않는 것으로 보임
5. 그럼 방법이 뭐가 있을까? ㅡ> 직접 이동 거리를 통해 스피드 계산하거나 Move To를 이용해 이동할 때 변화하는 이동 관련 값들 사용
6. 찾아본 결과 AI가 Move To로 캐릭터를 움직이게 되면 Nav Movement Component에 Velocity와 같은 값들이 저장
7. 원래 Character Movement Component의 값을 사용하던 것들을 Nav Movement Component의 값으로 대체
이미지에서 알 수 있듯 Character Movement를 이용해 Velocity, Acceleration 값을 초기화 중
다음과 같이 변경
가속도의 경우 Nav Movement에서 제공되지 않아 직접 Delta Time을 이용해 계산하여 사용
3. 정리
- AI에 의해 움직이는 Character의 경우 Character Movement Component를 사용하지 않음
- 애니메이션 블루프린트에서 Character Movement Component의 값을 사용하던 것들을 AI가 Move To로 이동할 때 변화되는 값이 담긴 Nav Movement Component로 대체
* 2025-02-25 추가
CharacterMovement 컴포넌트에서 bUseAccelerationForPaths 값을 체크(활성화)하면 CharacterMovement 컴포넌트가 NavMesh 기반 이동에 따라 값을 반영하여 원래의 애니메이션 블루프린트 형태로도 정상 동작
'언리얼엔진(UE)' 카테고리의 다른 글
[UE] 몬스터 AI 구현 #4 (몬스터 기본 클래스 구성) (0) | 2025.02.26 |
---|---|
[UE] 몬스터 AI 구현 #3 (Behavior Tree) (0) | 2025.02.25 |
[UE] 몬스터 AI 구현 #1 (0) | 2025.02.20 |
[UE] 슬라이드 애니메이션 개선 (0) | 2025.02.14 |
[UE] UMG를 활용한 게임 HUD 및 WidgetComponent를 이용한 HP바 (0) | 2025.02.13 |