下载 App

类幸存者游戏自定义AI教程二

修改于2024/06/13269 浏览案例分享
今天为大家讲解四种小怪自定义AI 
近战带技能的小怪AI、远程小怪AI、瞎鸡儿走的攻击小怪AI,光环小怪AI
带技能的小怪有技能公共CD:这个是比较关键的点,假设野猪有两个技能:冲撞和超级冲撞(技能冷却都是1S)。野猪的公共CD是3S,那么野猪会每隔3S,寻找自身冷却好的技能数组,然后从数组中随机一个,来进行施放。
因为野猪的技能冷却都是1S,也就是当该怪物的公共CD冷却好的时候,野猪的两个技能肯定都冷却好了。如果想让野猪普通冲撞施放的频率比超级冲撞高些,可以引入技能权重机制,这个在自定义BOSS中用到。这里相当于弱化了怪物本身的技能CD作用,大家也可以自由组合,公共CD和技能自身CD来实现更复制的BOSS机制
video-4165021
近战带技能的小怪AI以视频中野猪为例, 野猪有个冲锋的技能
TapTap
AI参数表中的参数(key)解释
__ai_target :当前单位锁定的敌人,类型:单位。用于单位进行追击和攻击
__next_skill : 单位将要释放的技能,类型:技能。用于单位释放技能
__ai_cast_timer : 技能计时器,类型:计时器。用于控制单位技能释放流程
__ai_skillatk_cd:公共CD变量 类型:布尔。用于判断公共技能CD是否冷却完成
__ai_atk_timer:公共CD计时器,类型:计时器,当公共CD进入冷却的时候,就要开启一个计时器,让公共CD变量在规定时间后,冷却完成
野猪的行为表总共有7个
施法中:这个照搬官方,如果AI单位正在施法中,停止这一轮行为树不在执行施法中下面的行为表,开启下一轮行为树。
设置技能CD:
1.获取公共CD变量是否为空,如果为空,代表着第一次执行,设置技能公共CD变量 为真,怪物可以释放技能,执行下一个行为表。
2. 如果公共CD变量不为空且满足公共CD变量为假公共CD计时器为空, 这时候相当于怪物公共CD进入了冷却阶段, 我们需要给怪物AI添加一个计时器,用来记录AI公共CD变量什么时候冷却好了。
TapTap
TapTap
给怪物添加计时器
失控节点:也是抄官方的
战斗中移动:战斗中移动和教程一的 追逐怪移动差不多, 多了个要释放的技能,要释放的技能为空才能进行移动。
TapTap
TapTap
搜敌人:这个是教程一的一样没做修改。
找到准备施放的技能:这一步比较关键,拿官方AI行为表进行修改。
1.先判断公共CD变量 是否为空,不为空则赋值给参数是否冷却完成。 判断否冷却完成,不完成就可以跳过这轮AI。接着判断单位将要释放的技能是否为空, 有的话就不需要再找技能了,跳过这个AI行为表,执行下个AI行为表。
2.然后目标单位是否为空,有目标的话就取一个技能,取技能的逻辑是先获得单位身上所有技能,遍历所有技能是否冷却时间小于等于零且为主动技能,如果满足就把该技能添加到可用的技能数组里, 当可用的技能数组大于零的时候,随机取一个技能,设置成要释放的技能。
3.接下来就是如果找到了合法技能但是因为各种原因8秒内却没有放出去就清空技能和目标,这一段直接保留官方的,删除自己不需要的地方即可。
TapTap
判断__ai_skillatk_cd是否为空,正常不会为空,因为前面设置过了。保险起见为空时在设置下
TapTap
判断冷却是否完成以及是否有施放的技能了
TapTap
取技能逻辑
TapTap
TapTap
如果找到了合法技能但是因为各种原因8秒内却没有放出去就清空技能和目标
找到技能就施放:这一步也是拿官方的进行修改,技能和目标都不为空时,让AI施放技能,如果技能施放成功就清空技能计时器单位将要释放的技能,开始下轮一AI树。
TapTap
TapTap
这样野猪的自定义AI就完成了,  当然不同项目的AI需求可能不同, 我这边是AI是不需要怪物巡逻超过追逐距离这些逻辑,所以优化掉一些不需要的AI行为表。大家可以根据需求自己定义。
然后是远程小怪AI,例如视频中的小蛇。
TapTap
远程小怪行为表也是7个,和近战不同的是战斗中移动这个行为表
远程怪的移动逻辑是,AI自身坐标和目标点的距离大于设定值的时候就追逐,小于这个值的时候就随机一个点给它移动,
剩余的就是一些判断。
稍微讲解下
1.AI和目标距离大于设置值,移动到目标点,清空随便走走的点。
2.AI和目标距离小于设置值,随机一个点赋予随便走走的点,随便走走的点不超过地图边界的话,使AI移动到随便走走的点,超地图边界则清空。
3.当随便走走的点与ai自身坐标小于10的话,清空随便走走的点。
当然还可以根据自己需要再添加一些需求, 我另外一个远程AI给小蛇加了发呆区域,例如 小蛇追逐距离是大于800时追逐目标单位,800-500之间的距离小蛇站在原地发呆,小于500的时候随便走走。
TapTap
TapTap
TapTap
TapTap
TapTap
第三种瞎鸡儿走走攻击怪,  例如视频中的火焰怪,CD好了会在地图上放火
这种怪物,不会跟随目标,就是全场瞎走,公共CD好了就放技能。
这种AI也是7个行为表,只有移动表不同,和远程怪的移动表类似,把追逐目标的逻辑去掉就行。
TapTap
TapTap
TapTap
第四种光环怪,光环怪很简单就两个行为表
TapTap
移动逻辑直接复制,瞎鸡儿走走攻击怪的移动就行
下一期为大家带来相对复杂的,BOSS的自定义AI。
星火编辑器-修改官方预制自定义物品信息模板截图
星火编辑器-修改官方预制自定义物品信息模板
大家对DIY物品信息显示都很热衷,但是在具体实现上还是比较费神费力的,这次的更新将会极大程度上减少开发者的困难,而且非常好用。 首先,需要将编辑器更新到10版本,这次的更新官方重构了物品提示信息面板,并在界面编辑器中加入了7个全新的页面: 我们所要修改的页面主要是【物品信息_物品信息模板】中的【物品信息】控件: 其中【上部属性面板】就是背包效果,【下部属性面板】就是装备效果 这两个不需要管它,我们
18 赞
3 回复
00:29
类幸存者游戏自定义AI教程四之玩家角色AI截图
类幸存者游戏自定义AI教程四之玩家角色AI
这期是自定义AI最后一期,给角色添加AI。 举个例子,我们想实现一个玩家每隔5秒向周围敌人发射火球的技能,大家可能会用周期节点或者添加BUFF来实现。 这期提供另一种解决方案, 用AI来控制角色施放特定类型的技能。 优势: 1 更方便,技能本身就是个普通的主动技能。 2 假如你有暂停游戏不暂停通讯的需求时,周期节点其实是暂停不了的。BUFF有另外一个问题执行周期的时间没办法动态修改,例如我一开始添
7 赞
2 回复
00:17
类幸存者游戏自定义AI教程三之BOSS AI截图
类幸存者游戏自定义AI教程三之BOSS AI
这期带来BOSS的自定义AI,先讲解下我的项目里BOSS行动逻辑。(视频中发射红蓝法球是BOSS天赋技能,其他三个是公共技能) 1.BOSS是近战追逐玩家类型,一直追着主角自身带被动碰撞伤害。 2.BOSS拥有三个公共技能池,分为大招池, 中招池, 小招池。 每个技能池都有5个技能,使用的是公共CD,当公共CD冷却好的时候,根据随机到的值,决定是哪个技能池, 在从技能池中,随机一个技能, 如果随机
3 赞
1 回复
2025年8月8日更新日志【13版本】截图
2025年8月8日更新日志【13版本】
星火编辑器开发团队正在全力研发基于C#的、深度整合AI能力的2.0版本 与此同时,我们也会对当前的13版本保持长期的支持 本次我们对13版本进行了更新和问题修复,相关更新已同步至外网13版本和线上13版本 流式加载Prefab 在数据编辑器-地图设置-高级属性中增加了「流失加载Prefab」功能,此功能可以显著的提升场景、资源较多的游戏的加载速度。 我们选择了部分资源非常多、场景非常大的游戏进行测
官方
22 赞
8 回复
星火三消之三连检测截图
星火三消之三连检测
上一回完成了消块实例化的显示(P2)(https://www.bilibili.com/video/BV1qLeUzKEHS?spm_id_from=333.788.recommend_more_video.0&vd_source=f9c1188016e81eabc613ade954e6d482),红框部分可以看到随机生成的消块构成了三连、四连。 为了避免这一情况我们在生成消块前加入对随机到的消块
3 赞
1 回复
00:15
类幸存者游戏自定义AI教程一截图
类幸存者游戏自定义AI教程一
这系列教程为大家带来,类幸存者游戏自定义AI的讲解(基于2024 0.3版本),大致分为小怪自定义AI,BOSS自定义AI,还有角色自身AI(没错,我给自身角色也加了AI,用AI来控制自身技能的释放) 首先,幸存者类的游戏怪物一般自身都有一个被动技能(土豆兄弟,刀刀兄弟,吸血鬼幸存者等),就是碰撞到玩家会对玩家造成伤害,那么在星火里怎么实现这个功能。 我的实现是制作一个怪物通用被动技能 怪物的碰撞
5 赞
2 回复
「自制卡牌游戏DIY」简易选英雄功能(2)截图
「自制卡牌游戏DIY」简易选英雄功能(2)
#星火编辑器 #星火编辑器入门 我正在尝试使用『星火编辑器』制作一款卡牌游戏。 接着上一期,我们来到这个功能的客户端部分。当玩家选中英雄,服务端将选中大英雄事件发送给客户端,并且在事件中将三个参数——选中的大英雄(单位)、是否已选择英雄(布尔)、已选择的英雄(单位)传给了客户端。那么我们找到上一期所创建的可附着面板,并将可附着面板中的控件在局部变量中进行声明(P2) 接着设计我们要选择的
Boss指示器教程二自定义计时器截图
Boss指示器教程二自定义计时器
这期继续讲解BOSS指示器。 上一期我们讲到指示器的进度用到了自定义计时器。 自定义计时器是在官方计时器基础封装了一层。 自定义计时器方法里有6个参数 总时间:整个计时器的持续时间 我的间隔:每隔多少时间执行一次周期函数 周期执行函数: 每个周期执行的函数 结束函数:计时器结束时候执行的函数。 是否立即运行一次:周期函数是否立即执行一次。 计时器集合: 用于保存计时器,方便统一管理计时器。 这边其
精华
5 赞
无须申请,星火编辑器现已公测开放下载截图
无须申请,星火编辑器现已公测开放下载
—————————————————— 各位关注星火编辑器的小伙伴: 感谢大家一直以来对编辑器支持! 破晓已去,曙光降临! 星火编辑器现已开启公测! · 关于下载和资格申请 现已无需申请,请去下面的官方首页直接下载! 缘起测试是星火编辑器自诞生以来第一次对外测试! 从2022年八月开始到十一月,历时三个月。 缘起之后缘聚测试,历时又七个月! 缘聚之后,破晓降临,历时又十二个月! 曾经微弱的星火现已渐
官方
324 赞
374 回复
2025年3月12日更新日志【12版本】截图
2025年3月12日更新日志【12版本】
除部分严重BUG修复会覆盖旧版本,以下新功能均在编辑器版本12中生效。 开发者可以在编辑器顶部菜单-编辑器版本中进行版本切换。 Spine动画 参加过之前开发者沙龙的开发者,应该了解Spine动画原本是星火2.0版本的规划;但是在开发过程中,我们充分评估了工作量和收益,认为此能力在当前版本支持亦是有足够价值的。 在本次更新后,界面编辑器正式支持Spine动画了。 开发者可以在「界面编辑器-组件库」
11 赞
4 回复