AI 10

목표지향 행동 - 3

2022.11.24 - [Game AI] - 목표 지향 행동 - 2 목표 지향 행동 - 2 2022.11.20 - [Game AI] - 목표 지향 행동 (Goal-Oriented Behavior) - 1 목표 지향 행동 (Goal-Oriented Behavior) - 1 2022.11.13 - [Game AI] - 마르코프 시스템(Markov Systems) 개요 지금까지는 몇몇 인풋들이 캐릭터에게 제공 tsyang.tistory.com 목표 지향 계획 계획의 필요성 이전에 다룬 로직에서는 해결이 불가능한 상황이 있다. 다음 예시를 보자 목표 : 체력 회복 = 4 목표 : 적 죽이기 = 3 행동 : 화염구 (적 죽이기 - 2) MP - 30 행동 : 회복 (체력 회복 - 2) MP - 20 행동 : 대회..

Game AI 2022.12.04

목표 지향 행동 - 2

2022.11.20 - [Game AI] - 목표 지향 행동 (Goal-Oriented Behavior) - 1 목표 지향 행동 (Goal-Oriented Behavior) - 1 2022.11.13 - [Game AI] - 마르코프 시스템(Markov Systems) 개요 지금까지는 몇몇 인풋들이 캐릭터에게 제공되면 그에 따라 어떤 행동을 할지 결정했다. 이런 과정에서 캐릭터의 '목표'는 빠져있다. 심즈(Th tsyang.tistory.com 이전 글에서 다음과 같이 문제를 언급했다. 두 가지 문제가 있는데, 하나는 행동을 하며 생기는 부수 효과(side effect)들을 무시한다는 것이고 다른 하나는 수행 시간을 무시한다는 것이다. 이 둘을 해결해보자. 효용(Utility) 부작용을 무시한다는 게 뭐..

Game AI 2022.11.24

퍼지 로직(Fuzzy Logic) - 1

개요 만약 어떤 캐릭터가 '건강함'과 '아픔' 상태를 가질 수 있다고 하자. 기존의 로직에서는 캐릭터는 건강하거나 아프거나 둘 중 하나만 표현할 수 있지만 그 사이를 표현할 수는 없다. 퍼지 로직(Fuzzy Logic)은 이러한 '점진적 상태'를 표현하기 위해 사용할 수 있다. 다만 대부분의 경우에서 퍼지 로직보다 확률 기반의 로직을 사용하는 것이 더 낫다. 왜냐면 퍼지 로직을 기반으로한 AI는 결국 상대방에게 다 털릴 수 있기 때문이다. (행동이 결정적이기 때문에 패턴이 파훼될 수 있다) 그럼에도 퍼지 로직은 "경계 상태일 때는 천천히 걸어라"같은 간단한 동작을 구현하기 쉽기 때문에 이러한 부분에서는 대중적이다. 퍼지 집합(Fuzzy Sets) 전통적인 로직에서는 "Predicate"(술어, 참/거짓을..

Game AI 2022.10.02

Behavior Tree (4) - 데이터 전달하기(Blackboard)

이전 글: 2022.08.30 - [Game AI] - Behavior Tree (3) - Parallel Behavior Tree (3) - Parallel 이전 글 : 2022.08.27 - [Game AI] - Behavior Tree (2) - 확률, Decorator, 리소스 보호 Behavior Tree (2) - 확률, Decorator, 리소스 보호 이전 글 : 2022.08.21 - [Game AI] - Behavior Tree (1) - 기초 Behav.. tsyang.tistory.com 데이터 전달은 어떻게? 캐릭터가 여러 명의 적들을 발견한다. 캐릭터는 그 중 한 명의 타겟을 선택해서 공격한다. 그렇다면 이 캐릭터의 Behavior Tree에서 [타겟을 선택]하는 Task가 어떻게..

Game AI 2022.09.05

Behavior Tree (3) - Parallel

이전 글 : 2022.08.27 - [Game AI] - Behavior Tree (2) - 확률, Decorator, 리소스 보호 Behavior Tree (2) - 확률, Decorator, 리소스 보호 이전 글 : 2022.08.21 - [Game AI] - Behavior Tree (1) - 기초 Behavior Tree (1) - 기초 2021.12.27 - [Game AI] - 의사 결정 - State machines 의사 결정 - State machines 2021.10.21 - [Game AI] - 의사 결정.. tsyang.tistory.com Parallel Task Parallel Task는 Composite Task의 한 종류이다. Parallel은 Sequence와 유사하다. Ch..

Game AI 2022.08.30

Behavior Tree (1) - 기초

2021.12.27 - [Game AI] - 의사 결정 - State machines 의사 결정 - State machines 2021.10.21 - [Game AI] - 의사 결정 - Decision Tree 의사 결정 - Decision Tree Decision Tree Decision Tree는 Decision Making 구현법 중 하나이다. 빠르고, 쉽게 구현 가능하고 이해하기 쉽다는 장점을 가지.. tsyang.tistory.com 개요 Behavior Tree는 AI 캐릭터를 만들 때 가장 많이 사용되는 방식 중 하나이다. Hierarchical State Machine과 유사한 점이 많은데, Behavior Tree에서는 State 대신 Task라는 개념을 쓴다. Task는 sub-tree..

Game AI 2022.08.21

Game AI - Steering Behaviors (2)

2021.06.19 - [Game AI] - Game AI - Steering Behaviors (1) Align Align은 타겟과 방향을 맞추는 동작이다. 타겟의 속도나 위치와는 관계가 없다. Align을 구현할 때 주의할 점은 회전 방향을 정하는 것인데 이것은 타겟과의 방향 차이를 (-180, +180)도로 매핑하면 된다. protected override SteeringOutput GetSteer() { var result = new SteeringOutput(); var rotation = _target.Orientation - Character.Orientation; rotation = MapToRange(rotation); //회전각도를 [-180,180] 사이로 매핑 var rotation..

Game AI 2021.08.07

Game AI - Steering Behaviors (1)

이전글 : 2021.06.13 - [Game AI] - Game AI - 기본적인 이동 Game AI - 기본적인 이동 KINEMATICS 어떤 물체의 운동 상태는 다음과 같이 표현 할 수 있다. public struct Kinematic { public Vector3 position; public float orientation; // x-z 평면에서 +z축으로부터 시계방향 각도. public Vector.. tsyang.tistory.com 가속도 있는 이동 이전글의 마지막에서 가속도가 없는 운동을 다뤘다. 가속도 없는 운동의 알고리즘들이 속도를 반환했다면 이번에는 각 가속도 운동 알고리즘이 다음과 같은 가속도를 반환한다. public struct SteeringOutput { public Vecto..

Game AI 2021.06.19

Game AI - Kinematic movement alogrithms

KINEMATICS 어떤 물체의 운동 상태는 다음과 같이 표현 할 수 있다. public struct Kinematic { public Vector3 position; public float orientation; // x-z 평면에서 +z축으로부터 시계방향 각도. public Vector3 velocity; public float rotation; //각속도 } 그러나 이거 가지고 운동을 표현하기는 조금 어색한데, 가속도의 개념이 빠져있기 때문이다. 따라서 외부에서의 힘(가속도)는 다음과 같이 표현할 수 있다. public struct SteeringOutput { public Vector3 linear; // 가속도 public float angular; // 가속도(각) } 이걸로 운동 상태를 업데..

Game AI 2021.06.13

게임 AI의 모델

모델 게임 AI의 모델은 여러 가지가 있다. 아래 그림은 그 중 한 가지 예이다. 이 모델에서는 AI의 작업을 세 가지로 나눈다. 이동 의사결정 전략 그러나 모든 AI가 위 세가지 요소를 사용하는 것은 아니다. 예를 들어, 체스와 같은 경우는 오직 전략만 사용한다. 반면에, 슈퍼 마리오 의 AI같은 경우에 전략은 없다. 이동 이동 알고리즘은 단순히 특정 위치로 이동하는 것이 아니라 장애물이나 방(통로)과 같은 공간을 이동하는 행위도 포함된다. 의사 결정(Decision making) 의사 결정은 캐릭터가 다음에 뭘 할지를 정하는 행위이다. 공격, 가만히 있기, 순찰, 탐험, 숨기 등등이 모두 포함된다. 몇몇 결정은 이동 AI가 필요한데, 예를 들어 근접 공격을 하는 경우 공격 대상에게 이동을 먼저 해야 ..

Game AI 2021.05.24