DG开发日志3,AI篇
这几句话本来是写在后面的,但还是拎到一开始了。写了三天日志之后发现一个事情, 我作为一个策划基本没有提起写策划案的事情,对,确实没写。这游戏还是太简陋了,内容量太少,很多东西都是做之前在餐巾纸上打个草稿就开始弄了,而且也不需要给别人看或提需求。但正经组队做项目的朋友千万得有能够清晰表达设计的文档的。
下面开始说正事。做之前先简单分拆了一下ai行为,敌方是闲逛-追击-攻击,感觉跟官方文档示例差别不大,就先照抄一个官方文档里的示范。(官方文档链接:https://docs.unrealengine.com/5.0/zh-CN/behavior-tree-in-unreal-engine---quick-start-guide/)抄完,测试,没问题,我没接近时他会闲逛,看到我就会追我,追到了就说他要攻击。(毕竟这里还没做技能,就打个log意思意思)
然后基于这棵树复制了一份用于随从ai,随从的ai其实就是比敌人多个跟随主角色,就单独做了一个计算自身和主角色之间距离的服务,距离超了就跟随,没超就闲逛/追击。然后在创建角色时候根据阵营tag,运行各自行为树。把双方角色扔进场景,测了一下也没问题,第一期先这样。
但后来在持续开发中,因为各种状况改了不少东西,下面就开始说这个。
后来做攻击技能时,第一个做的是射击技能,之前追击成功再开始攻击的方式就很奇怪,就着手做个边走边攻击的效果,方法大概把释放技能做成了服务,挂在追击/跟随下面,可以让两个行为同时执行,另外在动作那边也做了上下身分离。
技能做完之后就有了角色死亡的事,发现一个大问题就是虚幻自带AI感知功能,并不会在原有刺激源被销毁时候自动更新,就直接导致一个目标被击杀后,ai会傻一会儿才会再找下一个。不会看代码,这种虚幻内置的东西也不知道怎么改,网上找了很久也没有找到好方法,就决定放弃AI感知这套东西,单独做一个。
其实这种进房间即触发战斗的情况,用AI感知还是有点没必要的,不如粗暴一点,直接根据tag取了所有敌对阵营的actor扔进一个数组,然后从中随机取一个作为目标。当这个目标死亡时触发一个事件,让所有角色去更新目标列表重新选目标。
这个修改是个治标不治本的做法,但是能适用于我现在的情况,就还行。未来角色种类丰富之后,也许还需要加一些仇恨相关的东西,到时候再说了。
后来做着做着就觉得原来的行为树结构不太优雅了,就给两棵树重新捋了捋,也干掉了一些没用的东西。最终的行为树截图我会上传,(终于有图了)但蓝图太长就不截了,如果有问题或是想看,可以留言或私信。
到这AI这块的开发过程大概就说完了,感觉比以前上班用Unity+Behaviac Designer还是方便很多的,也吃到了一些没文化的亏(不懂代码),但还好绕道解决了。
下次更新大概是角色属性以及技能,再见!
食品经营许可证 JY11105052461621
©2024 GAMECORES
评论区
共 条评论热门最新