행동 트리 :: 하나의 진드기보다 오래 걸리는 동작


19

비헤이비어 트리에서 내가 이해 한 바에 따르면, 각 비헤이비어는 몇 번의 반복으로 수행 할 수있는 짧은 목표 지향적 행동이어야합니다.

예를 들어 아래는 비헤이비어 트리의 이미지입니다.

여기에 이미지 설명을 입력하십시오

이제 Drive To Enemy 동작이 트리에서 몇 번 이상 반복 된다고 가정 해 봅시다 . 따라서 각 패스에서 Drive To Enemy 는 현재 실행 중 상태 이므로 호출 됩니다.

문제는 적이 근처에 있으면 적 회피 를 부르고 싶다는 것 입니다. 그리고 에게 드라이브를 고려 가 항상 호출 나는 Evade Enemy 에게 전화 할 기회를 얻지 못합니다 ( 아마도 피해야합니다 ).

  • 현재 실행중인 액션에 관계없이 Tree EACH 패스를 통과 해야합니까 ?
  • 내가 올바른 방법으로 가고 있습니까?
  • 그러한 행동을 처리하는 올바른 방법은 무엇입니까?

원래 Stackoverflow에 요청했습니다. 이 질문을하기에 더 적절한 장소가 여기에 있다고 생각했습니다.


1
여기에 제공된 답변이 도움이됩니까? gamedev.stackexchange.com/questions/51693/…
Tetrad

그것은 또한 나의 질문입니다. 이 질문을 의견으로 게시하려고했지만 별도의 질문이어야한다고 생각했습니다.
Free Lancer

답변:


16

이전 답변 에서 제공 한 이미지를 참조하십시오 .

여기에 이미지 설명을 입력하십시오

노드 1이 'Evade Enemy'이고 노드 2가 'Chase Enemy'인 경우, 두 번째 반복 ( '2'및 'B'를 제외한 모든 것이 녹색 일 때 두 번째 반복 일 때임에도 불구하고)을 볼 수 있습니다. 시작), 'Evade Enemy'가 여전히 먼저 확인됩니다. 근처에 적이 없기 때문에 'Evade Enemy'가 실패한 경우에만 'Chase Enemy'가 다시 활성화됩니다. 'Chase Enemy'를 다시 방문하면 'Chris Enemy'가 'running'상태에 있고 'B'로 바로 건너 뜁니다.

즉, 트리를 확인할 때마다 항상 왼쪽에서 오른쪽으로 이동합니다. 노드가 실행 중으로 표시 되더라도 우선 순위가 높은 노드가 먼저 확인됩니다.

노드를 오른쪽에서 왼쪽으로 처리해야하는지 확실하지 않지만, 노드를 정렬하는 것처럼 보입니다 (즉, 적을 회피하고 적의 방향을 드라이브의 오른쪽에 위치). 추가 설명이 필요한 경우 채팅 또는 주제에 대한 기존 질문 중 하나를 통해 문의해야합니다.


2
또 다른 훌륭한 설명에 감사드립니다. 나는 행동 트리의 재귀 적 특성을 이해하는 데 어려움을 겪고있었습니다. 마지막 질문에 대한 의견을 제시하려고했지만 의견을 긴 QA로 바꾸고 싶지 않았습니다. 그러나 마지막 질문은 이제 모든 것이 의미가 있습니다. 실행 상태를 처리 할 때 선택기와 시퀀스간에 차이가 있습니까? 셀렉터 (노드 0)는 노드 1을 먼저 확인한 반면 "노드 2"시퀀스는 두 번째 반복에서 노드 A를 확인하지 않은 것으로 보입니다.
Free Lancer

4
좋은 질문입니다. 이해하는 것 같습니다. 노드 2는 노드 A가 완료 되었기 때문에 노드 A를 확인하지 않았습니다. 노드 2가 '실행 중'으로 표시되면 노드 B가 현재 실행중인 노드임을 알 수 있습니다. 노드가 실행 중이면 이전 노드를 다시 확인할 필요가 없다고 가정 할 수 있습니다.
MichaelHouse

루트 반복기 (0)를 첫 번째 반복 후 "RUNNING"으로 설정 한 후 "READY"로 재설정합니까?
무료 창기병

실행중인 노드의 부모만이 running으로 설정되어 있다고 생각합니다. 노드 (1)을 다시 구문 분석해야하므로 루트는 실행 대신 준비로 설정해야합니다.
MichaelHouse

3
하나의 옵션입니다. 실제로 원하는 횟수만큼 자주 또는 자주 업데이트 할 수 있습니다. 원하는 경우 300ms마다 또는 모든 프레임. 또는 이벤트를 처리하기 위해 트리거 된 업데이트뿐만 아니라 고정 업데이트가있을 수 있습니다. 이와 같은 대부분의 구조와 마찬가지로 동작 트리는 엄격하게 정의되지 않습니다. 게임에 가장 적합한 방식으로 사용해야합니다. 모든 프레임을 평가하는 것이 너무 낭비 적이라면 그렇게하지 마십시오. 또한 트리를 평가하는 데 소요되는 시간을 제한하고 원하는 경우 다음 프레임에서 선택할 수 있습니다. 많은 옵션이 있습니다.
MichaelHouse
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.