## 概述 [Asset Viewer](../asset-viewer/asset_viewer.md) 现在支持从原始节点的组合生成新碰撞节点的功能。这些节点可以通过 daBuild 流程为资产构建。 新节点可以是以下六种类型之一: - `mesh`, `box`, `sphere`: 将所选节点合并到相应的基元中。 - `k-dop` (离散方向多面体):特定几何体的边界体积。生成算法使用预定义的方向包裹原始网格。导出后,碰撞类型变为 `convex`。 `k-dop`中的`k`代表用于生成的初始方向的数量。 - `convex computer`: 在选定节点周围创建凸面形状。 - `convex v-hacd`: 分解选定节点的网格,将几何体分解为多个凸节点。 ```{seealso} 有关算法的更多信息,请参阅原始存储库: . ``` ## Asset Viewer 中的参数 在碰撞资产的属性面板中,现在会显示可用于合并的节点树。 ### 碰撞节点面板 Collision node panel 此面板显示碰撞节点树。节点前缀指示其标志。如果一个节点由多个节点合并而成,则会显示其原始子节点。可以编辑或删除合并的节点。 ### 创建新的节点面板 Create new node panel 创建新节点或编辑现有节点时,您可以: - 选择要在生成期间包含在新节点中的节点。 - 在 **New node name** 字段中,为节点分配一个唯一名称,即使它替换了流程中的子节点。 - 启用 **Replace selected nodes** 复选框,以选择是否将替换所选节点。如果节点被替换,则不会导出它们。 - 启用 **Phys Collidable** 和 **Traceable** 复选框。 - 从前面描述的六种类型中选择新节点的 **Collision type**。 ### 视区显示选项 - 对于 `mesh`, `box`, 和 `sphere` 类型, 结果将显示在视区中,并且可以保存。 - 对于 `k-dop`, `convex computer`, 和 `convex v-hacd` 类型, 下一步涉及根据所选参数生成。 Viewport display options 单击视区中的节点将在所选节点列表中高亮显示该节点。按住 `Ctrl` 允许选择多个节点。 ### k-dop 节点生成参数 **选定的预设** :::{grid} 2 k-dop node generation parameters k-dop node generation parameters ::: 为所选节点选择预设。以下预设可用于生成`k-dop`: - `6-dop`: 普通盒子。 - `14-dop`: 基本 6 个方向 + 8 个角方向。 - `18-dop`: 基本 6 个方向 + 12 个面部方向。 - `26-dop`: 结合了`14-dop` 和 `18-dop`的杆面和转角方向。 - `k-dop with fixed X-axis`: 生成围绕 X 轴具有固定分段数的 `k-dop`。 - `k-dop with fixed Y-axis`: 生成围绕 Y 轴具有固定分段数的 `k-dop`。 - `k-dop with fixed Z-axis`: 生成围绕 Z 轴具有固定分段数的 `k-dop`。 - `Custom k-dop`: 生成 `k-dop`,并在 X 轴和 Y 轴周围生成自定义数量的分段。 段数可以在 4 到 20 之间变化,增量为 1。 **k-dop 旋转** k-dop rotations 围绕 3 个轴旋转`k-dop`以更好地匹配原始网格。 **k-dop 截止平面** k-dop cut off planes 为了进行优化,可以相对于面积最大的平面修剪小面积平面。最大 trim 值为 40%。 显示 k-dop** Show k-dop `k-dop`可以通过多种方式显示: - 绘制平面。 - 绘制三角形。 - 从中心绘制方向,并与相应的平面保持距离。 **示例:** 生成 `18-dop`. Show k-dop ### 凸面计算机节点生成参数 Convex computer node generation parameters 将在所选节点周围生成一个`convex` 。使用`Shrink`参数,壳可以向内“缩小”到选定的网格。 **示例:** 生成一个 `convex computer` Convex computer node generation parameter ### 凸 v-hacd 节点生成参数 Convex v-hacd node generation parameters 此生成方法受四个参数控制: - `Convex depth`: 算法的递归深度。较低的值会导致算法提前退出,从而导致凸面形状更粗糙。 - `Max convex hulls`: 算法生成的凸节点数。如果值为 `1`,则使用`convex computer`来减少资产导出时间会更有效。 - `Max verts`: 单个凸节点的最大顶点数。 - `Resolution`: 体素化分辨率。值越高,生成的结果越准确,但也会增加导出时间。 ```{note} 某些参数组合可能会导致无效的几何图形。在这种情况下,无法保存结果,建议调整参数,例如,通过将 '分辨率' 递增或递减一步。 ``` **示例:** 生成`convex v-hacd`. Convex v-hacd node generation parameters 要保存所有更改,请按`Ctrl`+`S`。如果这是第一次保存资产的更改,则会在`.dag`文件旁边创建一个 `.collision.blk` 文件。导出的结果仅在重新启动 [Asset Viewer](../asset-viewer/asset_viewer.md) 后可见。编辑时,保存后立即显示导出的结果。 如果选择了之前导出的节点,它将恢复为其原始几何体进行编辑。如果未进行任何更改,则切换到其他资源将恢复`.collision.blk`文件。 ```{note} 如果在与冲突相关的任务期间发生崩溃,可能会导致数据丢失。 ``` ## `.blk`中的参数 生成参数存储在`nodes{}`块内的`.collision.blk` 文件中。此块列出了所有节点及其生成参数。 ### 通用参数 - `collision:t`: 节点生成的碰撞类型。可能的值: - **`mesh`** - **`box`** - **`sphere`** - **`kdop`** - **`convexComputer`** - **`convexVhacd`** - `replaceNodes:b`: 指示在生成过程中是否替换原始节点。 - `isPhysCollidable:b`, `isTraceable:b`: 为节点设置的标志。 - `refNodes{}`: 块中,其节点名称用作生成参考。 ### k-dop 参数 - `kdopPreset:i`: 预设索引。可能的值: - **`0`**: 6-dop - **`1`**: 14-dop - **`2`**: 18-dop - **`3`**: 26-dop - **`4`**: 具有固定 X 轴的 k-dop - **`5`**: 具有固定 Y 轴的 k-dop - **`6`**: 带固定 Z 轴的 k-dop - **`7`**: 自定义 k-dop - `kdopSegmentsX:i`, `kdopSegmentsY:i`: 段数。 - `kdopRotX:i`, `kdopRotY:i`, `kdopRotZ:i`: 绕轴旋转(以度为单位)。 - `cutOffThreshold:r`: 最大平面区域的修剪百分比。 ### Convex Computer 参数 - `shrink:r`: amount 将壳向内收缩至所选网格。 ### Convex v-hacd 参数 - `convexDepth:i`: 算法的递归深度。 - `maxConvexHulls:i`: 生成的凸节点数。 - `maxConvexVerts:i`: 单个凸节点的最大顶点数。 - `convexResolution:i`: 算法使用的体素化分辨率。