지원되는 Godot 엔진: 4.3 (v1.2.0+) | 4.2 (v1.1.x 릴리스)
LimboAI 는 복잡한 AI 동작을 생성하기 위해 함께 사용할 수 있는 동작 트리 와 상태 머신 의 조합을 제공하는 Godot Engine 4 용 오픈 소스 C++ 플러그인입니다. 동작 트리 편집기, 내장 문서, 시각적 디버거, 튜토리얼이 포함된 광범위한 데모 프로젝트 등이 함께 제공됩니다! C++로 구현되었지만 자신만의 작업과 상태를 생성하기 위한 GDScript를 완벽하게 지원합니다.
LimboAI를 즐겨 사용하신다면 Ko-fi에 기부하여 제 노력을 지원해 주세요. 귀하의 기여는 제가 계속 개발하고 개선하는 데 도움이 될 것입니다.
비헤이비어 트리는 게임 내 에이전트(예: 캐릭터, 적)의 동작을 모델링하고 제어하는 데 사용되는 강력한 계층 구조입니다. 이는 게임에 대한 풍부하고 고도로 모듈화된 동작을 보다 쉽게 생성할 수 있도록 설계되었습니다. 비헤이비어 트리에 대해 자세히 알아보려면 비헤이비어 트리 소개와 튜토리얼이 포함된 데모 프로젝트를 확인하세요.
데모 프로젝트는
demo
폴더에 있으며 릴리스 에서 별도로 사용할 수 있습니다. 시작하려면demo/scenes/showcase.tscn
실행하세요. 또한 예시를 통해 동작 트리를 소개하는 튜토리얼도 포함되어 있습니다.
다양한 크리에이터가 제작한 유튜브 영상
비헤이비어 트리(BT):
Blackboard 계획: BehaviorTree 리소스에서 변수를 정의하고 BTPlayer 노드에서 해당 값을 재정의합니다.
계획 편집기: 변수, 해당 데이터 유형 및 속성 힌트를 관리합니다.
Blackboard 범위: 이름 충돌을 방지하고 여러 에이전트 간 데이터 공유와 같은 고급 기술을 활성화합니다.
Blackboard 매개변수: 사용자가 값을 제공하거나 이를 Blackboard 변수에 바인딩할 수 있는 BB 매개변수를 내보냅니다(사용자 정의 작업에서 사용할 수 있음).
블랙보드 변수 지정을 위한 검사기 지원("_var"로 끝나는 내보낸 StringName
속성에 대한 사용자 정의 편집기)
편집기에서 BehaviorTree
리소스를 쉽게 생성, 편집, 저장할 수 있습니다.
BTPlayer
노드를 사용하여 BehaviorTree
리소스를 실행합니다.
계층 구조에서 작업을 결합하고 중첩하여 복잡한 동작을 만듭니다.
복합, 데코레이터 및 조건 작업을 사용하여 실행 흐름을 제어합니다.
핵심 클래스인 BTAction
, BTCondition
, BTDecorator
및 BTComposite
확장하여 사용자 정의 작업을 만듭니다.
내장 클래스 문서.
Blackboard 시스템: Blackboard
를 사용하여 작업 간에 데이터를 원활하게 공유합니다.
BTSubtree
작업을 사용하면 다른 리소스 파일에서 트리를 실행하여 구성과 재사용성을 높일 수 있습니다.
시각적 디버거: 실행 중인 장면에서 BT 실행을 검사하여 문제를 식별하고 해결합니다.
BehaviorTreeView
노드를 사용하여 게임 내 BT를 시각화합니다(사용자 정의 게임 내 도구용).
사용자 정의 성능 모니터를 사용하여 트리 성능을 모니터링합니다.
계층적 상태 머신(HSM):
상태 논리를 구현하려면 LimboState
클래스를 확장하세요.
LimboHSM
노드는 LimboState
인스턴스 및 전환을 관리하는 상태 머신 역할을 합니다.
LimboHSM
은 상태 자체이며 다른 LimboHSM
인스턴스 내에 중첩될 수 있습니다.
이벤트 기반: 전환은 이벤트와 연결되고 관련 이벤트가 전달될 때 상태 머신에 의해 트리거되므로 상태 로직에서 전환을 더 효과적으로 분리할 수 있습니다.
고급 반응형 AI용 BTState
사용하여 상태 머신과 동작 트리를 결합합니다.
위임 옵션: 바닐라 LimboState
사용하여 콜백 함수에 구현을 위임하면 신속한 프로토타이핑 및 게임 잼에 적합합니다.
? 참고: 상태 머신 설정 및 초기화에는 코드가 필요합니다. GUI 편집기가 없습니다.
테스트됨: 동작 트리 작업 및 HSM은 단위 테스트에서 다룹니다.
GDExtension: LimboAI를 확장 프로그램으로 사용할 수 있습니다. 커스텀 엔진 빌드는 필요하지 않습니다.
데모 + 튜토리얼: 예제를 사용하여 동작 트리에 대한 소개가 포함된 광범위한 데모 프로젝트를 확인하세요.
LimboAI 및 데모 프로젝트를 시작하는 방법을 알아보려면 첫 번째 단계 가이드를 따르세요.
LimboAI는 C++ 모듈 또는 GDExtension 공유 라이브러리로 사용할 수 있습니다. GDExtension 버전은 사용하기 더 편리하지만 기능이 다소 제한되어 있습니다. 어떤 것을 사용하기로 선택하든 프로젝트는 두 가지 모두와 호환되며 언제든지 하나에서 다른 것으로 전환할 수 있습니다. GDExtension 사용을 참조하세요.
가장 최근 빌드의 경우 Actions → All Builds 로 이동하여 목록에서 빌드를 선택한 다음 Artifacts 섹션을 찾을 때까지 아래로 스크롤하세요.
릴리스 빌드의 경우 릴리스를 확인하세요.
Godot 엔진 소스 코드를 다운로드하고 이 모듈 소스를 modules/limboai
디렉토리에 넣으세요.
소스 코드에서 빌드하는 방법에 대한 지침은 Godot 엔진 문서를 참조하세요.
LimboAI 모듈을 활용하여 게임을 내보내려는 경우 내보내기 템플릿도 구축해야 합니다.
단위 테스트를 실행하려면 tests=yes
엔진을 컴파일하고 --test --tc="*[LimboAI]*"
로 실행합니다.
SCons 빌드 도구와 C++ 컴파일러가 필요합니다. 컴파일을 참조하세요.
scons target=editor
실행하여 현재 플랫폼에 맞는 플러그인 라이브러리를 빌드하세요.
SCons는 limboai/godot-cpp
디렉터리에 아직 없는 경우 godot-cpp/ 저장소를 자동으로 복제합니다.
기본적으로 빌드된 타겟은 데모 프로젝트( demo/addons/limboai/bin/
에 배치됩니다.
다른 옵션과 대상은 scons -h
확인하세요.
온라인 문서: 안정, 최신
첫 번째 단계
비헤이비어 트리 소개
GDScript에서 사용자 정의 작업 만들기
Blackboard를 사용하여 데이터 공유
장면 트리의 노드에 액세스
상태 머신
GDExtension 사용
C#에서 LimboAI 사용
수업 참고자료
기여를 환영합니다! 버그 보고서, 기능 요청 또는 코드 변경에 대한 문제를 열어주세요. 코드 또는 문서 기여에 대한 자세한 지침은 기여 페이지를 확인하세요.
행동 트리 작업에 대한 아이디어나 다양한 프로젝트에 유용할 수 있는 기능이 있는 경우 이슈를 열어 이에 대해 논의하세요.
도움이 필요하신가요? Discord 서버가 있습니다: https://discord.gg/N5MGC95GpP
저는 Mastodon의 LimboAI 개발에 대해 글을 쓰고 있습니다: https://mastodon.gamedev.place/@limbo.
이 소스 코드의 사용에는 LICENSE 파일 또는 https://opensource.org/licenses/MIT에서 찾을 수 있는 MIT 스타일 라이선스가 적용됩니다.
LimboAI 로고 및 데모 프로젝트 아트 자산은 https://creativecommons.org/licenses/by/4.0/에서 찾을 수 있는 Creative Commons Attribution 4.0 국제 라이선스에 따라 라이선스가 부여됩니다.