2025/03 12

Py Tree - terminology

행동 트리 용어 설명blocking (블로킹)행동(behaviour)은 가끔 '블로킹' 행동이라고 불립니다. 기술적으로는 행동의 실행(틱 부분)은 논블로킹이어야 하지만, 'RUNNING'에서 'FAILURE/SUCCESS'로의 진행이 한 번 이상의 틱이 걸릴 때, 그 행동 자체를 블로킹이라고 합니다. 간단히 말해, 블로킹 == RUNNING 입니다.data gathering (데이터 수집)비동기적으로 블랙보드에 도착하는 이벤트, 알림 또는 들어오는 데이터를 캐싱하는 것입니다. 이는 복잡한 시스템 내에 존재하는 행동 트리에서 꽤 일반적인 관행입니다.대부분의 경우, 데이터 수집은 트리 외부에서 수행되거나, 트리 틱의 앞부분에서 나머지 트리 틱보다 앞선 병렬(parallel) 아래에서 수행됩니다. 이렇게 하면..

카테고리 없음 2025.03.18

Py Tree - surviving crazy hospital

미치광이 병원에서 살아남기: 행동 트리 설계 가이드라인개요행동 트리가 제대로 작동하지 않거나 서브트리 설계가 지나치게 복잡해 보이나요? 이 페이지는 중요한 것에 집중하는 데 도움을 줍니다... 패딩 룸(정신병동)에 들어가지 않도록 말이죠.참고: 이러한 대부분의 가이드라인은 시행착오를 통해 발전해 왔으며, 거의 전적으로 급증하는 복잡성(일명 '날아다니는 스파게티 괴물')을 피하기 위한 필요에 의해 작성되었습니다. 자유롭게 실험하고 여기에 여러분의 통찰력도 공유해 주세요!행동(Behaviours) 관련 지침생성자(constructor)를 최소화하세요: 오프라인 렌더링을 위해 행동을 인스턴스화할 수 있도록하드웨어나 런타임 관련 초기화는 setup()에 넣으세요update() 메서드는 가볍고 논블로킹(non-b..

카테고리 없음 2025.03.18

Py Tree - visualization

Py Trees 시각화 기능에 대한 설명시각화 개요행동 트리(Behaviour trees)는 시각화를 통해 설계, 모니터링 및 디버깅이 훨씬 쉬워집니다. Py Trees는 트리를 다양한 간단한 출력 형식으로 렌더링하는 최소한의 지원을 제공합니다. 현재 지원되는 형식으로는 dot 그래프, 문자열, 표준 출력(stdout) 등이 있습니다.ASCII/유니코드 트리py_trees.display.ascii_tree() 또는 py_trees.display.unicode_tree()를 통해 표준 출력에 ASCII/유니코드 아트 표현을 얻을 수 있습니다.py_trees.display.ascii_tree() 함수 이 함수는 콘솔에 트리를 ASCII 아트로 표현합니다.매개변수root (Behaviour): 표시하려는 트리..

카테고리 없음 2025.03.18

Py Tree - Tree

Trees (트리)트리 관리에 대한 설명입니다.연결된 행동(behaviours)과 복합체(composites)의 그래프는 그 자체로 트리를 형성하지만(즉, 초기화하고 틱할 수 있음), 일반적으로는 많은 관리 작업을 처리하고 트리를 더 효과적으로 사용할 수 있게 해주는 추가 기능을 제공하는 다른 클래스로 트리를 감싸는 것이 편리합니다.이 패키지는 직접 사용할 수 있는 기본 참조 구현을 제공하지만, 자신만의 트리 관리자를 만들기 위한 영감으로도 쉽게 활용할 수 있습니다.행동 트리 (The Behaviour Tree)python복사class py_trees.trees.BehaviourTree(root: Behaviour)[source]이 트리 관리자를 사용하여 행동 트리를 성장시키고, 관리하고, 가지치기할 수..

카테고리 없음 2025.03.18

Py Tree - idiom

Idioms(관용구)Idioms은 흔한 서브트리 패턴을 만들기 위한 생성자입니다.일반적인 의사 결정 패턴은 종종 기본 동작(behaviours)과 블랙보드를 특정 조합으로 사용하여 구현할 수 있습니다. 이 방식이 트리를 다소 장황하게 만들더라도, 새로운 복합(composite) 타입을 만들거나 기존 복합 타입을 재정의하는 것보다 선호됩니다. 새 타입을 만들거나 재정의하면 트리 로직의 복잡성이 증가하거나 세부 사항이 숨겨지게 되고, 둘 다 트리의 내부 구조 파악이나 시각화에 기하급수적인 비용을 추가합니다.이 패키지에서 이러한 패턴들은 PyTree Idioms라고 불리며, 이 모듈에서는 이러한 패턴을 생성하는 데 도움이 되는 편의 기능들을 찾을 수 있습니다.Either Or(둘 중 하나)idioms.eith..

카테고리 없음 2025.03.18

Py Tree - blackboard

Blackboards (블랙보드)블랙보드는 행동들이 데이터를 읽고 쓸 수 있는 공간입니다.블랙보드는 비헤이비어 트리 구현에 반드시 필요한 구성 요소는 아니지만, 트리 내 행동들 간에 데이터를 공유하는 매우 일반적인 메커니즘입니다. 예를 들어, 언리얼 엔진의 블랙보드 설계 노트를 참고할 수 있습니다.구현 방식은 이를 사용하는 프레임워크의 요구사항에 따라 크게 달라집니다. 가장 간단한 구현은 전역 접근이 가능한 키-값 저장소 형태이며, 더 엄격한 구현은 접근 범위를 지정하거나 행동들 간에 데이터 포트를 연결하는 이차적 그래프를 트리 위에 형성합니다.*'PyTrees의 선(禪)'*은 빠른 개발을 가능하게 하면서도 모든 마법이 디버깅 목적으로 노출될 만큼 풍부한 기능을 제공하는 것입니다. 블랙보드의 첫 번째 구..

카테고리 없음 2025.03.18

Py Tree - Decorator

Decorators에 대한 설명자식 노드를 장식하는 요소들입니다. 훌륭한 가구 조각처럼 행동 트리를 꾸며줍니다.Decorators는 단일 자식을 관리하고 그 자식 행동에 공통적인 수정사항을 제공하는 행동입니다(예: 결과 반전). 즉, 행동이 다른 '모자'를 쓸 수 있게 하여 행동 라이브러리의 능력을 조합적으로 확장시킵니다. Decorators (모자들)다양한 기능을 가진 장식자들:py_trees.decorators.Condition: 조건부 실행을 제어py_trees.decorators.Count: 자식 노드 실행 횟수 제한py_trees.decorators.EternalGuard: 영구적인 보호 기능 제공py_trees.decorators.Inverter: 자식 노드의 결과를 반전py_trees.dec..

카테고리 없음 2025.03.18

Py Tree - Composite

CompositesComposites는 behavior tree에서 여러 자식 노드를 가질 수 있는 타입입니다. 이들은 트리가 실행(tick)될 때 경로를 지정하는 역할을 합니다. Composites는 behavior tree의 공장(Sequences와 Parallels)과 의사결정자(Selectors)라고 볼 수 있습니다.PyTree Composites복합 행동들은 일반적으로 자식 노드들을 관리하고 실행 방식과 결과 반환에 특정 로직을 적용합니다. 하지만 그들 자체는 실제로 작업을 수행하지 않습니다. 필요한 검사나 작업은 비복합체 행동들에서 수행해야 합니다.대부분의 원하는 기능은 세 가지 복합체(Selector, Sequence, Parallel)의 조합으로 구현할 수 있습니다. 사실, 이것이 바로 b..

카테고리 없음 2025.03.18

Py Tree - Feedback

피드백 메시지(Feedback Message)행동(Behaviour)에는 initialise() 또는 terminate() 메서드에서 지울 수 있고 update() 메서드에서 업데이트할 수 있는 자연스럽게 내장된 피드백 메시지가 있습니다.중요 팁중요한 이벤트가 발생할 때만 피드백 메시지를 변경하세요.피드백 메시지는 중요한 이벤트가 발생했을 때 사람에게 알리거나 트리의 상태를 로깅할 시기를 결정하는 데 도움을 주기 위해 설계되었습니다. 만약 모든 틱(tick)마다 알림이나 로깅을 한다면, 실제로 중요한 일이 거의 일어나지 않는 방대한 데이터 속에서 예상치 못한 또는 치명적인 행동으로 이어진 중요한 지점을 찾기 위해 많은 노이즈를 정리해야 하는 상황에 처하게 됩니다.피드백 메시지 설정은 일반적으로 RUNNI..

카테고리 없음 2025.03.18

Py Tree - Status

행동 트리의 상태(Status)상태의 중요성행동(Behaviour)의 가장 중요한 부분은 update() 메서드에서 행동의 상태를 결정하는 것입니다. 이 상태는 이후 행동 트리의 나머지 부분을 통해 진행될 방향에 영향을 미칩니다. 아직 트리에 대해 다루지는 않았지만, 바로 이 상태가 행동 트리에서 의사 결정을 이끄는 요소입니다.상태 열거형(Enum)class py_trees.common.Status( value )[source]행동의 상태를 나타내는 열거형입니다.FAILURE = 'FAILURE'행동 검사가 실패했거나, 그 동작의 실행이 실패한 결과로 끝났음을 의미합니다.INVALID = 'INVALID'행동이 초기화되지 않았거나 비활성 상태에 있음을 의미합니다. 즉, 현재 틱(tick)이 발생하지 않고..

카테고리 없음 2025.03.18