概述
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 中的参数
在碰撞资产的属性面板中,现在会显示可用于合并的节点树。
碰撞节点面板
此面板显示碰撞节点树。节点前缀指示其标志。如果一个节点由多个节点合并而成,则会显示其原始子节点。可以编辑或删除合并的节点。
创建新的节点面板
创建新节点或编辑现有节点时,您可以:
选择要在生成期间包含在新节点中的节点。
在 New node name 字段中,为节点分配一个唯一名称,即使它替换了流程中的子节点。
启用 Replace selected nodes 复选框,以选择是否将替换所选节点。如果节点被替换,则不会导出它们。
启用 Phys Collidable 和 Traceable 复选框。
从前面描述的六种类型中选择新节点的 Collision type。
视区显示选项
对于
mesh,box, 和sphere类型, 结果将显示在视区中,并且可以保存。对于
k-dop,convex computer, 和convex v-hacd类型, 下一步涉及根据所选参数生成。
单击视区中的节点将在所选节点列表中高亮显示该节点。按住 Ctrl 允许选择多个节点。
k-dop 节点生成参数
选定的预设
:::{grid} 2
:::
为所选节点选择预设。以下预设可用于生成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 旋转
围绕 3 个轴旋转k-dop以更好地匹配原始网格。
k-dop 截止平面
为了进行优化,可以相对于面积最大的平面修剪小面积平面。最大 trim 值为 40%。
显示 k-dop**
k-dop可以通过多种方式显示:
绘制平面。
绘制三角形。
从中心绘制方向,并与相应的平面保持距离。
示例: 生成 18-dop.
凸面计算机节点生成参数
将在所选节点周围生成一个convex 。使用Shrink参数,壳可以向内“缩小”到选定的网格。
示例: 生成一个 convex computer
凸 v-hacd 节点生成参数
此生成方法受四个参数控制:
Convex depth: 算法的递归深度。较低的值会导致算法提前退出,从而导致凸面形状更粗糙。Max convex hulls: 算法生成的凸节点数。如果值为1,则使用convex computer来减少资产导出时间会更有效。Max verts: 单个凸节点的最大顶点数。Resolution: 体素化分辨率。值越高,生成的结果越准确,但也会增加导出时间。Note
某些参数组合可能会导致无效的几何图形。在这种情况下,无法保存结果,建议调整参数,例如,通过将 ‘分辨率’ 递增或递减一步。
示例: 生成convex v-hacd.
要保存所有更改,请按Ctrl+S。如果这是第一次保存资产的更改,则会在.dag文件旁边创建一个 .collision.blk 文件。导出的结果仅在重新启动 Asset Viewer 后可见。编辑时,保存后立即显示导出的结果。
如果选择了之前导出的节点,它将恢复为其原始几何体进行编辑。如果未进行任何更改,则切换到其他资源将恢复.collision.blk文件。
Note
如果在与冲突相关的任务期间发生崩溃,可能会导致数据丢失。
.blk中的参数
生成参数存储在nodes{}块内的.collision.blk 文件中。此块列出了所有节点及其生成参数。
通用参数
collision:t: 节点生成的碰撞类型。可能的值:meshboxspherekdopconvexComputerconvexVhacd
replaceNodes:b: 指示在生成过程中是否替换原始节点。isPhysCollidable:b,isTraceable:b: 为节点设置的标志。refNodes{}: 块中,其节点名称用作生成参考。
k-dop 参数
kdopPreset:i: 预设索引。可能的值:0: 6-dop1: 14-dop2: 18-dop3: 26-dop4: 具有固定 X 轴的 k-dop5: 具有固定 Y 轴的 k-dop6: 带固定 Z 轴的 k-dop7: 自定义 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: 算法使用的体素化分辨率。