200 likes | 480 Views
최신 AI 기법을 적용한 인공지능 게임 프로그래밍 실전가이드. 41 장 . 계층적 상태기계. 목차. 개요 계층구조 계층간의 상호 작용 논의. 1. 계층 구조. 정의 일련의 객체가 여러 레벨에 걸쳐 결합된 구조. 1. 계층구조 (cont ’ ). 중첩된 상태 다른 상태들을 포괄하는 상태를 상위상태 라 부름 HSM 의 상태 개수는 일반적으로 펼쳐놓은 유한상태 기계의 상태 개수보다 줄어들지 않음 . 중첩된 상태는 단지 입 / 출력 알파벳의 부분집합만 받아들일 수 있다.
E N D
최신 AI기법을 적용한 인공지능 게임 프로그래밍 실전가이드 41장.계층적 상태기계
목차 • 개요 • 계층구조 • 계층간의 상호 작용 • 논의
1.계층 구조 • 정의 • 일련의 객체가 여러 레벨에 걸쳐 결합된 구조
1. 계층구조(cont’) • 중첩된 상태 • 다른 상태들을 포괄하는 상태를 상위상태 라 부름 • HSM의 상태 개수는 일반적으로 펼쳐놓은 유한상태 기계의 상태 개수보다 줄어들지 않음. • 중첩된 상태는 단지 입/출력 알파벳의 부분집합만 받아들일 수 있다.
3개의 중첩된 상태로 정의된 상위 상태. 각각의 중첩된 상태는 동일한 나가는 전이를 공유
1. 계층구조(cont’) • 중첩된 유한상태 기계 • 추상화 • 구현의 복잡도를 추상화 하는 역할. • 줌 아웃 연산 • 상세화 • 추상화의 반대적인 개념 • 모듈화 • 모듈화된 유한상태 기계는 어떤 위치에나 재사용 가능 • 설계 단계에서 유한 상태 기계의 모듈을 라이브러리에 저장해 뒀다가 필요할 때 마다 꺼내 쓸 수 있음.
1.계층구조 (cont’) • 줌아웃 • 계층구조의 하위 레벨을 감춤 • 줌인 • 하위 레벨을 다시 집어 넣음.
1.계층구조(cont’) • 두개의 상태가 동일한 유한상태기계모듈을 중첩된 컴포넌트로 재사용하고 있음.
1.계층구조(cont’) • 혼성 계산 모델 • 계층적 모델의 중요 장점은 융통성 • 각 상태마다 서로 다른 계산 모델을 사용하는 것이 가능
2.계층 간 상호작용 • 마스터와 슬레이브 • 중첩된 유한상태 기계 사이의 전형적 관계
2.계층 간 상호작용(cont’) • 수행상 모호성이 존재 • 설계 자체를 수정해야 함 • 하드코딩 센서를 이용한 절차적 방식문제 • 계층구조의 서로 다른 레벨에 위치한 전이가 동시에 일어날 수 있다는 것임. • 문제 해결의 지침 • 충돌가능성이 존재 할 경우 마스터에 영향을 미치는 모든 전이가 우선권 • 슬레이브가 먼저 수행되기 때문에 상위 유한상태 기계안에 전이가 존재한다면 중첩된 유한상태 기계에 대한 모든 변화는 무시.
2.계층 간 상호작용(cont’) • 스택기반 • 각 레벨의 활성화 된 유한상태 기계를 스택에 저장할 수 있음. • 상태의 줌인연산 • 스택에 새로운 유한상태기계를 추가하는 포시연산 • 상태의 줌아웃 연산 • 마지막으로 추가된 유한상태 기계를 제거하는 팝 연산
2.계층 간 상호작용(cont’) • 한 순간에는 단 하나만의 유한 상태기계가 시뮬레이션 됨 • 주의깊은 설계를 통해 각 상태 기계가 스스로를 스택에서 제거하도록 해야 함.
2.계층 간 상호작용(cont’) • 레벨 오브 디테일 • 계산 비용을 달리 하면서 행동 양식의 품질을 조절하고자 하는것. • 상세도가 주어진 LOD알고리즘은 행동의 품질과 계산 오버헤드를 절충할 수 있어야 함.
2.계층 간 상호작용(cont’) • 설계시 • 각각의 상태 기계에 손수 상세도 할당 • 시뮬레이션 시 • HSM의 총 상세도 추적 가능. • 상세도는 필요에 따라 동적으로 변경 가능 • 문제점 • 상세도를 잃음으로서 발생.
2.계층 간 상호작용(cont’) • HSM의 장점 • 상태기계가 상세도 자체를 제어할 수 있다.
2.계층 간 상호작용(cont’) • HSM을 이용해 부드러운 LOD수행 시 조건 • 게임 디자이너가 중첩된 유한상태의 행동 양식에 대한 약식 AI를 만들 수 잇어야 함 • 두 상세도 간의 전이를 처리하는 절차를 만들 수 있어야 함 • 상세도 변화 때문에 AI나 게임 플레이의 일관성이 조금이라도 깨진다면 HSM은 올바른 접근 방식이 아님.
2.계층 간 상호작용(cont’) • 상호작용 구조의 일반화 • 상태 내부의 처리 방식을 추상화 해 놓음 • 마스터/슬레이브 방식 • 슬레이브 상태를 먼저 수행, 다음으로 자가 자신을 수행함.(필요하다면 전이를 재정의함) • 스택기반 • 무조건 가장 아래쪽 슬레이브까지 내려감 • 레벨오브디테일 • 충분한 수준의 상세도가 제공될 때 까지 중첩된 유한상태 기계 안으로 들어감.
3.논의 • 장점 • 모듈화 • 설계상의 복잡성을 줄여줌, • 개발과정의 단순화 • 계산모델 • 많은 융통성 제공 • 중첩된 상태 간의 상호 작용 구조를 간편하게 변경가능.
3.논의(cont’) • 단점 • 규모가 커지면 디버깅은 매우 까다로움 • 시각적 도구를 사용하지 않고 계층구조 활용하기는 어려움 • 구현 • 상태 간의 상호 작용을 정의 하는 과정 중요 • 예기치 못한 사건이 발생 가능성은 여전히 존재 • 유한상태기계 전반의 공통적 문제이나 계층구조가 도입되면 한층 심각해짐.