支持的 Godot 引擎: 4.3 (v1.2.0+) | 4.2 (v1.1.x 版本)
LimboAI是Godot Engine 4的开源 C++ 插件,提供行为树和状态机的组合,可以一起使用来创建复杂的 AI 行为。它配备了行为树编辑器、内置文档、可视化调试器、带有教程的广泛演示项目等等!虽然它是用 C++ 实现的,但它完全支持 GDScript 创建您自己的任务和状态。
如果您喜欢使用 LimboAI,请考虑通过在 Ko-fi 上捐款来支持我的努力?您的贡献将帮助我继续开发和改进它。
行为树是强大的层次结构,用于建模和控制游戏中代理(例如角色、敌人)的行为。它们旨在让您更轻松地为游戏创建丰富且高度模块化的行为。要了解有关行为树的更多信息,请查看行为树简介和我们的演示项目,其中包括教程。
演示项目位于
demo
文件夹中,可在Releases中单独使用。运行demo/scenes/showcase.tscn
即可开始。它还包括一个通过说明性示例介绍行为树的教程。
由不同创作者制作的 YouTube 视频
行为树(BT):
Blackboard 计划:在BehaviorTree 资源中定义变量并覆盖BTPlayer 节点中的它们的值。
计划编辑器:管理变量、其数据类型和属性提示。
Blackboard 范围:防止名称冲突并启用高级技术,例如在多个代理之间共享数据。
黑板参数:导出 BB 参数,用户可以为其提供值或将其绑定到黑板变量(可在自定义任务中使用)。
检查器支持指定黑板变量(导出的以“_var”结尾的StringName
属性的自定义编辑器)。
在编辑器中轻松创建、编辑和保存BehaviorTree
资源。
使用BTPlayer
节点执行BehaviorTree
资源。
通过在层次结构中组合和嵌套任务来创建复杂的行为。
使用复合任务、装饰器任务和条件任务控制执行流程。
通过扩展核心类创建自定义任务: BTAction
、 BTCondition
、 BTDecorator
和BTComposite
。
内置类文档。
Blackboard 系统:使用Blackboard
在任务之间无缝共享数据。
使用BTSubtree
任务从不同的资源文件执行树,从而提高组织性和可重用性。
可视化调试器:检查正在运行的场景中任何 BT 的执行情况,以识别和解决问题。
使用BehaviorTreeView
节点可视化游戏中的BT(用于自定义游戏内工具)。
使用自定义性能监视器监视树性能。
分层状态机 (HSM):
扩展LimboState
类以实现状态逻辑。
LimboHSM
节点充当管理LimboState
实例和转换的状态机。
LimboHSM
本身就是一种状态,可以嵌套在其他LimboHSM
实例中。
基于事件:转换与事件相关联,并在分派相关事件时由状态机触发,从而可以更好地将转换与状态逻辑解耦。
使用BTState
将状态机与行为树结合起来,实现高级反应式 AI。
委托选项:使用普通LimboState
将实现委托给回调函数,使其非常适合快速原型设计和游戏堵塞。
?注意:状态机设置和初始化需要代码;没有 GUI 编辑器。
已测试:单元测试涵盖行为树任务和 HSM。
GDExtension: LimboAI 可以用作扩展。无需构建定制引擎。
演示 + 教程:查看我们广泛的演示项目,其中包括使用示例的行为树介绍。
按照第一步指南了解如何开始使用 LimboAI 和演示项目。
LimboAI 可以用作 C++ 模块或 GDExtension 共享库。 GDExtension版本使用起来更方便,但功能有些限制。无论您选择使用哪一种,您的项目都将与两者保持兼容,并且您可以随时从一种切换到另一种。请参阅使用 GDExtension。
对于最新的构建,导航到Actions → All Builds ,从列表中选择一个构建,然后向下滚动,直到找到Artifacts部分。
对于发布版本,请检查Releases 。
下载Godot引擎源码并将该模块源码放入modules/limboai
目录中。
有关如何从源代码构建的说明,请参阅 Godot 引擎文档。
如果您计划使用 LimboAI 模块导出游戏,您还需要构建导出模板。
要执行单元测试,请使用tests=yes
编译引擎并使用--test --tc="*[LimboAI]*"
运行它。
您将需要 SCons 构建工具和 C++ 编译器。另请参阅编译。
运行scons target=editor
为您当前的平台构建插件库。
如果在limboai/godot-cpp
目录中尚不存在,SCons将自动克隆godot-cpp/存储库。
默认情况下,构建的目标放置在演示项目中: demo/addons/limboai/bin/
检查scons -h
的其他选项和目标。
在线文档:稳定,最新
第一步
行为树简介
在 GDScript 中创建自定义任务
使用 Blackboard 共享数据
访问场景树中的节点
状态机
使用GDExtension
将 LimboAI 与 C# 结合使用
类参考
欢迎贡献!请打开错误报告、功能请求或代码更改的问题。有关贡献代码或文档的详细指南,请查看我们的贡献页面。
如果您有关于行为树任务的想法或可能在各种项目中有用的功能,请打开一个问题来讨论它。
需要帮助吗?我们有一个 Discord 服务器:https://discord.gg/N5MGC95GpP
我在 Mastodon 上撰写了有关 LimboAI 开发的文章:https://mastodon.gamedev.place/@limbo。
此源代码的使用受 MIT 风格许可证的约束,该许可证可以在 LICENSE 文件或 https://opensource.org/licenses/MIT 中找到
LimboAI 徽标和演示项目艺术资产已根据 Creative Commons Attribution 4.0 International 许可证获得许可,该许可证可在 https://creativecommons.org/licenses/by/4.0/ 上找到