我们能帮你什么吗?
-
2025 年 3 月更新版本 (内部版本号 7.3.0)
功能说明
创建孪生体模板
在 FactVerse Designer 中,用户可以使用两种方式来创建孪生体模板,以满足不同的需求:
定制化预设模板
虚拟工厂 DLC 内置了一些常见的模板,如工厂内的生成器、传送带、无人车等。用户可以选择这些预设模板并根据具体需求进行修改和编辑。这种方式使得创建孪生体模板变得简单而高效。
示例:定制化预设的暂存区模板
本例中将使用虚拟工厂 DLC 中的暂存区模板,创建一个定制化的暂存区模板,并修改其默认属性值。具体步骤如下:
1. 点击主页中的【打开模板】按钮。
2. 在模板选择窗口中选择“暂存区”模板,点击【打开】按钮。
3. 点击工具栏中的另存按钮 ,打开保存窗口。
4. 在保存窗口中,选择存储目录,指定模板名称,然后点击【保存】完成模板的另存。
5. 在孪生体模板窗格中,选中“存储”结构下的“货物宽度”。在右侧属性区,修改默认值为2。
6. 类似地,修改“货物长度”和“货物高度”的默认值为2。
7. 点击保存按钮 完成模板的保存。
创建全新的模板
用户可以从头开始创建全新的模板,完全自定义以适应特定场景的需求。
示例:创建一个会变色的方块模板
此示例展示如何根据方块的信号值改变方块颜色。
1. 创建方块模板:
a) 点击主页中的【新建模板】,打开模板编辑器。
b) 将工具窗格中的“立方体”拖拽到场景区中,并调整其合适位置。
c) 点击工具栏中的保存按钮 ,保存模板名称为“会变色的方块”。
2. 添加主功能结构:
a) 在孪生体模板窗格中,点击元数据旁的︙,选择添加结构。
b) 下拉滚动条找到新添加的结构 “Part_1”,点击“Part_1”,在属性区修改结构名称为“主功能”。
c) 在“主功能”结构下添加“颜色”(Color)和“信号”(Int)两个属性。
3. 绑定颜色属性的数据:
a) 在场景区中,选中方块模型。
b) 在右侧属性面板中,点击数据绑定旁的【添加】按钮,然后在属性列表中选择“颜色”属性。
c) 在颜色属性的绑定窗口中,点击,然后选择主功能结构中的“颜色”属性。
d) 点击【确定】后完成颜色数据的绑定。
e) 点击工具栏中的保存按钮 保存模板。
4. 创建监听信号改变颜色的行为树:
a) 在孪生体模板窗格中,点击行为树栏旁的︙,选择新建行为树选项。
b) 保存行为树并命名为“监听信号改变颜色”。
5. 编辑行为树逻辑:
a) 双击“监听信号改变颜色”行为树,打开行为树编辑器。
b) 在根节点下添加一个选择节点。
c) 在选择节点下添加一个顺序节点,并为这个顺序节点设置“比较两个孪生体的属性值”的条件。
“比较两个孪生体的属性值”的条件设置如下:
- 目标属性1
- 值的来源:孪生体中的属性
- 孪生体的来源:自身
- 目标属性:选择“会变色的方块”模板中的“信号”属性
- 目标属性2
- 值的来源:手动输入
- 值:1
- 比较策略:等于
- 目标属性1
d) 在顺序节点下添加一个设置属性节点,并设置这个节点的属性。
“设置属性”节点的属性如下:
- 目标属性
- 属性的来源:孪生体中的属性
- 孪生体的来源:自身
- 选择属性:选择“会变色的方块”模板中的“颜色”属性
- 数值的设置策略:替换原始值
- 目标属性
- 值
- 值的来源:手动输入
- 值:0,0,1,1
- 值
设置说明:“顺序节点1”和“设置属性1”节点的运行逻辑决定了,当方块的“信号”属性值为 1 时,方块的颜色变为RGBA(0,0,1,1) 。
e) 添加“顺序节点2”:
i. 复制粘贴“顺序节点1”,节点将自动添加到选择节点下方。
ii. 将其重命名为“顺序节点2”。
iii. 设置目标属性2中的手动输入值为“2”。
f) 在“顺序节点2”下方添加“设置属性2”节点:
i. 复制 粘贴“设置属性1”节点,节点将自动添加到“顺序节点1”下方。
ii. 将其重命名为“设置属性2”。
iii. 删除“顺序节点1”和“设置属性2”节点间的连线,重新连接“顺序节点2”和“设置属性2”节点。
iv. 修改“设置属性2”节点的值中的手动输入值为“0,1,0,1”。
g) 添加“顺序节点3”:
i. 复制粘贴“顺序节点1”,节点将自动添加到选择节点下方。
ii. 将其重命名为“顺序节点3”。
iii. 设置目标属性2中的手动输入值为“3”。
h) 在“顺序节点3”下方添加“设置属性3”节点:
i. 复制 粘贴“设置属性1”节点,节点将自动添加到“顺序节点1”下方。
ii. 将其重命名为“设置属性3”。
iii. 删除“顺序节点1”和“设置属性3”节点间的连线,重新连接“顺序节点3”和“设置属性3”节点。
iv. 修改“设置属性3”节点的值中的手动输入值为“1,0,0,1”。
i) 添加“顺序节点4”:
i. 复制粘贴“顺序节点1”,节点将自动添加到选择节点下方。
ii. 将其重命名为“顺序节点4”。
iii. 设置目标属性2中的手动输入值为“4”。
j) 在“顺序节点4”下方添加“设置属性4”节点:
i. 复制 粘贴“设置属性1”节点,节点将自动添加到“顺序节点1”下方。
ii. 将其重命名为“设置属性4”。
iii. 删除“顺序节点1”和“设置属性4”节点间的连线,重新连接“顺序节点4”和“设置属性4”节点。
iv. 修改“设置属性4”节点的值中的手动输入值为“0,1,1,1”。
下图为完整的行为树结构:
6. 保存行为树:
a) 点击工具栏中的保存按钮保存行为树。
b) 点击 < 退出行为树编辑器。
7. 保存模板:点击工具栏中的保存按钮保存模板。
8. 退出模板编辑器:点击主页按钮退出模板编辑器,完成模板的编辑。
通过以上步骤可以创建一个会变色的方块的孪生体模板。您可以使用这个模板创建方块,然后设置方块的“信号”属性值,并观察方块的颜色变化。
创建孪生体
创建孪生体是构建数字孪生场景的关键步骤。您应根据场景需求创建所需的孪生体,并将其添加到场景中进行进一步配置。
您可以选择以下两种方式创建孪生体:
- 单个创建:使用孪生体模板逐个创建所需的孪生体。
- 批量创建:通过 Excel 格式的模板批量创建和修改孪生体,灵活管理和配置。
创建单个孪生体
您可以使用孪生体模板逐个创建所需的孪生体。以下示例展示了如何使用DLC中的“原料生成器”模板来创建一个名为“生产2号”的孪生体。步骤如下:
1. 打开场景编辑器:新建场景或打开已有场景,以进入场景编辑器。
2. 新建孪生体:在场景编辑器的资源库中,点击孪生体窗格中的 按钮,打开新建孪生体窗口。
3. 填写孪生体信息:在新建孪生体窗口中,填写孪生体名称为“生产2号”,选择 DLC 中的“原料生成器”模板,并且设置孪生体的存储位置。
4. 完成创建:点击【确认】按钮,完成“生产2号”的创建。
完成上述步骤后,您已成功创建名为“生产2号”的原料生成器孪生体。接下来,可以将其添加到场景中,并进一步设置其属性和运行逻辑,以构建完整的数字孪生场景。
批量创建孪生体
您可以通过导出、填写并导入表格的方式批量创建孪生体。具体步骤如下:
1. 打开孪生体模板:在主页中,点击【打开模板】按钮以选择并打开您用来批量创建孪生体的孪生体模板。
2. 导出表格:
a) 在模板编辑器界面的菜单栏中,依次点击【文件】>【导出为表格】。
b) 在弹出的窗口中,您可以按需填写表格名称和存储路径,然后点击【保存】。
3. 填写孪生体信息:打开保存的 Excel 表格,填写孪生体信息。每个孪生体的属性内容可根据实际需要决定填写与否,按照表格中的示例格式填写,编辑完成后保存表格。
名称 | 数据类型 | 格式 | 示例 |
孪生体ID | 字符串 | 孪生体的唯一标识符 | 12345-abcde |
孪生体名称 | 字符串 | 自定义的名称 | 红色方块1 |
标识符 | 字符串 | 自定义的识别代码 | abcde-67890 |
存储路径 | 字符串 | 存储孪生体的位置路径 | /My Space |
父物体ID | 字符串 | 关联的父级孪生体的ID,若无则留空 | 12345 |
姿态位置 | vector3 | 三维坐标位置,表示孪生体在场景中的位置 | 1.0, 2.5, 0.0 |
姿态世界位置 | vector3 | 孪生体在世界坐标系中的三维坐标 | 100.0, 50.0, 0.0 |
姿态旋转 | vector3 | 孪生体的旋转角度,通常用三个轴的角度表示 | 0.0, 90.0, 0.0 |
姿态包围盒最小值 | vector3 | 孪生体包围盒的最小点坐标 | -1.0, -1.0, 0.0 |
姿态包围盒最大值 | vector3 | 孪生体包围盒的最大点坐标 | 1.0, 1.0, 2.0 |
姿态速度方向 | vector3 | 孪生体当前速度的方向向量 | 0.0, 1.0, 0.0 |
姿态速度 | double | 孪生体的移动速度,通常为浮点数 | 5.5 |
姿态是否需要沿路径移动 | bool | 布尔值,表示孪生体是否沿着设定的路径移动,True 或 False | True |
姿态当前移动路径 | path | 指定孪生体的移动路径 | 0:0,1,0|0:5,1,0 表示点 (0,1,0)和点( 5,1,0) 两个点之间的直线路径。 |
注意:若要修改已有的孪生体,在表格中必须填写该孪生体的 ID。如果要创建新的孪生体,表格中的孪生体 ID 可为空。
4. 关闭表格:在导入表格之前,请确保关闭编辑完成的表格。
5. 导入表格:
a) 点击主页按钮 返回主页。
b) 在主页中,点击【导入表格】按钮。
c) 上传步骤 3 中保存的表格,完成孪生体的批量创建。
向场景中添加孪生体
通过将孪生体放置到场景中,您可以更直观地进行布局规划、运行逻辑配置,最终构建出一个完整的数字孪生场景,从而实现虚拟与现实的连接与管理。
步骤:
- 打开或新建场景:在“场景编辑器”中,您可以选择打开一个已有的场景或新建一个场景。
- 找到要添加的孪生体:在“场景编辑器”的孪生体窗格中,浏览并找到需要添加的孪生体。
- 添加到场景:勾选要添加到当前场景中的孪生体复选框,您可以一次性选择多个孪生体。点击【添加到场景】按钮,所选孪生体将被添加到场景区中。
孪生体添加完成后,您可以进一步配置其属性、设定运行逻辑等,最终完成数字孪生场景的搭建。
路径规划
路径规划在数字孪生场景中约束孪生体的移动轨迹。它通过定义一系列关键点和它们之间的连通关系,形成了可移动范围的有向连通图。用户可以在这个图上指定移动路径,确保孪生体在场景中按照规定的路线移动。路径规划是针对整个场景而言,不同孪生体可以共享一致的导航规则。
主要内容包括:
- 关键点:在场景中标点形成的连通图的顶点。
- 连通关系:关键点之间的连通关系,包括是否可以连接以及连接的方向,形成有向连通图。
- 路径:在连通图上指定一系列的连续顶点,构成一条固定的移动路径。
构建模式
在构建模式下,您可以通过鼠标左键单击场景中任意区域创建关键点,然后移动鼠标,再次点击创建下一个关键点。两个关键点之间会以默认方向自动连接起来。
为提升路径构建效率,您可以在场景左上角设置默认构建参数,包括点位高度和连线方向。创建的关键点将采用这些默认设置。
- 点位高度:指在构建模式下新增点位的默认高度。
- 连线方向:指在构建模式中,点位与下一个连接点之间的连接方向,可选择正向、反向或双向连接。
随着在场景中构建点位,左侧窗格点位列表中会同步出现对应的点位条目,默认命名规则为「Point+Num」。
创建路径关键点后,可以进行以下操作:
- 重命名点位或删除点位。
- 选中点位时,通过右侧属性窗格的坐标输入框可精确调整点位位置数据。
- 选中两个关键点的连线时,通过点击右侧属性窗格的方向方块可切换两点间的连接方向。
选择模式
在选择模式下,您可以对场景进行拖拽操作以移动整个场景,同时还可以选中关键点并修改其位置。
创建路径的基本流程
- 在场景编辑界面中,点击工具栏中的【路径模式】按钮
进入路径规划界面。
- 在路径规划界面中,使用构建模式创建点位,点位的创建将基于默认构建高度(0)所在的平面上。
- 分别新建的两个点位之间使用默认的方向连接, 即正向从当前的点连向下一个点。
- 选择模式下,点击点位和连线可修改其位置、连线方向。
场景的导入和导出
数字孪生场景文件(.digpkg文件)包含了场景中的数字孪生体与其他数字孪生内容,如:元数据、行为树、资源,场景的路径等。用户可在主页选择导入和导出数字孪生场景。
定位编辑
在创建数字孪生场景时,FactVerse Designer 默认会在场景的 (0, 0, 0) 位置生成一个定位码。用户可以在 DataMesh One 中播放场景时,通过扫描该定位码将数字孪生场景精准地放置在物理环境中的目标位置。
FactVerse Designer 提供了定位编辑功能,允许用户根据需要修改、添加、删除定位码,或使用参考模型辅助场景编辑。
编辑定位码
编辑场景中的定位码步骤如下:
- 进入定位编辑模式:在场景编辑器中,点击工具栏中的定位模式按钮
进入定位编辑模式。
- 编辑定位码:在定位编辑模式的角色列表(当前场景中所有定位码和参考模型的列表)中,选中定位码,属性面板将显示该定位码的详细信息,包括:
- 位置:可通过修改位置参数精确调整定位码的三维空间位置。
- 旋转角度(Y):修改定位码的 Y 轴旋转角度。
- 快速方向设置:通过属性面板快速设置定位码的方向(水平或垂直)。
- 添加定位码:在未选中任何角色的情况下,点击属性面板中的【添加定位码】按钮,即可在场景中新增一个定位码。定位码将自动显示编号。每个场景最多可添加 20 个定位码。
- 删除定位码:选中不需要的定位码,在角色列表中点击删除按钮,即可移除该定位码。
添加参考模型
在数字孪生场景中,您可以使用参考模型辅助进行场景的编辑与定位。
添加参考模型步骤如下:
- 进入定位编辑模式:在场景编辑器中,点击工具栏中的定位模式按钮
进入定位编辑模式。
- 添加参考模型:将资源库里的模型拖拽至场景区域,将其作为参考模型放置在场景中,以辅助场景编辑与定位。
- 退出定位编辑模式:点击【退出】按钮退出定位模式。
- 辅助定位其他元素:使用参考模型,辅助定位场景中的其他数字孪生体或元素,以确保它们与实际物理环境对齐。
业务数据看板
业务数据看板可用于显示实时的 IoT 数据和模拟数据。用户可以在属性面板中选择数据,同时还可以设置文字颜色、字体大小和数据前缀。
以下为绑定模拟数据的一般操作:
1. 将业务数据看板工具拖入场景中。
2. 调整看板的位置和大小。
3. 选中业务数据看板,在属性区中,进行字号大小、文字颜色和对齐方式的设置。
4. 选择要显示的内容,如孪生体的属性名称。
5. 设置看板的标题。
6. 点击【+选择孪生体】。
7. 点击【+选择孪生体】后,弹出选择孪生体列表,该列表展示场景内的所有孪生体,您可以按照孪生体名称进行检索。在选择孪生体的列表中,找到要绑定的孪生体,点击选中该孪生体。
选择孪生体后,原【+选择孪生体】按钮的位置变为您选择的孪生体名称。点击该孪生体名称弹出选择孪生体列表,可以重新选择孪生体。
8. 选择孪生体后,孪生体名称下方显示孪生体的属性列表,点击选中要展示的孪生体的属性数据。
9. 点击页面右上角的播放按钮 可查看效果。
调整场景视角
在 FactVerse Designer 中,您可以通过不同的方式来调整场景的视角,以便更好地观察和编辑场景。以下是一些常用的场景视角调整方法:
- 旋转视角:按住右键可旋转整个视图,鼠标变为放大镜样式,可供用户全方位观察模型。
- 调整基准面高度:使用 Shift+鼠标左键可快捷调整基准面高度。
- 空间缩放:滚动滚轮。
- 拖拽场景:按住滚轮进行拖拽或左键点中场景区进行拖拽。
修改场景渲染环境
场景的渲染环境是指在虚拟场景中为场景设置的光照效果,用于模拟光线在场景中的传播、反射和折射现象。它可以影响物体的外观、光照和阴影效果,增强场景的真实感和逼真度。
在 FactVerse Designer 中,您可以选择系统提供的内置的渲染环境或者自定义制作场景的渲染环境,使虚拟场景更加逼真和具有沉浸感。
要修改场景的渲染环境,您可以按照以下步骤进行操作:
1. 点击设置菜单,在下拉菜单中选择更改渲染环境。这将打开更改渲染环境窗口。
2. 在更改渲染环境窗口中,您可以选择系统内置的渲染环境,当选择无时,则剧本没有特定的环境反射效果。
您也可以通过自定义渲染环境,创建适合场景的环境背景和天空效果,以适应不同场景需求和创作目的。
自定义反射环境步骤如下:
1. 准备六张图片:这些图片应该分别对应于天空盒的前、后、左、右、上和下方向。图片应该是 PNG 格式的,并且遵循英文命名规范(Front、Back、Left、Right、Top、Bottom)。
2. 将这些图片压缩成一个 zip 文件,并将其后缀名改为 .dmcm。
3. 在 DataMesh FactVerse 平台上将这个 .dmcm 文件上传到资源库中。
4. 在 FactVerse Designer中,点击设置菜单,在下拉菜单中选择更改渲染环境,打开更改渲染环境窗口。
5. 在更改渲染环境窗口中,选择自定义标签,点击选择渲染环境。
6. 在选择渲染环境的窗口中,找到已上传的 .dmcm 文件。
7. 选择文件后,点击【确认】按钮完成自定义场景的渲染环境。
播放场景录像
播放场景录像功能允许用户通过对比不同参数配置、布局或元素,或者比较多个场景之间的差异来进行场景间的横向对比。
播放场景录像的流程
1. 录制场景
a) 在FactVerse Designer 中,打开要录制的场景。
b) 点击工具栏中的录制按钮 。
c) 在录制窗口中,填写录制名称、时长并选择存储位置,点击【确认】。
d) 等待录制进度为100%时,点击【确认】完成录制。录制文件包含了场景内容数据与运行数据,仅供播放使用,不可编辑。
e) 点击主页按钮 返回主页。
2. 播放:
a) 在主页上点击【播放录像】按钮。
b) 在打开的窗口中,选择录制文件,然后点击【打开】。
c) 通过播放界面中的工具栏,进行播放或暂停、控制播放进度、调整播放速度以及退出操作。
行为树断点调试
您可以通过设置行为树断点暂停行为树遍历与场景运行,并查看此刻各行为树节点的执行状态与条件判断详情,以检查和调试行为树的逻辑。
1. 进入调试模式
a) 在“场景编辑器”中,点击工具栏中的断点调试按钮 。
b) 进入行为树调试运行模式,工具栏中会显示四个播放控制按钮:
- 单步播放:逐步执行每一个行为树节点。
- 继续播放:继续执行行为树,直到下一个断点或结束。
- 重新播放:重新播放场景。
- 退出播放:退出调试运行模式,返回正常模式。
2. 添加行为树断点
a) 选中一个孪生体:点击孪生体对象,使其处于选中状态。
b) 打开行为树面板:点击工具栏中的【行为树预览】按钮 。
c) 添加断点:在行为树面板中,选择需要调试的节点,在节点的右上角点击即可添加断点(标记为红点)。
3. 调试行为树
a) 行为树运行时,遇到断点将暂停执行,您可以点击节点右下角的条件按钮
打开该节点的条件面板,查看当前节点的执行状态和条件判断详情。条件判断通过为绿色、红色代表条件未通过。
b) 使用工具栏中的控制按钮进行单步执行或继续播放,以逐步检查行为树的逻辑和执行情况。
4. 退出调试模式:点击工具栏中的退出播放按钮 退出调试运行模式,返回场景编辑界面。
5. 修改问题节点
a) 在场景编辑器中,选择孪生体,打开其行为树,找到问题节点进行修改。
b) 进行相应修改后,重新运行调试以确保问题得到解决。
编辑场景课件
适用对象:企业中的教师用户
目标:通过 FactVerse Designer 为场景课件中的角色绑定孪生体,编辑自定义题的题目逻辑,包含触发、成功、失败条件及计分规则。
题目逻辑
1. 条件设置
条件类型 | 说明 |
触发条件 | 定义触发考题执行的条件,可基于孪生体状态、用户交互或外部事件触发。 |
成功条件 | 设定考题完成的标准,通常基于用户交互操作和孪生体状态的最终结果。 |
失败条件 | 定义考生未达成目标的情况,例如未完成任务、操作错误或发生违规。 |
示例:车辆避障训练
场景:考生驾驶车辆驶出停车场,需避免碰撞障碍物。
触发条件:
- 车辆接近出口:使用“比较距离”条件判断车辆与出口之间的距离是否小于 2m,从而触发考题。
- 车辆尚未通过出口:使用“比较两个孪生体的属性值”条件设置:车辆的通过状态标记 = 0。
成功条件:
- 车辆未发生碰撞:使用“比较两个孪生体的属性值”条件设置:车辆的“是否发生碰撞”属性= 0。
- 车辆成功驶出出口:使用“比较两个孪生体的属性值”条件设置:车辆的通过状态标记 = 1。
失败条件:
- 车辆发生碰撞:使用“比较两个孪生体的属性值”条件设置:车辆的“是否发生碰撞”属性= 1。
2. 得分规则
考生完成自定义题后,可通过以下方式计算得分:
得分类型 | 说明 |
直接得分 | 完成此题后直接获得固定分值(例如:100分) |
时间得分 | 时间得分是根据完成任务所用的时间进行计分的,且每个分数段的时间间隔至少为 2 分钟。 示例: 0-2 分钟:得分20分 2分钟以上:得分0分 |
编辑场景课件的流程
绑定课件与场景
编辑场景课件之前,必须先将课件与场景绑定。
注意:一个课件只能绑定一个场景,绑定后无法更换场景。
1. 打开目标课件
a) 在主页界面中点击【打开课件】。
b) 选择目标课件并点击【打开】。
2. 绑定场景:
a) 选择要绑定的场景,点击【打开】按钮。
b) 若无适用场景,可以点击【新建场景】创建空白场景。并根据孪生场景搭建流程进行场景设计。
为角色绑定孪生体
在 FactVerse Designer 中,为课件中的角色绑定孪生体后,该孪生体将成为该角色的指定操作对象,并适用于该角色的所有考题,考生可根据自己的角色进行考试。
示例:
- 角色 = 叉车操作员,孪生体 = 叉车 → 该操作员需要对叉车执行驾驶任务。
- 角色 = 维修工,孪生体 = 设备面板 → 维修工需要在设备面板上完成特定操作。
- 在场景区中,选中目标孪生体。
- 在属性面板中,设置扮演选中“是”,并在列表中选择孪生体要绑定的角色。
编辑自定义题
- 在左侧题目列表中,选择角色以显示该角色下的考题。
- 点击 【+ 】>【自定义题】,创建自定义题
- 若已创建,可以直接点击目标自定义题的编辑图标。
- 在创建考题窗口中依次配置条件和得分规则:
- 编辑完成后点击【完成】按钮。
模拟运行验证
- 播放场景:点击工具栏播放按钮
。
- 测试考题逻辑:
- 执行交互操作:通过点击孪生体、移动对象、修改属性等方式,模拟考题设定的条件变化。
- 观察考题触发:确认考题是否在设定的触发条件满足时正确执行。
- 验证成功/失败判定:
- 让孪生体达到成功条件,观察考题是否判定完成。
- 让孪生体达到失败条件(如模拟错误操作或违规行为),观察考题是否判定失败。
- 检查得分逻辑:观察得分是否符合设定规则(如直接得分、时间得分等)。
- 调整与优化:若发现问题,可返回编辑界面重新进行题目调整。
碰撞检测
碰撞检测在模拟中用于确保设备、工件、车辆等元素在场景中的合理性和安全性。它可以用于验证设计可行性,优化空间布局,并提升操作安全性。
应用场景
- 设计可行性验证
- 防止设计错误:通过检测设备或工件的碰撞,确保设计符合物理限制。例如,生产线上的机械臂动作是否过大,可能导致设备相互碰撞。
- 优化空间布局:帮助设计人员优化布局,确保机器、设备和通道之间的安全间距,从而减少意外发生。
- 提升操作安全性
- 模拟真实环境中的潜在风险: 通过碰撞检测,模拟操作中可能出现的碰撞,降低实际操作中的损坏或伤害风险。
- 操作路径优化:例如,模拟叉车或机器人在移动过程中,避免碰撞,规划更加合理的行驶路线。
实现流程
核心步骤:启用“参与碰撞”选项 → 添加碰撞检测结构 → 使用行为树捕捉碰撞事件 → 计数 & 输出
注意:
- 只有设置为参与碰撞的模型才能进行碰撞检测。确保两个模板(A 和 B)都启用了物理碰撞。
- 碰撞结果由添加“碰撞检测”预设结构的模板来提供,即如果需要从 B 模板获取碰撞结果,就需要在 B 模板上添加该预设结构。
- 通过行为树读取“是否发生碰撞”属性值,执行相应操作(如记录日志、计数)。
示例:小球与方块的碰撞检测
该示例模拟了一个移动物体(小球)与静止物体(方块)的碰撞情况,可用于验证物理引擎是否正确检测到碰撞并记录发生次数。
操作步骤
1. 创建会移动的小球模板:按照会移动的小球章节中的步骤创建带有移动功能的小球模板。
2. 设置小球参与物理碰撞:
- 选中小球,在属性面板中启用“参与碰撞”选项。
- 开启后,小球将在场景中参与碰撞检测。
- 未开启,小球在场景中不参与碰撞检测。
3. 保存小球模板。
4. 创建方块模板:在模板编辑器中,添加一个方块模型,并在属性面板中启用“参与碰撞”选项。
5. 添加“碰撞检测”预设结构:
- 该预设结构包含一个布尔型(bool)属性:“是否发生碰撞”。
- 值 0 = 未发生碰撞,值 1 = 发生碰撞。
6. 添加两个属性:
a) 添加结构
b) 添加属性:
属性名称 | 类型 | 默认值 | 作用 |
被撞次数 | int | 0 | 记录方块被小球撞击的次数 |
是否已计数 | bool | false(0) | 控制是否需要计数,防止重复记录 |
7. 配置行为树:
a) 创建行为树:新建行为树,命名为“碰撞检测”。
b) 编辑行为树逻辑
行为树作用:当方块发生碰撞时,记录撞击次数,并输出日志。
i. 添加选择节点:在根节点下添加一个选择节点
ii. 在选择节点下添加一个顺序节点:该节点包含多个条件,必须全部满足,才会执行子节点操作。即当发生碰撞且未计数时执行顺序节点下的子节点。
- 条件1:检查“是否发生碰撞”属性值是否为 1。
- 目标属性1:
- 孪生体中的属性:是否发生碰撞
- 目标属性2:
- 手动输入:1
- 目标属性1:
- 条件1:检查“是否发生碰撞”属性值是否为 1。
- 条件 2: 检查“是否已计数”属性值是否为 0(表示尚未记录)。
- 目标属性1:
- 孪生体中的属性:是否已计数
- 目标属性2:
- 手动输入:0
- 目标属性1:
- 条件 2: 检查“是否已计数”属性值是否为 0(表示尚未记录)。
iii. 在顺序节点下,执行加法运算(+1)
- 被加数:
- 孪生体中的属性:被撞次数
- 加数:
- 手动输入:1
- 将结果保存到目标属性:
- 孪生体中的属性:被撞次数
- 被加数:
iv. 在顺序节点下添加一个“产生记录”节点,设置要打印的内容为“发生碰撞”。
v. 设置属性,标记已计数:在顺序节点下,添加 “设置属性” 节点,将“是否已计数”设为 1(true)。
- 目标属性:
- 孪生体中的属性:是否已计数
- 值:
- 手动输入:1
- 目标属性:
vi. 重置计数状态:在选择节点下,添加另一个设置属性节点,将“是否已计数”设为 0,用于下一次检测。
- 目标属性:
- 孪生体中的属性:是否已计数
- 值:
- 手动输入:0
- 目标属性:
该节点包含两个条件,即当已计数(已经碰撞过)但当前没有碰撞时执行节点。
条件1:检查“是否发生碰撞”属性值是否为 0(表示当前没有碰撞)。
- 目标属性1:
- 孪生体中的属性:是否发生碰撞
- 目标属性2:
- 手动输入:0
- 目标属性1:
条件 2: 检查“是否已计数”属性值是否为1(表示已经碰撞过)。
- 目标属性1:
- 孪生体中的属性:是否已计数
- 目标属性2:
- 手动输入:1
- 目标属性1:
8. 完成后,保存行为树,保存方块模板。
9. 创建孪生体:新建场景,并将“移动的小球”和“方块”两个孪生体添加到场景中,将方块放置在 (0.5, 0, 0) 的位置。
10. 播放预览:打开日志台和方块的属性面板,观察当小球与方块发生碰撞时,日志台输出“发生碰撞”的信息,属性面板中方块的 “被撞次数” 属性增加 1。