오늘의 목표
팀 프로젝트 과제 완료하기
언리얼 엔진 AI 내비메시 & 길막 버그 트러블슈팅
1. 문턱 및 계단 내비메시 끊김 현상
- 문제: 팀원이 작업한 맵 콜리전을 건드리지 않고, 문턱과 계단에서 끊기는 내비메시를 연결해야 했음.
- 해결: RecastNavMesh의 글로벌 세팅 최적화.
- Cell Height를 1.5로 대폭 낮춰 정밀도를 높임.
- Agent Max Step Height를 오히려 30으로 줄임. (값을 너무 높이면 주변 난간이나 벽까지 등반 가능 영역으로 오작동하는 것을 발견. 30으로 맞추니 실제 계단 단차만 깔끔하게 필터링됨)
- 문턱 밀착을 위해 Agent Max Slope 증가, Max Simplification Error 및 Agent Radius 감소.
2. 닫힌 문/좁은 문틀 통과 문제 (Dynamic NavMesh의 한계)
- 문제: 문이 열릴 때 실시간으로 길을 열기 위해 Runtime Generation을 Dynamic으로 바꿨으나, 통짜 병합(Merge) 메쉬 맵이라 전체가 재빌드 되며 심각한 렉 발생.
- 해결: 성능을 위해 다이내믹 연산을 과감히 포기하고 꼼수(눈속임)로 선회.
- Static으로 원상 복구 후, 문/문틀 메쉬의 Can Ever Affect Navigation을 꺼서 내비메시는 365일 항상 뚫려있게 만듦.
- 물리적인 통제는 문 블루프린트 내부에 투명한 Box Collision을 넣어 문이 닫혔을 때만 AI의 몸을 막도록 처리.
- 추가로 끊긴 구간은 Nav Link Proxy를 뷰포트에서 직접 연결해 강제로 다리를 놓아줌.
3. MoveTo 태스크 최적화 (가다가 멈칫거리는 버그)
- 문제: 내비메시가 연결되어 있는데도 좁은 곳이나 목적지 부근에서 AI가 부르르 떨며 굳어버림.
- 해결: 비헤이비어 트리의 MoveTo 노드 옵션 타협.
- 목표 지점 오차를 널널하게 잡기 위해 Acceptable Radius를 80~120으로 크게 증가.
- Reach Test Includes Agent/Goal Radius를 켜서 캡슐 표면만 목적지에 닿아도 도착한 것으로 판정하게 만듦.
4. 아군 AI와 플레이어 간의 '길막' 현상
- 문제: 좁은 복도에서 플레이어와 아군 AI들이 서로 몸이 부딪혀서 병목 현상이 발생하고 진행이 막힘.
- 해결: 충돌 채널 분리와 내비메시 장애물 판정 제거.
- 채널 분리: 프로젝트 세팅에서 Ally, Enemy 오브젝트 채널을 신규 생성하여 적군과의 충돌은 유지(Block)하되, 아군/플레이어끼리는 무시(Ignore)하도록 Capsule 및 Mesh 콜리전 프리셋 전면 수정.
- RVO 끄기: CharacterMovement에서 척력으로 서로 밀어내는 Use RVO Avoidance 옵션 해제.
- 내비 여백 삭제 (핵심): 플레이어의 Capsule Component 설정에서 Is Spatial Navigation Obstacle을 끄고 내비메시 반경 값을 0으로 만듦. (AI 눈에 플레이어 주변 내비메시가 구멍 뚫린 낭떠러지로 인식되어 이동 명령이 취소되던 근본 원인 해결).
'Unreal5 공부 > TIL' 카테고리의 다른 글
| 2026/05/28 TIL (0) | 2026.05.28 |
|---|---|
| 2026/05/27 TIL (0) | 2026.05.27 |
| 2026/05/20 TIL (0) | 2026.05.20 |
| 2026/05/19 TIL (0) | 2026.05.19 |
| 2026/05/14 TIL (0) | 2026.05.14 |