初识UE5MassAI
需要避障的话就要添加Avoidance特征,这样添加好了依然不会移动,因为没有同步代理的移动(MassAgent)只移动了拥有这些特征和片段的实体(具有唯一ID的空壳),所以需要AgentOrientationSync特征同步转向和AgentMovementSync特征同步移动。想要能够移动就得有移动特征。那么有移动特征就依赖Velocity和Transform片段,没有加入该片段特征就会失败,移
1、MassAI适用于大量相同Actor在场景中进行一切活动。
概念基于ECS:参考链接https://dev.epicgames.com/documentation/zh-cn/unreal-engine/overview-of-mass-entity-in-unreal-engine
内容参考于人宅老师在b站发布的视频教程,感谢大佬讲解!
Entity:所有需要成为MassAI的actor可以当做一个实体Entity,一个具有唯一ID集合。Entity有许多Fragment构成(Composition)实际上是通过Processor处理器来操作具体逻辑。
片段(Fragment):类似于原子数据,例如Velocity,Transform,LodIndex。
Archetype 是一组拥有相同构成的实体。
Processor:处理实际Entity的逻辑。
正文开始:
要想用MassAI,首先要启用MassAI的插件:然后重启编辑器

一切的起点,基于MassEntityConfigAsset,配置项,里面可配置一个Entity可以有哪些特征(trait),以及哪些片段(Fragment)。其中有的特征会依赖于片段,否则特征会不起效,特征也会尝试添加一些必要的片段给片段配置项里。

例如 想要实体被AI控制,可以添加StateTree特征或者BehaviorTree特征,StateTree选择是MassStateTree,才能被配置,然后在里面设置AI功能。
想要能够移动就得有移动特征。那么有移动特征就依赖Velocity和Transform片段,没有加入该片段特征就会失败,移动的话就需要一个目标点,所以还需要一个MassMoveTargetFragment片段。
想要显示AI角色,那么需要CrowdVisualization(可视化)特征。该特征又依赖CrowdMember特征和MassActorFragment->代表一个Actor片段,还有MassViewerInfoFragment,MassActorFragment需要被角色蓝图捕获(具体就是蓝图添加MassAgent组件,并配置MassEntityConfigAsset),不然角色蓝图不能作为MassAI的片段。
CrowdVisualization(可视化)特征实际上有许多配置,最实用的还是基于LOD区分高模低模和静态网格体,具体配置在该特征的详细配置中。
移动特征只会单纯移动,所以要想要转向和平滑转动就需要Steering特征和SmoothOrientation特征。需要避障的话就要添加Avoidance特征,这样添加好了依然不会移动,因为没有同步代理的移动(MassAgent)只移动了拥有这些特征和片段的实体(具有唯一ID的空壳),所以需要AgentOrientationSync特征同步转向和AgentMovementSync特征同步移动。
如何通过AIStateTree去移动呢,需要有导航吧?UE5有两种支持MassAI的移动的区域,一种就是Navmesh,另一种事ZoneGraph,对应的特征代表是 Navmesh:NavmeshNavigation表示导航区域配合NavigationObstacle导航观察来寻找导航。ZongGraph:ZongGraphNavigation导航区域和ZongGraphAnnotation导航注解配合。
其中ZongGraph还有待研究。。。。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)