Atoms Realtime是Atoms插件在虚幻引擎等游戏引擎中使用的许可证类型。AtomsUnreal是Atoms Crowd在虚幻引擎中的集成。AtomsUnreal是Atoms集成到虚幻引擎中的实际版本。使用户能够在他们的项目中构建人群,而不会影响显示的代理数量。
Cache Actor不使用任何Atoms许可证。
3、Agent group(AtomsUnreal)
要在虚幻中创建“Atoms Agent Group”Actor,请从模式面板中选择“放置”模式,然后选择“所有类”,然后将“Atoms Agent Group”拖放到视口中。
1)代理组属性
代理组包含多个属性,可用于自定义代理的模拟:
代理模拟名称:标识在其中模拟代理的模拟池。同一池中的代理组可以在它们之间进行通信。对于关卡内创建的所有Actor,默认值为“main”。
启用模拟:启用或禁用代理的模拟。这可以在运行时更改。
仅模拟可见代理:如果选中此属性,则仅模拟视锥体内的代理。
最大模拟距离:如果选中“仅模拟可见代理”,则仅模拟与玩家距离较近的代理。
最小屏幕高度:如果选中“仅模拟可见代理”,则仅模拟屏幕高度大于此高度的客户端。
勾选静态边界框:勾选该属性时,使用各代理类型组件的静态边界框判断是否模拟代理。
行为顺序:由组计算的行为模块的堆栈顺序。请使用“行为模块”小部件在堆栈中向上或向下移动行为。
父代理组:您可以设置在当前代理组之前计算的父代理组参与者。
查看模式:代理显示模式,请查看上面的“绘制模式”部分。
变体:在此处设置变体表资产,以便能够使用代理网格变体。
帧速率:原子使用的内部帧速率。
钳位帧速率:如果箝点时间较高,则将刻度时间钳位为1.0/帧率。
使用静态帧:选中时,代理组使用“静态帧”属性值作为输入帧时间,而不是全局场景时间。此属性可在排序器内部用于模拟特定时间和速度的代理组。
静态帧:选中“使用静态帧”属性时模拟代理的当前帧时间。
重置帧:用于重置此代理组的模拟的帧。通常在序列器内部使用,以在序列开始时重置代理组。
启用时钟周期间隔:选中时,将使用“时钟周期间隔”属性值作为间隔时间来计时参与者。
时钟周期:选中“启用时钟周期间隔”属性时用于标记参与者的时钟周期时间。
代理选择:编辑器视口中突出显示的代理的组ID列表。
启用邻居查询:如果要使用AAtomsAgentGroup::GetAgentsInRange和AAtomsAgentGroup::GetAgentIdsInRange函数来请求neghbours代理,请启用此选项。
启用内部KDTree缓存:如果选中此属性,则仅在模拟开始时构建内部kdtree。如果您的代理是静态的,这将非常有用。
每个实例元数据:这包含参与者发送到GPU的所有代理元数据的列表,这些元数据将使用ParticleColor和DynamicProperty材质节点在材质内部使用。参与者最多可以将每个代理发送到GPU的20个浮点数。元数据是交错的,因此两个向量3和一个双精度元数据使用7个浮点数。前4个浮点数发送到ParticleColor.rgba输出,而其他16个浮点数使用0到3的索引发送到DynamicProperty.rgba输出。有关详细信息,请查看教程部分。
每次逐笔更新每个实例的元数据:选中时,“每实例元数据”列表中的元数据会在每次逐笔更新时发送到GPU。
代理元数据集:包含用于创建代理集的元数据列表。如果在代理上创建一个名为“foo”的int/bool/double元数据并将其放入此列表中,则在模拟过程中,您可以使用AAtomsAgentGroup::GetAgentsInSet和AAtomsAgentGroup::GetNumAgentInSet函数获取所有foo=1的代理的列表。
刷新代理组:重新初始化代理组,清除所有内存和组件,并重建所有代理的数据和组件。这应该只在编辑器中使用。
2)英雄特工
通常,所有代理都是使用GPU的实例化功能使用单个“骨架实例化组件”绘制的。此组件可以使用很少的GPU资源和电源处理许多代理。目前,此组件有一些限制。光线追踪不可见它,也不支持变形目标。如果你想使用这些虚幻功能,你需要一个英雄特工。英雄代理是使用单个“可移动有界网格组件”的代理。此组件继承自蒙皮网格体组件,因此可以与光线跟踪或变形目标一起使用。每个英雄特工都使用自己的灵活组件。因此,如果将10个代理提升为英雄代理,代理组将添加至少10个可移动的网格组件。您可以在模拟过程中动态提升任何您想要英雄的代理,也可以动态地将您想要的任何英雄恢复为普通代理。
特工英雄:为每个晋升为英雄的特工使用可移动的有界网格组件将特工提升为英雄。在此处设置要升级的代理的组ID。
将所有代理提升为英雄:使用每个代理的可移动有界网格组件将所有代理提升为英雄。
升级代理英雄元数据:当此字段中指定的元数据为1时,将代理提升为英雄,当为0时删除主英雄。您可以使用布尔值、整数或双精度元数据。
3)绘制模式
代理组有3种不同类型的视图模式:无、外观和变体(默认)。
要查看变体,您需要先将变体资产分配给代理组(可以使用变体模块将变体分配给代理)。
当您想要将代理组保留在场景中,但又不想在玩游戏时或在编辑器中查看代理时,“无”视图模式非常有用。
4)元数据
用户在使用布局工具时可以调试每个代理的元数据值。
如果用户希望在编辑器视口中查看元数据值,则应启用“绘制元数据”。
用户还可以通过更改字体颜色、大小和偏移来定义视口中文本的外观。
最后,可以从“添加元数据”下拉菜单中选择要显示的元数据,按“添加元数据”将元数据添加到列表中。
当“仅在选定代理上”时,元数据将仅在选定代理上显示。
5)视锥剔除
用户可以启用/禁用视锥剔除和网格位置。启用后,仅将可见代理发送到GPU,这可以提高性能。
启用编辑器Lod:为代理启用编辑器中的骨架网格LOD。
启用编辑器剔除:在编辑器中启用代理视锥剔除。
启用视锥剔除和LOD:在游戏过程中启用代理骨架网格体LOD的视锥剔除。
覆盖视锥剔除FOV:覆盖视锥剔除使用的视场角。
代理最大屏幕区域:当角色在编辑器视口内计算每个代理的lod级别时,这将覆盖每个代理的屏幕区域。这在游戏中被忽略。
Atoms Realtime(RT)在虚幻引擎等游戏引擎中引入了Atoms Crowd技术。Atoms Realtime允许您在受支持的应用程序内部进行模拟,缓存显示不需要许可证。