Rimworld Mod制作教程11 角色AI介绍JobGiver and ThinkNode

基础知识

游戏中的AI一般使用状态机或行为树来实现。状态机适用于简易的AI。Rimworld中使用的是行为树。
下面给个链接了解一下,有很多优秀教程我就不赘述了。
行为树介绍

源码分析

看了上面的链接之后相信你对行为树应该非常精通了。4种节点action(行为),composite(复合),conditional(条件),decorator(修饰符),那么,这颗树的数据在哪里呢?

在这个xml文本里,存放了人类的行为树,SubTree是则另一棵树,把某个系列的逻辑抽离出来复用。
在这里插入图片描述

ThinkNode

行为树的基类节点,一切AI的基础,可以看到主要负责中序遍历查找节点下的子节点,自身有个优先级用来控制挂在同一个父节点下的N个子节点的执行顺序。
在这里插入图片描述

行为节点JobGiver

JobGiver以及继承了JobGiver的节点,对应行为树中的action节点,是具体的行为节点。TryGiveJob是上一篇调用角色工作的api,不同的action节点最终会尝试给小人分配不同的工作。
在这里插入图片描述
再举一个下单的例子,比较简单,首先小人身上要有下蛋能力的组件,然后创建一个下蛋的工作分给小人。只要你给小人挂上下蛋组件,并且在小人的行为树里配置下蛋节点。。。那小人能下蛋也没什么稀奇的。
在这里插入图片描述

复合节点ThinkNode_Priority

ThinkNode_Priority是行为树中对应的composite类型节点。负责从子节点中按顺序找一个节点,和行为树中的sequence节点的功能比较相似。同样是composite类型节点的还有ThinkNode_Random,从子节点中随机选取节点。暂时没有在RW找到与Parallel并行节点相似功能的节点。大概小人被设定为不能同时执行两件事吧。
在这里插入图片描述

条件节点ThinkNode_Conditional

布尔值Satisfied就是是否满足条件的结果,内部有个布尔值invert控制了是否翻转,相当于做了修饰节点decorator中反转节点的效果。
在这里插入图片描述

其他节点

其他的节点基本派生自上述几个核心的节点,例如ThinkNode_ChancePerHour继承了ThinkNode_Priority,每个小时有概率从子节点中取出一个节点。时间冷却被记录在pawn的mindState中。
在这里插入图片描述

结语

大概原理就这样,有机会的话(有机会的话,当然也很有可能咕咕咕)再尝试写个简单的AI全流程。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
世界RimWorld)是一款自由度很高的沙盒游戏,玩家可以通过MOD来扩展游戏的内容和玩法。制作世界MOD需要一定的编程和美术基础,以下是一个简单的世界MOD制作教程: 1. 准备工作:首先需要下载并安装世界MOD制作工具,比如Modding Tools包。同时需要一个文本编辑器(如Notepad++)和一些图片处理软件(如Photoshop)。 2. 创建MOD文件夹:在世界Mods文件夹下创建一个新的文件夹,这将是你的MOD的根目录。 3. 编MOD描述文件:在MOD的根目录下创建一个描述文件About文件夹,里面存放MOD的一些基本信息,如作者、版本、说明等。 4. 编MOD内容:根据你的设想,可以编新增的角色、任务、建筑、装备等内容。这需要对XML和C#等语言有一定的了解,可以参考世界的官方文档和教程来进行编。同时,对于新增的角色或建筑,还需要设计对应的图片和动画。 5. 测试和优化:在制作MOD后,需要进行测试以确保MOD的正确性和稳定性。可以将MOD放到游戏的Mods文件夹下进行测试,根据测试结果进行改进。 6. 发布MOD:如果MOD通过了测试并且稳定可用,就可以考虑发布MOD了。可以将MOD上传到世界社区网站或其他MOD分享平台,供其他玩家下载和使用。 制作世界MOD是一个需要耐心和技术的过程,但可以让玩家们创造出更多有趣的游戏内容和体验。希望以上简单的教程可以帮助到对世界MOD制作感兴趣的玩家们。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值