附加包教程:22.行为树
本帖最后由 Cat_Anchor 于 2023-2-28 18:45 编辑注:本期内容选学。
前言
上期,我们学习了字体。现在,我们来学个堪称比功能域还要冷门的内容——行为树。
https://klpbbs.com/static/image/hrline/line5.png
行为树
你可以跳过这一部分,反正下面会告诉你使用方法。
首先,我相信70%的人根本没听说过行为树。所谓行为树,是不存在于原版MC的,只存在于开发者版本的MC。首先就是一个开发者版本难倒了一大群人,而且要理解开发者命令又是个难事。虽然原版有内置的行为树,可是谁又能把行为树和开发者版本关联起来?
如果你知道行为树,那么大概有两种情况。一是查看wiki时偶然点进了开发者命令,看到有些开发者命令的描述提到了行为树;二是在MC安装包里看到了behavior_trees文件夹。
现在,我来说说行为树是什么。行为树指定了一系列特定行为,并且可以执行于玩家。比如,原版有chop_wood行为树,运行这个行为树可以撸下来一块原木。
打开行为包根目录,打开behavior_trees文件夹,这里用于存放行为树文件。写入以下代码。
{
"minecraft:behavior_tree": {
"minecraft:name": "walk", //这里的walk就是行为树的名称。
"minecraft:root": { //根
"minecraft:sequence": { //顺序执行
"children": [ //子树
{
"minecraft:move": { //一个组件。这里的minecraft:move组件意思是移动。
"desired_direction": "forward", //期望移动的方向。forward代表前方。
"max_number_of_ticks": 30 //最大移动30个游戏刻(1.5秒)。
}
}
]
}
}
}
}
行为树有很多组件可以用。以下列出了部分已知的组件。
移动
"minecraft:move":{"desired_direction":"forward","max_number_of_ticks":30}
找到方块
"minecraft:find_block":{"block_name":"log"}
破坏方块
"minecraft:break_block":{}
等待
"minecraft:wait":{"wait_duration":1}
找到实体
"minecraft:find_entity":{"entity_name":"item"}
移动到
"minecraft:move_to":{"block_pos_id":"target_pos","distance_epsilon":1.5}
攻击
"minecraft:attack":{"num_of_ticks":1}
消耗物品
"minecraft:consume_item":{}
看向...
"minecraft:look_at":{"block_pos":[-1,4,0]}
放置方块
"minecraft:place_block":{}
使用实体
"minecraft:use_entity":{}
以刻为单位等待
"minecraft:wait_ticks":{}
交互
"minecraft:interact":{}
看向实体
"minecraft:look_at_entity":{}
以上就是所有已知的组件。目前对行为树的研究很少很少,甚至根本没有。我已知的,也就只能到这里了。
https://klpbbs.com/static/image/hrline/line1.png
总结
这一期,我们学完了行为树。下一期,我们就要讲生物群系了。
第二十一期 第二十二期 第二十三期 感谢分享
页: [1]