AI 네비게이션(AI Navigation)
장애물이 가득한 환경에서(모델이 걸을 수 있는 영역과 없는 영역을 정의하여 ) AI가 적절한 경로를 찾아서 목적지에 도달하는 것을 도와주기 위해서 유니티가 제공하는 기능이다.
Navigation Mesh (네비게이션 매쉬)
- 3D 공간을 그리드로 나누어 이동 가능한 지역과 장애물이 있는 지역을 구분하는 기능이다.
- 캐릭터가 이동할 수 있는 영역과 이동할 수 없는 영역을 정의하고, 이를 기반으로 경로를 계산한다.
Pathfinding (경로 탐색)
- 캐릭터의 현재 위치에서 목표 지점까지 가장 적절한 경로를 찾는 알고리즘이다.
Steering Behavior (스티어링 동작)
- 캐릭터나 NPC가 경로를 따라 이동할 때, 보다 자연스러운 동작을 구현하는데 사용된다.
- 동적으로 캐릭터의 이동 방향과 속력을 조정하여 부드럽고 현실적인 이동을 시뮬레이션 한다.
Obstacle Avoidance (장애물 피하기)
- 캐릭터가 이동 중에 장애물과 충돌하지 않도록 하는 기능이다.
- 각종 센서나 알고리즘을 사용하여 장애물을 감지하고 회피한다.
Local Avoidance (근접 회피)
- 여러 캐릭터나 NPC가 서로 충돌하지 않도록 하는 기능이다.
사용방법
1. AI Navigation 패키지 설치
2. Window > AI > Navigation(Obsolete) 클릭
3. Navigation(Obsolete) > Bake > Bake 클릭
4. 하면 이렇게 파란 부분이 걸어다닐 수 있는 영역이고 그 외의 부분으로는 나가지못한다.
5. AI 행동을 시킬 오브젝트에 Nav Mesh Agent 컴포넌트 추가
6. 나무에도 장애물 판정을 넣고싶을때는 (장애물은 지나가지못함)
7. Nav Mesh Obstacle 추가하고 Size를 조절
>> 저렇게 발판같은게 생기는데 저 부분으로는 걷지못하는 장애물이 된다.
오늘의 회고
오늘 AI 네비게이션을 처음 배웠는데, 정말 유용하다고 느꼈다. 이런 기능이 패키지로 다운받을 수 있다는 것을 몰랐는데, 직접 사용해보니 생각보다 더 좋아서 놀랐당...
영역을 정의해주면, 내가 지정한 캐릭터들이 그에 따라 판단하고 행동하는 부분이 신기했다. 이런 패키지는 개발하는 시간을 많이 절약해줄 수 있을 것 같다. 앞으로도 이런 기능들을 더 많이 활용해보고 싶다.
사용법도 생각보다 간단하고 AI는 직접 구현해야한다고 생각했는데 그럴 필요가 없었구나..
'Record > TIL' 카테고리의 다른 글
[Unity] 플랫폼 발사대 (포물선으로 튕겨내기) (4) | 2024.05.29 |
---|---|
[Unity] 티스토리 너 가만안둔다.. (4) | 2024.05.29 |
[Unity] SOLID 원칙 (4) | 2024.05.24 |
[Unity] 고전 게임 기반 팀프로젝트 마무리 (똥피하기게임) (0) | 2024.05.23 |
[Unity] Unity Image에 동영상 넣기 (0) | 2024.05.22 |