참고한 영상
www.youtube.com/watch?v=B6KK0WaZwLI
이동하기 전에 네비 메쉬 깔기
2021.04.12 - [게임 엔진/[Unreal] Engine] - [Unreal] 네비게이션 메쉬 설정하기 (Nav Mesh / Nav Link Proxy)
이전 게시글에서 맵에 네비 매쉬 적용하는 것을 해보았다.
이번엔 네비 매쉬 안에서 AI를 이동시켜보자.
AI MoveTo 노드
지정한 위치나 액터로 이동한다.
위치를 집어넣으면, 위치까지만 이동하고
액터를 집어넣으면, 액터가 이동해도 액터를 잡을 때까지 계속 이동한다.
둘 다 넣으면, 액터가 실행된다.
AI Controller가 있어야 실행된다.
테스트용으로 맵을 이렇게 만들고, 이렇게 짜보았다.
Acceptance Radius
다가왔을 때 얼마의 거리를 유지할 것인가
값을 200 넣고 테스트해보았다.
Stop on Overlap
Acceptance Radius가 더 작은 값이어도, 겹치면 멈춘다.
오브젝트의 크기에 따라 멈추는 거리를 다르게 지정하고 싶을 때, 이거를 쓰면 될 듯하다.
Movement Result
EPathFollowingResult 열거형이고, 종류는 이렇게 있다.
조금 애매한 상황들
[일반적인 상황]
실행, Success를 반환.
성공, Success를 반환.
맵이 끊겨있어도 최대한 다가와서 성공을 반환한다.
[둘 중 하나 이상이 네비 메쉬에서 벗어나있는 상황]
처음에는
실행, Success 반환.
실패, Aborted 반환.
그 뒤로는
실행, Aborted 반환.
실패, Aborted 반환.
[일반적인 상황]을 한번 하고나면, 다시 처음부터 Success 반환부터 시작.
결론
반환하는 Movement Result 값 중에 Success, Aborted만 테스트되었다.
결과가 되게 헷갈리게 나와서 다른 값들은 언제 나오는지 잘 모르겠다.
원하는대로 사용하려면 성공이나 실패했을 때, 한번 더 플레이어가 앞에 있는 지 등을 조건으로 체크해야 할 것 같다.
'Unreal' 카테고리의 다른 글
[Unreal C++] 액터 오브젝트에 컴포넌트 추가하기 (0) | 2021.04.20 |
---|---|
[Unreal C++] IWYU 알아보기 (Include-What-You-Use) (0) | 2021.04.15 |
[Unreal] 네비게이션 메쉬 설정하기 (Nav Mesh / Nav Link Proxy) (0) | 2021.04.12 |
[Unreal BP & C++] 애니메이션 노티파이 (5) | 2021.04.08 |
[Unreal BP & C++] Trace로 탐색하기 (0) | 2021.04.01 |