오늘은 인터넷 강의를 들으면서 학습을 하였는데, 깜짝 놀란 패키지가 있어 쓰고자 한다.
바로 AI 네비게이션이라는 패키지다.
일단 간단히 요약하자면, NPC가 이동해야할곳 이동하지말아야할곳은 물론 장애물까지 다 판단해서 알아서 이동을 하는
기능이다. 예전에는 이런 기능이 없어 직접 알고리즘으로 구현했다고 했는데 상상하기도 싫다.
코드를 보면서 큰 틀은 AI 네비게이션이 알려주면서, 세세한 지시는 코드로 작성하여 마무리 하는 느낌이다.
아래는 AI 네비게이션의 주요 기능이다.
- Navigation Mesh (네비게이션 매쉬)
- 3D 공간을 그리드로 나누어 이동 가능한 지역과 장애물이 있는 지역을 구분하는 매쉬입니다.
- 캐릭터가 이동할 수 있는 영역과 이동할 수 없는 영역을 정의하고, 이를 기반으로 경로를 계산합니다.
- Pathfinding (경로 탐색)
- 캐릭터의 현재 위치에서 목표 지점까지 가장 적절한 경로를 찾는 알고리즘입니다.
- 주로 A* 알고리즘 등이 사용되며, 지정된 목표 위치까지 최단 경로를 탐색합니다.
- Steering Behavior (스티어링 동작)
- 캐릭터나 NPC가 경로를 따라 이동할 때, 보다 자연스러운 동작을 구현하는데 사용됩니다.
- 동적으로 캐릭터의 이동 방향과 속력을 조정하여 부드럽고 현실적인 이동을 시뮬레이션합니다.
- Obstacle Avoidance (장애물 피하기)
- 캐릭터가 이동 중에 장애물과 충돌하지 않도록 하는 기술입니다.
- 각종 센서나 알고리즘을 사용하여 장애물을 감지하고 피하는 동작을 수행합니다.
- Local Avoidance (근접 회피)
- 여러 캐릭터나 NPC가 서로 충돌하지 않도록 하는 기술입니다.
- 캐릭터들 사이의 거리를 유지하거나 회피 동작을 수행하여 서로 부딪히지 않도록 합니다.
'TIL(Today I Learned) > 오늘 무엇을 배웠을까' 카테고리의 다른 글
TIL(Today I Learned) - 30 (0) | 2024.10.28 |
---|---|
TIL(Today I Learned) - 29 (0) | 2024.10.25 |
TIL(Today I Learned) - 27 (0) | 2024.10.23 |
TIL(Today I Learned) - 26 (0) | 2024.10.22 |
TIL(Today I Learned) - 25 (0) | 2024.10.18 |