UDN
Search public documentation:

AIOverviewKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > AI와 내비게이션 > AI 시스템 개요

AI 시스템 개요


문서 변경내역: Steve Polge 작성. Matt Tonks 업데이트. 홍성진 번역.

개요


게임 AI는 종종 게임 프로젝트에 필수 성분입니다. 게임에서 기본 길찾기(path finding)나 내비게이션같은 문제들이 잘 해결되면서 AI도 점차 더 복잡한 상황을 처리할 수 있도록 발전해 가고 있습니다. 파괴 가능하거나 어떤 식으로 영구 변경 가능한 지오메트리가 있는 동적 레벨, 다양한 이동 기능을 갖는 차량 등의 더욱 복잡한 움직임 모드, 커버의 효과적 사용 등 점차 중요해 지고 있는 3D 배경 등이 여기에 해당합니다.

게임의 규칙, 전략 및 전술에 대한 정확한 이해는 물론, 비슷한 기술 수준의 플레이어에 대해 제대로 파악하는 것이 우수한 인공 지능(AI)을 구축하는 토대가 됩니다. 훌륭한 AI에는, 플레이어가 아는 한도 내에서 유사한 게임 세계와 게임 상태에 대한 지식 모델이 필요합니다. FPS 게임의 경우에는, AI가 인간 플레이어에 영향을 미치는 다양한 상황에서 대상을 맞출 때, 인간과 같은 장단점을 가진 인간과 유사한 조준 모델을 갖는 것도 매우 중요합니다. 마지막으로 AI에는 상호 작용하는 객체(예: 차량, 무기 등)나 문제점 처리를 위한 유연한 시스템이 필요합니다.

최근 콘솔과 PC의 연산 능력이 획기적으로 증가한 덕분에, 마침내 AI를 위해서도 충분한 기술적 혜택을 누릴 수 있게 되었습니다. AI 프로그래머들은 AI 환경 관련 정보를 알아내기 위한 콜리전 검사와 같이 더욱 연산 집약적인 업무를 수행하거나, 길찾기에서도 자원이 많이 소모되는 의사 결정을 더 많이 할 수 있게 되었습니다.

AI의 행동을 결정하기 위해 필요한 "지름길" 의 수를 줄임에 따라 AI가 더욱 정확한 정보에 입각하여 미묘한 의사 결정을 할 수 있게 되었습니다. 예를 들어 멀리 있는 목표물에 도달하려고 하는 UT3의 NPC는 단순히 가장 빠른 길을 고르지 않고 여러 경로를 평가합니다. 경로의 평가는 "리스크", 다른 아군 NPC 행동, 복잡도 등과 같은 다양한 요인을 근거로 삼습니다.

때때로, 게임 AI를 연기와 거울 로 볼 수도 있습니다. 학문적인 AI 연구의 현황과 게임에서의 AI 구현 간에는 상당한 부분에서 아직도 근본적으로 큰 차이가 있습니다. 환경 관련 정보를 구하는 문제는 게임 AI에서보다 현실 세계에서 더 복잡하며, 여전히 미해결 과제가 많이 남아 있습니다. 저희는 분명 AI 연구에서 비롯된 지식을 적용하지만 AI 의 "최첨단" 연구 결과는 거의 사용하지 않고 있습니다. 게임 AI에서의 가장 까다로운 과제 중 하나는 여전히 인간 같은 반응을 보여 주는 인간 "느낌" 이 나는 NPC를 제작하는 것이며, 이에 대한 한계가 게임 AI에서 가장 어려운 과제입니다. 동시에 게임 AI는 불시의 동작과 같은 부분을 흉내내기 위해 노력하고 있습니다.

FPS 게임의 경우 게임 AI의 또 다른 목표는 무작위적이거나 습관적 행동으로 보이기도 하고 종종 불완전하기도 한, 더 "인간적인" 행동을 표현하는 것입니다.

UT3에서 봇이 게임플레이 중 배우는 방법 중 하나는 "킬링 존"과 같은 항목을 반영하기 위해 경로 네트워크의 비용을 동적으로 조정하는 것입니다. 이를 통해 봇은, 저격수가 매복하고 있는 곳 등 피해야 할 지역을 알게 됩니다. 캐릭터마다 무기 선호도, 전술 인지 및 공격성 등의 특성이 설정되어 의사 결정 과정에 반영됩니다. 플레이어들이 AI를 단순한 바보라고 판단할 수 있기 때문에, 저희는 봇을 이런 식으로 "인간처럼" 만드는 것이 다소 조심스럽습니다. 어떤 레벨에서 AI가 모든 적이 사실상 인간이라는 것을 인식하지 못하고 형편없이 플레이하고 있다고 디자이너가 불평한 적도 몇 번 있었습니다.

때로는 똑똑한 것보다 인위적 우둔함 을 표현하는 것이 목표가 되기도 합니다. 이 점이 중요한 두 영역에는 게임 상태에 대한 지식을 목표로 하고 제한하는 NPC가 포함됩니다(특히 현재 봇에게 보이지 않는 적의 위치 및 역량과 관련한 지식). 완벽한 조준은 쉽지만 인간 플레이어와 같이 실수하도록 하기는 어렵습니다. 또한 이전에 볼 수 있던 적이 그럴싸하게 보이도록 하는 봇의 지적 모델링도 꽤나 도전적 과제가 될 수 있습니다.

게임 AI의 미래에는 흥미진진한 실험 및 시뮬레이션 기회가 많이 있습니다. 과학계/대학의 AI 연구에서 나온 이론과 솔루션이 게임 AI의 새로운 관심분야를 제시하는 경우도 자주 있습니다. 물론 연산 능력이 증대함에 따라 게임 AI도 점차 나아져 새로운 게임 시나리오와 기교의 모색을 가능하게 하고 있습니다. 예를 들어 강력한 음성 인식과 합성 시스템을 인터페이스로서 확실히 구현하고 NPC에 대한 강력한 인간성 및 동기 부여 모델을 갖춘 게임에서는 적과 동지의 동기 부여를 결정하는 데 초점을 맞추는 게임플레이가 가능합니다.

특징

언리얼 게임 AI 프레임워크는 다음 두 부분으로 구성됩니다.

  1. 게임 내 의사 결정에 영향을 미치는 정보가 들어 있는 레벨의 기본 레이아웃을 제공하는 수단: Navigationi
  2. 의사 결정 처리와 이를 게임 동작으로 전환하는 수단: Controllers

내비게이션

이것은 Unreal AI 시스템 이면의 설계 이론을 상세히 설명하는 구체적 개요인 동시에 게임 특정 AI 프로그래밍을 위한 기술 가이드입니다.

웨이포인트와 패쓰노드

패쓰 노드 시스템을 사용한 프로그래밍에 대한 자세한 내용은 Waypoints Technical Guide KR 를 참고하십시오.

내비게이션 메시

내비게이션 메시 시스템을 사용한 프로그래밍에 대한 자세한 내용은 Navigation Mesh Technical Guide KR 를 참고하시기 바랍니다.

컨트롤러

컨트롤러 는 게임 AI로부터 논리적으로 판단된 의사 결정이나 플레이어로부터의 입력 기반 의사 결정의 기준입니다. 컨트롤러는 Pawn 동작 제어를 위해 Pawn에 첨부되는 비물리 액터입니다.

따라서 Pawn 은 플레이어나 AI가 제어할 수 있는 모든 액터의 기초 클래스입니다. Pawn은 레벨 내 플레이어와 창조물의 물리적 표현입니다. Pawn은 메시, 콜리전, 피직스를 가집니다. Pawn은 손상을 입고 소리를 내며 무기 및 그밖의 물건을 지닐 수 있습니다. 즉 Pawn은 플레이어나 AI와 세계 간의 모든 물리적 상호 작용을 담당합니다.

컨트롤러는 제어하는 Pawn에 대해 발생하는 여러 이벤트에 대한 통지를 받습니다. 이는 컨트롤러가 이벤트를 방해하고 Pawn의 기본 행동을 대체하는 등, 이벤트에 대처할 행동을 구현할 기회를 줍니다.

PlayerControllers는 인간 플레이어가 Pawn 제어를 위해 사용하며, AIControllers는 제어하는 Pawn에 대한 인공 지능을 구현합니다. 컨트롤러는 Possess() 메서드를 사용하여 Pawn을 제어하고 UnPossess()를 호출하여 Pawn의 제어를 그만둡니다.

Controller-Pawn 시스템은 하나의 AIController 클래스가 여러 다양한 기능으로 Pawn을 제어하도록 설계되었습니다.

UT2004의 침략 게임 타입에는 모두 단일 AIController 클래스에 의해 제어되는 아주 많은 수의 매우 다양한 괴물들이 있습니다. Gears는 기초 AIController 클래스를 사용하며, 필요에 따라 여러가지 Locust 클래스를 위해 이를 확장합니다.

함수

MoveTo

봇을 통과한 지점으로 직접 이동하여 이동을 완료하는 잠재 함수입니다. 이 함수는 길찾기를 실시하지 않고 Pawn을 곧장 목적지로 이끕니다.

MoveToward

액터를 목적지로 삼고, 이 추가 데이터를 활용하여 약간의 특수 처리를 수행한다는 점을 제외하고는 (봇이 내비게이션 포인트로 이동하는 경우 앵커를 설치하는 등) MoveTo와 매우 비슷합니다.