概述

Asset Viewer 现在支持从原始节点的组合生成新碰撞节点的功能。这些节点可以通过 daBuild 流程为资产构建。

新节点可以是以下六种类型之一:

  • mesh, box, sphere: 将所选节点合并到相应的基元中。

  • k-dop (离散方向多面体):特定几何体的边界体积。生成算法使用预定义的方向包裹原始网格。导出后,碰撞类型变为 convex

    k-dop中的k代表用于生成的初始方向的数量。

  • convex computer: 在选定节点周围创建凸面形状。

  • convex v-hacd: 分解选定节点的网格,将几何体分解为多个凸节点。

    See also

    有关算法的更多信息,请参阅原始存储库: https://github.com/kmammou/v-hacd.

Asset Viewer 中的参数

在碰撞资产的属性面板中,现在会显示可用于合并的节点树。

碰撞节点面板

Collision node panel

此面板显示碰撞节点树。节点前缀指示其标志。如果一个节点由多个节点合并而成,则会显示其原始子节点。可以编辑或删除合并的节点。

创建新的节点面板

Create new node panel

创建新节点或编辑现有节点时,您可以:

  • 选择要在生成期间包含在新节点中的节点。

  • New node name 字段中,为节点分配一个唯一名称,即使它替换了流程中的子节点。

  • 启用 Replace selected nodes 复选框,以选择是否将替换所选节点。如果节点被替换,则不会导出它们。

  • 启用 Phys CollidableTraceable 复选框。

  • 从前面描述的六种类型中选择新节点的 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-dop18-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 后可见。编辑时,保存后立即显示导出的结果。

如果选择了之前导出的节点,它将恢复为其原始几何体进行编辑。如果未进行任何更改,则切换到其他资源将恢复.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: 算法使用的体素化分辨率。