UE miarmy插件创建群集


【1】准备工作

0.官网文档:https://basefount.feishu.cn/wiki/XTyhw04UXiuZ1Ikvdyac79oJnjc

1.官网下载MiarmyForUnreal插件:https://ue.miarmy.com/zh-Hans/

2.将插件解压到项目或引擎Plugins目录

3.测试插件是否可用:菜单栏-Miarmy-Miarmy Ready!,并查看关卡内是否生成了MiarmyGlobalActorSet对象。

4.虚幻商城下载资源插件并添加到项目:BattleWizardPolyart

【2】基础设置

1.选择MiarmyGloabActorSet物体,找到Global Settings-Miarmy Global Frame帧设置,填写500。即群集的解算最大帧,超过则不解算。

【3】创建代理及动画处理(骨骼网格体)

1.选择UE工程的 02文件夹,菜单栏-Miarmy-Create Original Agent(Mass AI),会在文件夹下生成MassAI_Agent蓝图类对象。

2.双击打开该蓝图:切花到Viewport视口,选择骨骼网格体组件,为其Mesh-SkeletalMeshAsset指定骨骼网格体资源。调整朝向和位置。

3.选中刚才的骨骼网格体资源对象-右键-为其创建动画蓝图:Create-Anim Blueprint。将其指定给步骤2中,骨骼网格体组件的Animation-AnimClass属性。

4.双击打开动画蓝图:

​ 4.1.修改其父类为:MiarmyAnimInstance。

​ 4.2.动画图表中,右键-创建Miarmy AnimSequence Group Node节点,将其连接到Output Pose节点。

​ 4.3.在步骤4.2节点的Play Anim Name属性上右键-Binding选择MiarmyPlayAnim

​ 在步骤4.2节点的Play Anim Speed属性上右键-Binding选择MiarmyPlaySpeed

​ 4.4.选择步骤4.2节点,在其细节面板中的Entries数组中添加2个数组。分别为连个数组项指定Idle01Anim和WalkForwardAnim动画资源。

​ 4.5.编译,保存。

5.将步骤1中创建的对象代理拖拽到关卡中,运行,查看效果。

【4】创建代理及动画处理(静态网格体)——顶点材质动画

1.选择一个骨骼网格体,双击打开,在其细节面板定位到其材质球资源位置,双击打开其材质球编辑器。

2.在其材质编辑器中:

​ 2.1.新建材质节点:MakeMaterialAttributes

​ 2.2.将原有材质属性连接到新节点

​ 2.3.将原有StandardPolyartMat节点的属性Use Material Attributes进行勾选,并将步骤2.1的新节点连接到本节点。

​ 2.4.应用,保存,不要关闭该编辑器,下一步要往里面粘贴顶点材质节点。

3.打开顶点动画工具:

​ 3.1.菜单-Miarmy-Open Vertex Texture Wight

​ 3.2.点击该界面的第一个按钮:[Copy Vertex Texture Shader]

​ 3.3.打开步骤2.4界面,快捷键Ctrl + V,将顶点材质节点粘贴到该材质球。放在新属性节点和旧属性节点之间。并重新连接属性(首尾默认连接即可,另需将新节点连接到Switch顶点节点的False属性)。

​ 3.4.材质编辑器界面下,应用,保存。

​ 3.5.切换到顶点动画工具:

​ 3.5.1.将骨骼网格体资源拖拽到Skeletal Mesh插槽。

​ 3.5.2.在内容浏览器,选中骨骼网格体-右键-Create-Anim Composite-命名,创建动画合成对象,双击打开:将需要用到的动画片段拖拽到其合成面板。保存。

​ 3.5.3.将动画合成对象拖拽到Anim Composite插槽。

​ 3.5.4.在内容浏览器,选择一个合适的目标目录( 03文件夹)。然后,在该界面点击按钮[Create Vertex Texture],会在目标目录创建顶点动画相关资源。

​ 3.5.5. 然后,在该界面点击按钮[Create Vertex Texture],等待计算完成。

​ 3.5.6.将步骤3.5.4中生成的骨骼网格体拖拽到关卡,查看动画效果。

【5】配置数据资产

1.选择UE工程的 04文件夹,创建AI实体特性资产:菜单-Miarmy-Create Entity Trait

  1. ,创建Miarmy逻辑相关资产:空白位置-右键-Miscellaneous-Data Asset-DecisionPrimaryDataAsset-命名

【模式一:静态网格体】

3.双击打卡步骤1创建的资产,在Traits-Index[0]处,向静态网格体Meshes数组添加一个项,选择步骤3.5.4创建的静态顶点动画网格体。

​ ,在Traits-Index[1]处,将Miarmy Play Action Type属性修改为:Static Mesh。

​ 将Anim Composite属性指认为步骤3.5.4生成的动画合成资产。

​ 将Entity Desision属性指认为步骤2创建的数据资产。

  1. 保存。

【模式二:骨骼网格体】

3.双击打开步骤1创建的资产,在Traits-Index[0]处,向High Res Template Actor属性指认步骤3.1创建的代理资产。

​ ,在Traits-Index[1]处,将Miarmy Play Action Type属性修改为:Skeletal Mesh。

​ 将Entity Desision属性指认为步骤2创建的数据资产。

4.保存。

【6】放置节点简介

1.选择UE工程的 05文件夹,菜单-Miarmy-Create Placement Node-命名。

2.将步骤5.1创建的资产复制到 05文件夹,重名为DA_SK_Mesh,即为MassAI骨骼网格体资产;

​ 再复制一个,重名为DA_ST_Mesh,即为MassAI静态网格体资产。

步骤5.2创建的资产复制到 05文件夹,指认给DA_ST_Mesh,确保SK、ST分别拥有自己的逻辑资产。

3.将步骤1资产拖拽到关卡内,在其详情面板的Original Agent组:

​ 属性Original Agent数组添加2项,分别将DA_SK_Mesh(设置为绿色)、DA_ST_Mesh(设置为红色)拖拽进插槽。

​ 属性Generator Instance:选择This Miarmy Placement Location。

​ 属性Row:10

​ 属性Column:10

​ 属性Distance:100

​ 属性Origin Agent Percent:调整占比

4.预览分布效果,Save All,运行,查看实际效果。

【7】更多放置节点

1.将步骤6.1创建的资产,再次拖拽进关卡。

2.在其详情面板的Place Type属性:3D-Box 默认盒子

​ Circle 圆形

​ Custom 自定义

​ Triangle三角形

​ Arrow 箭头

【8】代理缩放属性

ScaleMin

ScaleMax

【9】移动逻辑

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Movement

​ Movement Type:ForwardOrBackward

​ Movement Mode:LocationOffset

​ Speed:2.0

3.保存,运行,查看效果。

【10】旋转逻辑

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Rotate

​ Rotate or Roll Type:LeftOrRight

​ Speed:2.0

3.保存,运行,查看效果。

【11】地面逻辑

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Movement

​ Movement Type:ForwardOrBackward

​ Movement Mode:LocationOffset

​ Speed:2.0

3.添加Miarmy Decisions数组元素:

​ Index[1]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Terrain Logic

​ Miarmy Terrain Type:Match of terrain

​ Match Rotation:勾选的话,角色会相对垂直于地面。否则保持直立状态。

​ Speed:2.0

3.保存,运行,查看效果。

【12】动画逻辑

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Action Playback

​ Miarmy Action Playback Type:play action??

​ Play Action by Name:【ST】填写实际动画合成资产内某个动画片段的名称即可 【SK】对应骨骼动画蓝图内实际动画片段的名称即可

​ 添加子项:Index[1]:选择Action Playback

​ Miarmy Action Playback Type:change actions playback speed??

​ Appoint Action Speed:默认不勾选

​ Speed:1.0

​ 【随机动画片段】:

​ 添加子项:Index[0]:选择Action Playback

​ Miarmy Action Playback Type:play action??|??

​ Play Action by Names:

​ 动画片段名称1

​ 动画片段名称2

​ 动画片段名称3

​ 【随机动画速率】:

​ 添加子项:Index[1]:选择Action Playback

​ Miarmy Action Playback Type:random actions playback speed(??.??)

​ Appoint Action Speed:默认不勾选

​ Min Value:0.1

​ Max Value:2.0

3.保存,运行,查看效果。

【13】材质逻辑

略(静态不支持)

【14】场景信息逻辑

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ 添加子项:Index[0]:选择SceneInfo

​ Scene Info Mode:current frame from ??to??

​ Min Value:0.0

​ Max Value:50.0

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Movement

​ Movement Type:ForwardOrBackward

​ Movement Mode:LocationOffset

​ Speed:2.0

【15】ID逻辑

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ 添加子项:Index[0]:选择NoiseID

​ Noise IDMode:rand float based on my id from ??to??

​ Min Value:0.0

​ Max Value:50.0

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Movement

​ Movement Type:ForwardOrBackward

​ Movement Mode:LocationOffset

​ Speed:2.0

​ Index[1]

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Show Attribue————————————————–>选择单个角色,可查看器属性信息,否则看不到。

【16】盒体逻辑

1.创建盒体:菜单-Miarmy-Create Bound-命名。

2.将其拖拽到关卡内,在其详情面板,调整Box Extent属性,调整其所在区域大小。

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ 添加子项:Index[0]:选择Bound

​ Bound Mode:I’m in bound

​ Is Bound:默认勾选,仅对盒内物体有作用 或不勾选,但需要填写Bound Id

​ Update Runtime Bound Box:默认不勾选,

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Movement

​ Movement Type:ForwardOrBackward

​ Movement Mode:LocationOffset

​ Speed:2.0

【17】球体逻辑

1.创建球体:菜单-Miarmy-Create Spot-命名。

2.将其拖拽到关卡内。

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Spot Logic

​ Miarmy Spot Type:Follow Spot

​ Miarmy Spot Find Type:Appoint

​ Identify Spots:选择关卡内对应Spot对象

​ Is Distance:默认不勾选,勾选话,需要设定影响距离。

​ Speed:0.5

​ Index[1]:

​ Input Decision:条件逻辑

​ 添加子项:Index[0]:选择Spot

​ Spot Mode:spot to me distance<??

​ Spots:选择关卡内对应的Spot对象

​ Distance:1000.0

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Movement

​ Movement Type:ForwardOrBackward

​ Movement Mode:LocationOffset

​ Speed:2.0

【18】道路逻辑

1.创建球体:菜单-Miarmy-Create Road-命名。

2.将其拖拽到关卡内。实际上其为两条样条线,选中样条点进行拖拽移动位置,Alt + 拖拽:会创建新的样条点。分别调整两条样条线,形成一条路。

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Road Logic

​ Miarmy Road Type:follow road

​ Is ID:默认不勾选

​ Speed:0.5

​ Boundary Detection Range:0.25

​ Boundary Correction Speed:0.5

​ Angular Reversal:默认不勾选,勾选话,在道路边界处朝向路中线偏移。

​ Index[1]:

​ Input Decision:条件逻辑

​ 添加子项:Index[0]:选择Road

​ Road Mode:I’m in Road

​ Is Road:默认勾选

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Movement

​ Movement Type:ForwardOrBackward

​ Movement Mode:LocationOffset

​ Speed:2.0

【19】HP逻辑

1.选择关卡内的MiarmyPlacement对象,在其详情面板找到HPMin、HPMax属性。

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Show Attribue————————————————–>选择单个角色,可查看器属性信息,否则看不到。

​ Index[1]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择HP and MP

​ Miarmy HPMPType:set hp value ??

​ Value:200.0

​ Index[2]:

​ Input Decision:条件逻辑

​ 添加子项:Index[0]:选择HP

​ HPMode:my HP from ?? to ??

​ Min Value:150.0

​ Max Value:250.0

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Movement

​ Movement Type:ForwardOrBackward

​ Movement Mode:LocationOffset

​ Speed:2.0

【20】跟随节点逻辑

1.选择关卡内的MiarmyPlacement对象,复制命名为MiarmyPlacement2,移动其位置并修改其属性Miarmy Simulate Type:Target,及其朝向设置。

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Placement

​ Miarmy Follow Placement Type:follow placement ?? and direct follow distance??speed??

​ Appoint Placement:选择关卡内的MiarmyPlacement2对象,即需要跟随的目标

​ Location Speed:0.25

​ Rotater Speed:0.25

​ Placement Target Rotator:默认不勾选,勾选的话,会跟随2的旋转。

​ Only Rotator:默认不勾选,勾选话,不移动只跟随旋转。

【21】避让逻辑

1.选择关卡内的MiarmyGlobalActorSet对象,在其详情面板下选择其RVOComponent组件,可设置寻路相关属性。

2.选择关卡内的MiarmyPlacement对象,修改其Orient Random为360,即随机角度。

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Avoid Agent

​ Miarmy Avoid Type:avoid near agents by turn and slow action

​ Speed:0.1

​ Transform Location:默认不勾选;勾选的话,并设定位移偏移距离

​ Index[1]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Movement

​ Movement Type:ForwardOrBackward

​ Movement Mode:LocationOffset

​ Speed:2.0

3.保存,运行,查看效果

【22】动力学逻辑

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Dynamics————————————————–>目前,仅支持骨骼网格体的空气动力学(需要物理模拟资产等支持)。

​ Miarmy Dynamics Type:EnableDynamics

【23】随机种子属性

1.选择关卡内的MiarmyPlacement对象,修改其Seed Setting属性。能够确保修改Noise属性值时,不同对象的随机结果是不一致的。

【24】特效逻辑

1.选中并双击打开步骤5.2和步骤6.2创建的逻辑资产。

2.添加Miarmy Decisions数组元素:

​ Index[0]:

​ Input Decision:条件逻辑

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Movement

​ Movement Type:ForwardOrBackward

​ Movement Mode:LocationOffset

​ Speed:2.0

​ Index[1]:

​ Input Decision:条件逻辑

​ 添加子项:Index[0]:选择Bound

​ Bound Mode:I’m in bound

​ Is Bound:默认勾选,仅对盒内物体有作用 或不勾选,但需要填写Bound Id

​ Output Decision:执行逻辑

​ 添加子项:Index[0]:选择Spawn VFX

​ Miarmy VFXType:Particle

​ Bound Box:50.0 50.0 50.0

​ VFXScale:1.0

​ Spawn Offset:0.0 0.0 0.0

​ Particle Asset:选择特效资产

【25】蓝图拓展

1.小球跟随角色:将Miarmy小球拖拽进关卡内,打开其蓝图编辑器,关闭其Collision Presets:NoCollision,然后添加蓝图逻辑:Event Tick -> SetActorLocation

​ GetPlayerCharacter->GetActorLocation->

​ ->GetActorForwardVector->

2.盒子根数角色:逻辑同上。


评论
  目录