UE AI Perception的Sense解析

UAISense的辅助结构

UAISenseEvent事件结构
  • UAISenseEvent本身更多的是充当类似于接口的功能,最关键的函数定义是GetSenseID,这个函数交由继承的子类负责实现,而子类会通过UAISense::GetSenseID(UAISense_XXX)获取全局唯一的实例SenseID,GetSenseID函数最终会调用GetDefaultObject里的SenseID,GetSenseID获取到的ID可以作为获取实例的索引,在感知系统中,通过传入的UAISenseEvent获取ID,再遍历Sense调用指定Sense的事件注册函数,转到Sense中时,会尝试转换为自身定义的事件类型,添加到事件结构里,等待Update循环遍历处理
  • 从整个执行的流程来看UAISenseEvent主要为了完成向UAISense投递数据,无论是从Sense本身,还是从感知系统,最终会把事件投递到Sense里的事件数组里,比如UAISense_HearingTArray<FAINoiseEvent> NoiseEventsUAISense_Damage里的TArray<FAIDamageEvent> RegisteredEvents
  • 感知系统里维护了三个事件相关的模板函数OnEvent``OnEventBatch``static OnEvent以及两个蓝图可调用的两个函数ReportEventstatic ReportPerceptionEvent,这些函数最终会索引到指定的Sense实例,转调Sense里的注册事件函数,与感知系统相对应,Sense类定义的同义的函数。如果有注册事件的需求,那就可以实现UAISense基类里的RegisterWrappedEvent或者对应感知系统里的事件函数,接收事件并处理即可
UAISenseConfig辅助配置结构
  • UAISenseConfig本身为UAISense提供了调试颜色,过期遗忘控制变量,开始时启动,感知名缓存,获取感知ID方法等
  • 继承自UAISenseConfig的子类充当该Listener感知Sense的参数配置,通过这些配置完成一个实例Listener的定制化需求
  • 比较典型的配置是UAISenseConfig_Sight,视觉配置的参数在AIHelpers.h里的CheckIsTargetInSightCone函数调用中使用,而该函数正是在UAISenseConfig_SightUpdate函数中被调用

UAISense各种Sense具体实现

UAISense
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UE4的AI系统提供了一套强大的工具和框架,用于开发各种类型的人工智能角色和行为。下面是UE4 AI系统的一些关键组件和功能的详细介绍: 1. AI控制器(AI Controller):AI控制器是用于管理和控制AI角色行为的类。它负责决定AI角色的移动、攻击、交互等行为。你可以在AI控制器中编写代码或使用蓝图来定义AI角色的行为逻辑。 2. 行为树(Behavior Tree):行为树是一种图形化的工具,用于描述和执行AI角色的行为逻辑。在UE4中,你可以使用行为树来定义AI角色在不同情况下应该执行的动作。行为树由一系列节点组成,包括选择(Selector)、序列(Sequence)、条件(Condition)等。你可以通过连接这些节点来创建复杂的行为逻辑。 3. 黑板(Blackboard):黑板是用于存储和共享AI角色状态信息的数据结构。每个AI控制器都有一个黑板,可以在其中存储变量和值。行为树可以使用黑板中的数据来做出决策。例如,你可以在黑板中存储目标位置、敌人信息等,并在行为树中使用这些信息来导航、攻击等。 4. 感知系统(Perception System):UE4提供了一套感知系统,用于让AI角色感知周围的环境和其他角色。感知系统包括视觉感知(Sight)、听觉感知(Hearing)和碰撞感知(Collision)。你可以使用这些感知源来检测敌人、障碍物或其他重要的游戏事件,并相应地调整AI角色的行为。 5. 导航系统(Navigation System):UE4的导航系统提供了强大的路径规划和导航功能,用于让AI角色在游戏世界中移动。导航系统可以自动生成可行走区域,并提供了一系列的路径搜索算法。你可以使用导航系统来指导AI角色在地图中寻找最佳路径、避开障碍物等。 6. AI蓝图(AI Blueprint):UE4的蓝图系统可以用于编写AI逻辑。你可以使用蓝图来定义AI角色的行为、响应事件、处理输入等。蓝图提供了一种可视化的编程环境,使得编写AI行为变得更加直观和易于理解。 除了以上提到的核心组件和功能,UE4还提供了其他一些工具和技术来增强AI的表现力和逼真度,例如动画蓝图(Animation Blueprint)、人工智能动画(AI Animation)、状态机(State Machine)等。 总的来说,UE4的AI系统提供了丰富的功能和灵活的工具,使得开发者可以轻松地创建复杂的AI角色和行为。无论是使用蓝图还是C++编程,你都可以根据游戏需求来设计和实现自己的AI系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值