행동트리 예제

Posted on

인터넷 주위에 행동 트리 자습서 및 가이드의 많음이 있지만, 그들은 프로젝트 Zomboid에서 사용하기에 적합한 지 여부를 탐구 할 때, 나는 또 다시 같은 문제에 부딪했다. 내가 읽은 많은 가이드는 동작 트리의 실제 코드 구현에 매우 중점을 두거나 실제 적용 가능한 예제없이 일반 컨텍스트없는 노드의 흐름에 순전히 초점을 맞췄습니다. 비공식적 인 장벽을 통과할 수 있습니다. 아래 요구 사항 R1에 대한 번역 과정을 고려하십시오. 첫 번째 작업은 구성 요소(굵게 표시)를 식별하고, 동작(밑줄)을 식별하고, 동작이 수행되는 순서(기울임꼴)의 지표를 식별하는 것입니다. 그런 다음 해당 동작 트리를 생성할 수 있습니다. 게임 시작: 트리가 업데이트되고 동작을 실행합니다: 순찰, 나머지 노드가 거부되었기 때문에 확률적 시간 초과 동작 트리는 최근 콜빈, 그런즈케 및 윈터에 의해 개발되었기 때문에 신뢰성, 성능 및 기타 신뢰성 속성이 될 수 있습니다. 표현. [14] 동작 트리는 상태 내에서 논리를 투명하게 캡슐화하여 상태를 서로 중첩하여 나무와 같은 구조를 형성하고 이러한 중첩 된 상태로만 전환을 제한하여 이러한 모듈성을 증가시다. 루트 노드는 리프 노드에 도달할 때까지 더 많은 노드로 분기되며 이러한 리프 노드는 루트에서 시작되는 상태에서 AI의 동작을 정의하는 기본 작업입니다.

AI 상태의 개념은 이제 상위 수준의 AI 동작 또는 작업으로 간주되어 중첩된 자식 노드에 대한 링크가 주요 동작을 구성하는 하위 작업을 정의합니다. 리프 노드는 기본적으로 동작을 정의하는 기본 작업 그룹입니다. 대규모 자연어 요구 사항으로 대규모 시스템을 모델링하는 것은 항상 행동 트리 및 전반적인 동작 엔지니어링 프로세스의 주요 초점이었습니다. 이러한 평가 및 시험 방법을 수행하여 호주의 여러 산업 파트너 및 정부 부서와 협력했습니다. 연구된 시스템에는 엄격한 안전 요구 사항이 있는 방위 시스템, 엔터프라이즈 시스템, 운송 시스템, 정보 시스템, 건강 시스템 및 정교한 제어 시스템이 많이 포함되어 있습니다. 이러한 연구의 결과 모두 상업적-자신감. 그러나 레이시온 오스트레일리아와 함께 한 광범위한 산업 트레일[5][6]의 결과는 산업 섹션에서 아래에 제시되어 있습니다. 이 모든 작업이 일관되게 보여 준 것은 요구 사항을 번역하고 요구 사항에 대한 동적 및 정적 통합 뷰를 생성함으로써 현재 발견된 결함보다 훨씬 많은 주요 결함이 조기에 발견된다는 것입니다. 업계 모범 사례. [31] [32] 풀드비어트리 라이브러리를 사용하여 비헤이비어 트리(또는 하위 트리)를 재활용할 수 있습니다. 갑자기 우리는 매우 복잡하고 인상적인 찾고 AI 행동이 실제로 서로의 상단에 계층화 비교적 간단한 노드로 귀결. 그런 다음 확인항목인인벤토리 동작은 NPC가 필요할 때마다 다른 많은 트리에서 자유롭게 사용할 수 있습니다.

그러나 가드가 복합 작업인 경우 보호 된 작업의 동일한 줄에 명확하게 배치 할 수 없습니다. 이러한 상황에서는 작업 중인 엔진에 따라 몇 가지 일반적인 구현 문제가 발생할 수 있습니다. 특히, 내가 작업한 대부분의 엔진에는 연결해야 하는 최소한 몇 가지 필요한 이벤트 기반 코드가 있으며 논리가 복잡해짐에 따라 동작 트리의 일부를 재사용하는 것이 중요합니다. 시퀀스가 자연스럽게 캐릭터 액션의 시퀀스에 자신을 빌려준다는 사실, 그리고 AI 행동 트리가 이것이 유일한 사용이라고 제안하는 경향이 있기 때문에, 캐릭터를 만드는 것 외에도 시퀀스를 활용하는 여러 가지 방법이 있다는 것은 분명하지 않을 수 있습니다. `사물`의 순차목록.