
이 C ++ 17 라이브러리는 행동 트리를 만드는 프레임 워크를 제공합니다. 유연하고 사용하기 쉽고 반응성이 빠르며 빠르게 설계되었습니다.
주요 사용 사례가 로봇 공학 이더라도이 라이브러리를 사용하여 게임 용 AI를 구축하거나 유한 상태 머신을 대체 할 수 있습니다.
다른 구현과 비교할 때 BehaviorTree.cpp를 독특하게 만드는 기능은 거의 없습니다.
그것은 일류 시민 인 비동기적인 행동 , 즉 비 차단을 만듭니다.
여러 동작을 동시에 실행하는 반응성 행동 (직교성)을 구축 할 수 있습니다.
트리는 도메인 별 스크립팅 언어 (XML 기반)를 사용하여 정의되며 런타임에로드 할 수 있습니다. 다시 말해, C ++로 작성하더라도 나무의 형태는 하드 코딩되지 않습니다 .
사용자 정의 트린 노드를 정적으로 연결하거나 플러그인 으로 변환하여 런타임에로드 할 수 있습니다.
트리 노드 사이에서 데이터 흐름을 수행하기위한 유형-안전 및 유연한 메커니즘을 제공합니다.
여기에는 사용자가 상태 전환을 시각화, 기록, 재생 및 분석 할 수있는 로깅/프로파일 링 인프라가 포함되어 있습니다.
주요 개념, API 및 튜토리얼에 대해 배울 수 있습니다. https://www.behaviortree.dev/
문서가 귀하의 질문에 답하지 않거나/또는 다른 BT.CPP 사용자와 연결하려면 포럼을 방문하십시오.
행동 트리를 편집하는 것은 좋아하는 텍스트 편집기에서 XML 파일을 편집하는 것만 큼 간단합니다.
더 멋진 그래픽 사용자 인터페이스를 찾고 있다면 Groot2를 확인하십시오.

BT.CPP 에는 C ++ 17을 지원하는 컴파일이 필요합니다.
세 가지 빌드 시스템이 지원됩니다.
Conan과 컴파일 :
귀하가 BehaviorTree.CPP 의 상위 디렉토리에 있다고 가정합니다.
mkdir build; cd build
conan install ../BehaviorTree.CPP --output-folder=. --build=missing
cmake ../BehaviorTree.CPP -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake"
cmake --build . --parallel
Zeromq 및 SQLite와 같은 종속성이 이미 설치되어 있고 Conan을 사용하고 싶지 않다면 간단히 입력하십시오.
mkdir build; cd build
cmake ../BehaviorTree.CPP
cmake --build . --parallel
Pixi 프로젝트 (Conda Virtual Environment)를 구축하려는 경우.
pixi run build
응용 프로그램에서 bt.cpp를 사용하려면 여기 예제를 참조하십시오 : https://github.com/behaviortree/btcpp_sample.
상용 제품에서 BT.CPP를 사용하고 있으며 기술 지원 / 컨설팅이 필요합니까? 1 차 저자 [email protected] 에 문의하여 사용 사례 및 요구 사항에 대해 논의 할 수 있습니다.
소프트웨어의 버전 3.8은 지점 v3.8에서 찾을 수 있습니다.
해당 브랜치는 버그 수정을받을 수 있지만 새로운 기능은 마스터 브랜치에서만 구현됩니다.
MIT 라이센스 (MIT)
저작권 (C) 2019-2023 Davide Faconti
저작권 (C) 2018-2019 Davide Faconti, Eurecat
저작권 (C) 2014-2018 Michele Colledanchise
이에 따라이 소프트웨어 및 관련 문서 파일 ( "소프트웨어")의 사본을 얻는 사람에게 허가는 제한없이 소프트웨어를 처리 할 수있는 사람에게 무료로 제공됩니다. , 소프트웨어의 사본을 게시, 배포, 서브 리센스 및/또는 판매하고, 소프트웨어가 제공하도록하는 사람을 다음과 같은 조건에 따라 할 수 있도록합니다.
위의 저작권 통지 및이 권한 통지는 소프트웨어의 모든 사본 또는 실질적인 부분에 포함되어야합니다.
이 소프트웨어는 상업성, 특정 목적에 대한 적합성 및 비 침해에 대한 보증을 포함하여 명시 적 또는 묵시적 보증없이 "그대로"제공됩니다. 어떠한 경우에도 저자 또는 저작권 보유자는 계약, 불법 행위 또는 기타, 소프트웨어 또는 사용 또는 기타 거래와 관련하여 계약, 불법 행위 또는 기타의 행동에 관계없이 청구, 손해 또는 기타 책임에 대해 책임을지지 않아야합니다. 소프트웨어.