【Unity】入门学习笔记180524——人工智能(6)——操控性为(2)以及编程的其他问题

本文探讨了群体智能中个体行为如何结合形成复杂群体行为,包括分离、队列和聚集等基本行为,并介绍如何利用状态机管理和组合这些行为。此外还讨论了操控力更新频率、反馈机制对群体稳定性的影响及AI角色思考速度的设计考量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、组行为的基础是分离、队列和聚集,根据实际需要,可以与前面的个体操控性为相结合,从而产生更复杂的行为。


2、而对于各个行为的管理,需要更高的决策层做出决定,这个决策层可以利用状态机来实现,如满足某一条件,执行某一行为


3、组合多个行为,最简单的方式就是直接把各个行为产生的操控力加到一起,总的操控力会反映出这些行为

同时,通过加权截断总和等方式控制最大操控力来实现相关逻辑


4、应用有模拟鸟群飞行、多AI角色障碍赛、实现动物迁徙中的跟随领队行为、排队通过狭窄通道等


5、使用Unity3D开源库UnitySteer可快速实现操控行为


6、关于操控行为编程的其他问题

①操控力的更新频率

    检测附近的邻居、计算操控力等这些步骤并不是像游戏画面和动画一样,每一帧都需要进行更新,而是按照事先先设定的更新频率进行更新。在设计系统时,对时间的把握是很关键的。

    正反馈带来振荡,而负反馈会维持群体不至于失控

    如果反馈过快,反应时间过短,那么将会引起震荡,而不是缓慢地波动。另外,过快的反馈也会导致输入数据减少,因此没有时间收集足够的数据。

    相反,如果反馈过慢,将会使系统显得很单调。

    设计系统的时候需要注意,每个正反馈都会带来潜在的不稳定因素,必须以某种方式被平衡。

②AI角色思考速度

    绝大数游戏中,动画系统和物理系统得速率是一致的,AI无需高于这个速率。对于手机游戏,由于资源有限,可能会有少量的快速动画、但较慢的整体速率,此时AI只需小于等于这个较慢的整体速率就可以了。

    让AI角色的思考速度与系统帧率相同并不是一个好的选择

    指定的更新频率可以采用“计时器”来实现,在U3d的C#脚本中,还可以用Coroutine来实现。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值