下载 App

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

修改于2024/06/12682 浏览案例分享
这系列教程为大家带来,类幸存者游戏自定义AI的讲解(基于2024 0.3版本),大致分为小怪自定义AI,BOSS自定义AI,还有角色自身AI(没错,我给自身角色也加了AI,用AI来控制自身技能的释放
首先,幸存者类的游戏怪物一般自身都有一个被动技能(土豆兄弟,刀刀兄弟,吸血鬼幸存者等),就是碰撞到玩家会对玩家造成伤害,那么在星火里怎么实现这个功能。
我的实现是制作一个怪物通用被动技能
TapTap
在获得技能时给怪物添加一层BUFF
TapTap
BUFF每隔0.4秒检测自身周围对敌人造成伤害。
怪物的碰撞半径、碰撞伤害都可以通过公式动态获取,实现一个被动技能所有怪物通用(不同怪物的大小和碰撞伤害肯定会不同)。
这边我还修改了一个单位属性,是否该开启怪物碰撞伤害,为什么会有这个属性。比如我制作了一只野猪怪物,野猪的技能是冲锋,冲锋的伤害是100,而野猪碰撞的伤害是50,我想在野猪冲锋攻击到玩家的时候 ,只受到冲锋的伤害而不会有碰撞伤害。所以在野猪在冲锋的时候,需要关闭掉怪物碰撞伤害。等冲锋结束完, 在开启野猪的碰撞伤害。
TapTap
在是否开启怪物碰撞伤害为1的时候才执行怪物碰撞伤害逻辑
在讲解自定义AI前,建议大家去看看官方自定义AI介绍。
我们来讲解下第一种小怪的自定义AI.
如视频里第一种怪物, 这种怪物没有其他技能,只会一直追逐着玩家,然后靠着通用碰撞技能给玩家造成伤害。
让我们来解析下这种AI
AI参数表中的参数(key)解释
__ai_target :当前单位锁定的敌人,类型:单位。用于单位进行追击和攻击
TapTap
AI行为表只有三个,都是拿官方行为表进行修改
行为表:行为表在返回真的时候会停止这一轮行为树, 返回假的时候 跳过当前AI行为表,执行下一个AI行为表
1 失控 : 这个直接原封不动复制官方的就好。
2战斗中移动:这个复制官方的修改一下。先将当前单位锁定的敌人赋予目标单位然后进行一系列判断 目标单位是否不为空、AI单位是否可以移动、目标单位是否存活。
都满足的话,判断目标点和AI自身点的距离,当距离大于设定的值,且目标点没有没有碰撞,就开始移动到目标点。
TapTap
TapTap
3 搜索敌人  :
3.1先判断目标单位是否为空,有目标但是目标是无效单位 或则 目标不是敌人就清空目标。目标不为空且是有效单位等,就跳过这个AI行为表逻辑。执行下一个AI行为表。当目标为空的时候,
3.2 执行AI搜索器搜索目标。这里的默认搜索范围是单位属性搜敌范围(AI),接下来为了保险起见 ,在判断下目标是否为空。
TapTap
TapTap
这样一个无脑追你的追逐怪的AI就完成了。
这边还有一个建议,如果采用这种碰撞方式的,一般给角色添加一个受击保护机制,在受到伤害后有0.5S 或者1S的无敌或者伤害免疫时间, 这样防止怪物很多的时候一下子就被怪物创死。
下一期带来近战带技能的小怪AI,远程小怪AI。瞎鸡儿走的小怪AI,光环小怪AI。
星火编辑器-修改官方预制自定义物品信息模板截图
星火编辑器-修改官方预制自定义物品信息模板
大家对DIY物品信息显示都很热衷,但是在具体实现上还是比较费神费力的,这次的更新将会极大程度上减少开发者的困难,而且非常好用。 首先,需要将编辑器更新到10版本,这次的更新官方重构了物品提示信息面板,并在界面编辑器中加入了7个全新的页面: 我们所要修改的页面主要是【物品信息_物品信息模板】中的【物品信息】控件: 其中【上部属性面板】就是背包效果,【下部属性面板】就是装备效果 这两个不需要管它,我们
18 赞
3 回复
星火编辑器客户端物品获取属性值的方法截图
星火编辑器客户端物品获取属性值的方法
物品添加属性分两种情况 1:设置额外属性 2:添加词缀 各有各的优缺点。 本次主要讲的是添加词缀如何在客户端获取属性值。 第一种情况:词缀buff里的属性值是设置好的固定值。 这类添加给物品后,在客户端获取就很容易。 因为添加的词缀是“装备”词缀,只需要遍历指定的装备词缀列表这条语句,获取到buff_id 再直接将buff_id通过转化成(数编表:buff),再对数编表buff里的属性修改里去获取
9 赞
35 回复
00:17
类幸存者游戏自定义AI教程三之BOSS AI截图
类幸存者游戏自定义AI教程三之BOSS AI
这期带来BOSS的自定义AI,先讲解下我的项目里BOSS行动逻辑。(视频中发射红蓝法球是BOSS天赋技能,其他三个是公共技能) 1.BOSS是近战追逐玩家类型,一直追着主角自身带被动碰撞伤害。 2.BOSS拥有三个公共技能池,分为大招池, 中招池, 小招池。 每个技能池都有5个技能,使用的是公共CD,当公共CD冷却好的时候,根据随机到的值,决定是哪个技能池, 在从技能池中,随机一个技能, 如果随机
3 赞
1 回复
00:37
类幸存者游戏自定义AI教程二截图
类幸存者游戏自定义AI教程二
今天为大家讲解四种小怪自定义AI 近战带技能的小怪AI、远程小怪AI、瞎鸡儿走的攻击小怪AI,光环小怪AI 带技能的小怪有技能公共CD:这个是比较关键的点,假设野猪有两个技能:冲撞和超级冲撞(技能冷却都是1S)。野猪的公共CD是3S,那么野猪会每隔3S,寻找自身冷却好的技能数组,然后从数组中随机一个,来进行施放。 因为野猪的技能冷却都是1S,也就是当该怪物的公共CD冷却好的时候,野猪的两个技能肯
3 赞
3 回复
新版的背包存档截图
新版的背包存档
舍弃老版超长代码逻辑还不好用的背包存档。想多少个格子就多少个格子不用一个格子创建一个变量,不用写一堆繁琐重复的代码。适用性更强,支持恢复到指定格子,多背包恢复 主要实现核心围绕云变量表这个类型变量来进行处理、获取用户背包栏,循环背包栏获取指定背包栏的物品存入云变量表,然后提交。 读取的话反之也是获取的云变量赋值给云变量表,循环读取背包栏并且获取格子,在将物品放入指定格子 最后附上demo地址 h
36 赞
5 回复
「自制卡牌游戏DIY」战斗抽卡系统(2)截图
「自制卡牌游戏DIY」战斗抽卡系统(2)
#星火编辑器 #星火编辑器入门 #星火编辑器案例 在上期内容中,我们从卡牌状态的切换打开思路,将从卡池中刷新场上卡牌逻辑用触发器一步步实现,并通过洗牌的方法确保玩家从入场卡池中刷出的卡牌具有随机性。但在此之后系统还需要将抽取的卡牌替换为新卡,并为抽到的法术卡添加法术,方可将刷出卡牌的信息完备地打包给客户端以呈现给玩家,而这正是今天要做的。话不多说,来吧。 接着上期,在对卡池中未抽取的卡牌进行
2 赞
00:29
类幸存者游戏自定义AI教程四之玩家角色AI截图
类幸存者游戏自定义AI教程四之玩家角色AI
这期是自定义AI最后一期,给角色添加AI。 举个例子,我们想实现一个玩家每隔5秒向周围敌人发射火球的技能,大家可能会用周期节点或者添加BUFF来实现。 这期提供另一种解决方案, 用AI来控制角色施放特定类型的技能。 优势: 1 更方便,技能本身就是个普通的主动技能。 2 假如你有暂停游戏不暂停通讯的需求时,周期节点其实是暂停不了的。BUFF有另外一个问题执行周期的时间没办法动态修改,例如我一开始添
7 赞
2 回复
00:36
2025年6月18日更新日志&2.0版本前瞻截图
2025年6月18日更新日志&2.0版本前瞻
星火编辑器发布了新的编辑器版本:13 除部分严重BUG修复会覆盖旧版本,以下新功能均在编辑器版本13中生效 开发者可以在编辑器顶部菜单-编辑器版本中进行版本切换 字体相关【非常重要,必看】 编辑器内去除了可选的字体选项,只保留MiSans这一字体(常规+粗体共计14MB),预期这样的改动会让新用户下载的资源减少约100MB本次和字体相关的改动有如下影响: 对于13版本发布的游戏,只保留MiSans
15 赞
8 回复
Boss指示器教程二自定义计时器截图
Boss指示器教程二自定义计时器
这期继续讲解BOSS指示器。 上一期我们讲到指示器的进度用到了自定义计时器。 自定义计时器是在官方计时器基础封装了一层。 自定义计时器方法里有6个参数 总时间:整个计时器的持续时间 我的间隔:每隔多少时间执行一次周期函数 周期执行函数: 每个周期执行的函数 结束函数:计时器结束时候执行的函数。 是否立即运行一次:周期函数是否立即执行一次。 计时器集合: 用于保存计时器,方便统一管理计时器。 这边其
精华
5 赞
22:58
星火写轮眼-技能系列006-刀塔2-双头龙截图
星火写轮眼-技能系列006-刀塔2-双头龙
星火写轮眼-技能系列006-刀塔2-双头龙
2 赞
2 回复