找回密码
 立即注册
查看: 264|回复: 6

流程图模式的unity状态机设计

[复制链接]
发表于 2023-3-10 22:08 | 显示全部楼层 |阅读模式
不仅在图形领域,喜欢造各种轮子。在之前的十多年程序工作中也造了很多千奇百怪的轮子,因为都是一些自己脑洞的事物,所以取名上特别困难和别扭。这个小东西就先这样叫吧。最近整理旧资料的时候又看到他 就想着开源分享出来,对于如何设计这样一套工具,如何设计接口 泛型 也可以给萌新们一个参考。当时我作为技术负责人采用这套的项目长这样
为什么要造这么个东西
为了直观,和简易,状态机也简易所以主要是为了直观。
关于行为树/决策树
之前项目中,开发过行为树/决策树 。他是无比强大的,在我看来他具备完整的编程能力,与、或、非、 循环、引用等都有,而一般自己开发的行为树还会轻易扩展出switch randomswitch等节点。就是 手写代码的另一种组织形式,有点像ue4的蓝图对于c++,我用了几个项目后更加确信他的灵活强大与扩展性,但是 他真的不直观,策划上手需要1周起,而且也没理解透 经常出问题,只能模仿程序搭建好的模板小修改。因为他是完整程序思想,当然不可能21天精通xx语言。所以在做复杂度比较小 搭配组合比较多的AI项目时,比如回合制怪物出招AI。我就不太愿意采用行为树/决策树。
关于状态机
状态机用过unity 与ue4的 动画状态机,用这个来做ai 感觉上有点弱,而且他条件都是隐藏在连线属性中的 ,看起来比较不直观。但他易用性很高。
流程图思路
我当时的思考是 什么是直观,是比代码直观?当然是流程图,因为在学校学习他 或他存在的意义正是如此,那么可否基于流程图原理做ai决策呢?当时尝试后发现是可以的,每个节点只有2条线流出,ture和false。根据 不同的结果 走不同的路径。
我这里做了制作了2个Demo,用来简单解释下。但在demo之前,先看下 我之前项目用上后的游戏效果。做蝎子的各种漫游 惊吓后逃离,冲刺后减缓 ,最后保持一点时候后又回到漫游的效果。当年的手游(2014年)性能要求比较高,一般这种类型游戏,都是索区域分批刷怪来战斗,同时存在的怪物一般8个以内(永恒战士系列 地牢猎手系列 都是如此),所以我自己写了这套。因为已经吹了 可以跑200只,小动物,虽然比怪简单 但 大量的动作大量的独立ai 的性能开销,要做到如图流畅 还是有一点技术难度。


当时这个工具配置截图,不一定版本是正确的。大概这样子。第二张是小怪战斗AI配置。



蝎子行为AI



小怪战斗AI

Demo1:打豆豆
网上找到一个 比较 行为树和状态机文章,用了这个例子 。AI逻辑实现-取舍行为树还是状态机 我就用这套也跑一下,刚好对比。



打豆豆 状态机



打豆豆 行为树

作为程序 平心而论 这个例子,行为树最直观(因我习惯程序逻辑)。状态机的线 我是感觉没 流程图模式 来的明确。



打豆豆 流程图模式

Demo2:怪物随机技能
一个小回合项目的怪物小AI,每次随机 咆哮 普攻 攻击+防御 3个技能。但是其中 咆哮 和普攻 不能连续出现。攻击+防御 可连续出现。这种参数都只提供一行 类似dos的命令行模式。





随机跳转参数配置规则

一点最后小感想,发现程序技术的分享比图形技术的分享,少很多。有一种什么都不值得说的感觉。这种小功能现在工作2年的程序都能轻易实现。自己写出来有种莫名的羞耻感(因为太简单,脑补很多 编程20年就这....的问好出现)。最后工程开源,运行时那些类感觉自己设计的结构挺优美的 解耦度也刚刚好。editor工具类就没太优化了。
github 工程

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2023-3-10 22:15 | 显示全部楼层
这种实际就是图形化编程,  也许有很多优点,  但为什么不让策划去学习如何写脚本语言呢.
发表于 2023-3-10 22:21 | 显示全部楼层
是啊 还是结合lua 一劳永逸 但还是强大而不直观 受ue影响 感觉逻辑用程序clip 组织用图 更好些
发表于 2023-3-10 22:28 | 显示全部楼层
那个……nodecanvas,flowcanvas这俩看看?
发表于 2023-3-10 22:31 | 显示全部楼层
看了 很像ue蓝图 不是流程图 true false原理
发表于 2023-3-10 22:32 | 显示全部楼层
这两个工具和unity收购的bolt差不多。Bolt是有状态机模式和流程图模式。
发表于 2023-3-10 22:36 | 显示全部楼层
学习下bolt 完成度高很多 多谢  不过还是完全不同的设计想法
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 17:41 , Processed in 0.096235 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表