This document is about: QUANTUM 2
SWITCH TO

AI


Available in the Gaming Circle and Industries Circle
Circle

AI

개요

  • 의사 결정을 위해 “Chase the rabbit” 탐색 접근법과 HFSM을 사용하는 레이싱 AI.
  • 다중 AI 난이도 설정(Very Easy, Easy, Normal, Hard, Extreme)입니다.
  • 여러 라인, 난이도별 라인 및 라인 분기를 지원하는 AI 내비게이션 구동 라인입니다.
  • AI는 결코 자동차 위치나 회전을 직접 제어하지 않습니다. 실제 플레이어로부터의 입력과 정확히 같은 방식으로 처리되는 입력을 생성합니다.

Rabbit

아케이드 레이싱 AI는 Chase the rabbit (또는 Follow the rabbit) AI 기술을 사용합니다. 이것은 차 앞에 토끼가 달리고 차가 토끼를 쫓으려고 한다는 것을 의미합니다. 우리의 경우 토끼는 단순히 구동 라인을 따라 이동하거나 NavMesh 에이전트에 의해 제어되는 빈 객체입니다. 그러고 나서 AI는 자동차에서 토끼까지의 방향과 거리에 따라 입력을 생성합니다. Rabbit은 멋지게 움직일 필요가 없고, 한 지점에서 다른 지점으로 점프할 수 있으며, 물리적 속도에 따라 가속 또는 감속할 필요가 없으며, 자동차가 움직이기 전에 회전합니다. 이 모든 것이 AI 자동차 취급의 복잡성을 관리하는 데 크게 도움이 됩니다. 단순히 토끼를 어느 순간까지 보내면 차는 믿을 수 있을 정도로 토끼를 따라갈 것입니다.

토끼 엔티티를 표시하려면 AIRabbit 프리팹을 검색하여 MeshRenderer 컴포넌트를 사용하도록 설정합니다.

ai rabbit
붉은색 구체로 표시되는 토끼가 있는 차.

일반적으로 토끼는 차의 최고 속도로 달립니다. 그러나 차가 더 빠르면(예: 니트로 사용) 속도를 높일 수 있고, 너무 앞에 있으면 차를 기다릴 수 있습니다. 토끼가 일정 거리보다 더 멀리 있을 때, 토끼는 자동차 앞에서 즉시 부러질 수 있습니다. 그러나 토끼가 차에 가까워질 때(예: 주행 라인 속도에 따라 속도가 느려질 때) AI가 입력을 느리게 바꾸고 토끼를 앞지르지 않도록 변경한다는 점을 언급하는 것이 중요합니다. 그래서 토끼는 원하는 최대 속도를 지시합니다.

토끼는 일반적으로 구동 라인을 정확히 따르지 않고 보다 자연스러운 동작을 위해 AIConfig 값을 기반으로 일부 오프셋을 변경합니다.

주행 라인

주행 라인은 차량이 주행해야 하는 위치(또는 토끼가 주행해야 하는 위치)를 설명하는 일련의 점에 지나지 않습니다. 각 포인트는 AI가 어떤 라인을 선택할지, 포인트를 통과할 때 얼마나 빨리 갈지 변경하는 난이도와 속도 승수를 가질 수 있습니다.

driving line
주행 라인 (녹색).

장면 맵 베이킹 중에 주행 라인이 게임 플레이 씬 엔티티에 베이킹 됩니다. 자세한 내용은 주행 라인 편집기 섹션을 참조하십시오.

난이도가 다른 여러 개의 선이 있을 수 있으며, 직선을 나타내거나 단순히 우회전을 통해 주행하는 대체 방법이 있을 수 있습니다.

driving line branching
구동 라인 브랜칭. 선 점이 정확하게 배치될 필요는 없습니다. 베이킹 과정에서 가장 가까운 라인과 라인 시작점과 끝점이 병합됩니다.

HFSM

아케이드 레이싱 샘플 AI는 의사 결정 면에서 매우 간단합니다. 니트로를 언제 사용할지 결정할 때에만 사용됩니다.

hfsm
HFSM.

선 따르기 액션

토끼의 주행이 완료되었을 때(목표 지점에 있음) 토끼의 대상을 설정하는 작업입니다. 플레이어 체크포인트를 기준으로 목적지가 설정됩니다.

노트: 현재 주행 라인에 경로 검색 기능이 없습니다. 토끼는 단순히 그 선을 따라가면 목적지에 도착할 것이라고 합니다.

AI 난이도

AI 난이도는 AIConfig 및 AIHandling 에셋을 통해 정의됩니다.

ai assets
AI 에셋.

AIConfig는 HFSM의 구성 값을 제어하고 주행 라인 주변의 토끼 동작을 수정하는 데 사용됩니다. AIHandling은 AI 입력 생성을 담당합니다. 완전한 사용자 정의 AI 처리 동작을 위해 AIHandling 클래스를 상속할 수 있습니다.

에셋

맵 에셋

씬의 각 게임 플레이(레이스)에는 별도의 맵 데이터 에셋이 필요합니다.

map assets
맵 에셋.

씬의 Races 게임 객체에 있는 MapSelector 컴포넌트를 사용하여 씬의 모든 맵을 한 번에 베이킹할 수 있습니다.

전역 설정

다른 게임 설정 에셋, 기본 옵션 및 로더(씬 이름)의 데이터를 저장하는 게임의 기본 설정 에셋입니다.

global settings
### 옵션 레이싱 샘플에는 플레이어가 게임에서 변경할 수 있는 게임 옵션이 구현되어 있습니다. 기본 옵션 값은 GlobalSetting에 있습니다.
options

매치 설정

레이싱 정보를 표시하고 경기를 준비하기 위해 메뉴에서 주로 사용되는 설정을 유지합니다. Quickplay에서 표시하거나 적용할 AI 옵션을 구성할 수 있습니다. 또한 더 많은 AI 난이도로 시합을 시작해야 할 경우 AI 확률을 설정할 수 있습니다.

노트: 설정 인스펙터는 Odin을 더 읽기 쉽게 사용합니다. 자세한 내용은 타사의 에셋 섹션을 참조하십시오.

match settings

자동차 설정

자동차에 대한 정보뿐만 아니라 메뉴에서 플레이어가 사용할 수 있는 자동차를 지정하는 설정입니다.

car settings

AIConfigs, AIHandling

AI 섹션 참고.

스티어링 설정

스티어링 설정은 속도에 따라 차량이 얼마나 회전할 수 있는지 알려주는 회전 곡선을 유지합니다. 예를 들어, 최고 속도의 자동차는 15km/h를 달릴 때만큼 빠르게 회전할 수 없습니다.

steering settings
Back to top