33个重大版本发布
| 0.33.0 | 2021年11月3日 |
|---|---|
| 0.32.0 | 2020年7月18日 |
| 0.31.0 | 2019年6月10日 |
| 0.27.0 | 2019年2月6日 |
| 0.0.1 | 2014年12月13日 |
#1948 in 游戏开发
每月下载量 396
在 7 个 软件包中使用(直接使用 3 个)
26KB
389 行
ai_behavior

人工智能行为树
什么是人工智能行为树?
人工智能行为树是一种状态机逻辑,用于过程。
许多游戏逻辑所做的事情,例如控制人工智能角色,都符合人工智能行为树的模式。
人工智能行为树是一种非常通用的组织交互逻辑的方式。它内置了表示 运行、成功 或 失败 的过程语义。
例如,如果您有状态 A 和状态 B
- 如果
A成功,则从状态A转换到状态B:Sequence([A, B]) - 如果
A失败,则首先尝试A然后尝试B:Select([A, B]) - 当
A运行时,重复执行B:While(A, [B]) - 执行
A,B永远:While(WaitForever, [A, B]) - 等待
A和B都完成:WhenAll([A, B]) - 等待
A或B中的任何一个完成:WhenAny([A, B])
有关更多信息,请参阅 Behavior 枚举。
并行语义
该库为 AI 行为树提供并行语义。这意味着可以同时发生多个过程,逻辑可以构建在这些过程如何运行或终止的周围。
例如,While(A, [B]) 同时运行 A 和 B。如果 A 或 B 中任何一个失败,则整个 while 行为将失败。
具有并行语义的 AI 行为树的一个特性是可以外部控制终止条件,与大多数编程语言中内部控制终止条件的做法不同。
while A() {
// This inner loop will never terminate unless `B` fails.
while true {
B(); // Runs `B` forever.
}
}
// This will terminate if `A` stops running, which also stops `B`.
WhenAny([A,
While(WaitForever, [
B
])
])
依赖项
~0.5–1.2MB
~27K SLoC