본문 바로가기

TIL(Today I Learned)/오늘 무엇을 배웠을까

TIL(Today I Learned) - 28

오늘은 인터넷 강의를 들으면서 학습을 하였는데, 깜짝 놀란 패키지가 있어 쓰고자 한다.

 

바로 AI 네비게이션이라는 패키지다.

 

일단 간단히 요약하자면, NPC가 이동해야할곳 이동하지말아야할곳은 물론 장애물까지 다 판단해서 알아서 이동을 하는

 

기능이다. 예전에는 이런 기능이 없어 직접 알고리즘으로 구현했다고 했는데 상상하기도 싫다.

 

코드를 보면서 큰 틀은 AI 네비게이션이 알려주면서, 세세한 지시는 코드로 작성하여 마무리 하는 느낌이다.

 

아래는 AI 네비게이션의 주요 기능이다.

 

  1. Navigation Mesh (네비게이션 매쉬)
    • 3D 공간을 그리드로 나누어 이동 가능한 지역과 장애물이 있는 지역을 구분하는 매쉬입니다.
    • 캐릭터가 이동할 수 있는 영역과 이동할 수 없는 영역을 정의하고, 이를 기반으로 경로를 계산합니다.
  2. Pathfinding (경로 탐색)
    • 캐릭터의 현재 위치에서 목표 지점까지 가장 적절한 경로를 찾는 알고리즘입니다.
    • 주로 A* 알고리즘 등이 사용되며, 지정된 목표 위치까지 최단 경로를 탐색합니다.
  3. Steering Behavior (스티어링 동작)
    • 캐릭터나 NPC가 경로를 따라 이동할 때, 보다 자연스러운 동작을 구현하는데 사용됩니다.
    • 동적으로 캐릭터의 이동 방향과 속력을 조정하여 부드럽고 현실적인 이동을 시뮬레이션합니다.
  4. Obstacle Avoidance (장애물 피하기)
    • 캐릭터가 이동 중에 장애물과 충돌하지 않도록 하는 기술입니다.
    • 각종 센서나 알고리즘을 사용하여 장애물을 감지하고 피하는 동작을 수행합니다.
  5. 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