Dagor Max 工具
概述
3ds Max 包含几个 Dagor 工具,这些工具对我们的工作流程特别有用。
Dagor Scene Export: 用于导出资源、动画等的工具。
Dagor Utility: 用于程序模型调整的工具。
连接工具
这些工具位于以下位置: .../tools/dagor_cdk/windows-x86_64/plugins-3dsMax.
连接它们的过程类似于 3ds Max 中的其他第三方插件:
转到 Customize > Configure User and System Paths.
选择 3rd Party Plugins 选项卡,然后使用 Add 按钮添加工具的路径。
Let’s take a closer look at these tools.
Dagor 场景导出
Dagor 场景导出工具用于导出资产,特别是用于将场景保存为 .dag 文件。这是感兴趣的主要功能。
Dagor 场景导出器
Dagor Scene Exporter 界面中的按钮具有以下功能:
Export DAG: 将场景导出到
.dag文件中。Export Parameter Buttons:
hid: 导出场景中的隐藏对象(如果未启用 sel 按钮)。
sel: 仅导出 Viewport 中的选定资源。
mesh: 导出几何体。
lt: 导出光源。
cam: 导出摄像机。
hlp: 导出辅助函数。
no vnorm: 在导出期间重置顶点法线。这不会改变模型本身,但会在导出时重置法线。 建议直接在模型上调整法线,以避免将来出现问题。有关更多详细信息,请参阅 无VNorm和优化 部分。
mat: 导出材质。
mopt: 在导出过程中优化材质(删除未分配给任何几何体的材质)。
spl: 导出样条曲线。
Note
这些参数现在附带工具提示,可提供其他说明。
在典型的资源工作流程中,以下按钮最常用:
sel: 请谨慎使用,因为它可以准确确定将导出的内容。
mesh: 在导出几何体时始终使用。
mat: 在导出包含材质的几何体时始终使用。
mopt: 始终用于优化材质。
Export Mode
Export Mode 部分内容广泛,值得详细解释。上述描述适用于标准导出模式,但其他模式也可用于批量导出。“标准”以外的模式用于一次导出多个文件。您无需指定文件路径,而是指定目录路径,文件名是从场景中派生的。
Objects as dags: 顾名思义,此模式将每个对象导出为单独的
.dag文件。文件名取自对象的名称,轴是本地的 - 取自对象,而不是场景中心。这意味着即使对象在场景中偏移或缩放,它也将以其原始状态导出,就像rotation=location=[0,0,0]和scale=[1,1,1]一样。要在此模式下将多个对象导出到单个
.dag文件中,请将对象分组。该组将被视为单个对象。Important
创建组时,3ds Max 会自动将其轴位置设置为组边界框的中心。这可能会导致枢轴偏移,即使所有组件的枢轴都按预期对齐。为避免这种情况,您必须手动调整分组和导出之间的枢轴位置:
此模式下的导出参数的功能与标准导出中的参数完全相同 - 您可以排除隐藏对象、导出所有内容或仅导出选定项目等。
Layers as dags: 此模式将图层保存为单独的 ‘
.dag’ 文件。’hid’ 和 ‘sel’ 参数在这里的行为略有不同,因为它们应用于图层而不是单个对象。Export Rules:
将仅导出层次结构底部的图层(没有嵌套图层的图层)。如果图层不包含与导出参数匹配的对象,则不会创建空的
.dag文件。default图层永远不会被导出,因为你不太可能需要一个default.dag。但是,default中的嵌套图层将被选中,如果它们满足指定条件,则将被导出。如果
sel=True,则仅检查当前图层(在 Scene Explorer 中由不同的图标颜色表示)及其嵌套图层。如果sel=False,则检查场景中的所有图层。如果
hid=True,则将导出隐藏的对象和图层。如果hid=False,则不会导出隐藏的图层,并且会排除隐藏的对象。
例如,在上图中,当前图层为asset_a.lods。如果sel=True ,则仅检查此图层及其子图层,而asset_b.lods 和 asset_c.lods及其内容将被忽略。
当前图层包含子图层,因此不会被导出。
子图层
asset_a.lod00没有进一步的嵌套图层,但它有两个可见节点。无论hid设置如何,它都会导出为asset_a.lod00.dag。asset_a.lod01图层没有嵌套图层,但有一个节点是隐藏的。如果hid=True,则asset_a.lod01.dag将导出,其中两个节点都在里面;如果hid=False,则只会导出axis.lod01节点。仅当
hid=True时,asset_a.lod02图层才会导出为asset_a.lod02.dag,因为它是隐藏的。asset_a.lod03图层将永远不会被导出,因为它不包含任何节点,因此可见性无关紧要。
当使用一组资源而不是单个资源时,此方法特别有用。例如,通过将图层asset_[a,b,c].lods分组到一个名为assets的通用图层中并使其激活(或者简单地激活上面所示的 default 图层,或设置 sel=False),你只需单击一下即可重新导出包含所有 LOD(细节级别)的整个包。
无 VNorm 和优化
导出对象时,如果未分配自定义法线,则即使未启用 no vnorm 选项,导出对象时也将不包含自定义法线。
但是,与“.max”文件不同,“.dag”文件不能只存储对象顶点的一部分的自定义法线,而要根据平滑组计算其余部分。如果对象中的一个顶点具有自定义法线,则 ‘.dag’ 文件将存储所有顶点的值。
示例 1:角色模型和具有加权法线的斜面立方体,其中立方体是一个单独的对象。
导出时,仅保留立方体的自定义法线,因为角色模型没有分配自定义法线。
重新导入后,我们可以看到角色模型缺少自定义法线(法线在 Edit Normals 修改器中显示为蓝色)。
“.dag”文件大小为 75 KB。
示例 2:在导出之前,角色模型和立方体已一起附加到单个对象中。
在导出过程中,将为每个顶点保存自定义法线,而不仅仅是属于立方体的顶点。
重新导入后,角色模型上的所有矢量都显示为“绿化”,即使它们在导出前最初看起来与上一个图像相似。
“.dag”文件大小为 166 KB。
因此,如果您需要使用自定义法线调整着色,建议在应用自定义法线之前 分离 模型的可编辑部分。这样,“.dag”文件在导出后的大小不会显著增加。请务必在导出后通过重新导入来检查是否出现任何不必要的法线。
指定自定义法线后,即使通过 Edit Normals 修改器重置它们或将对象附加到新法线也不会完全删除它们。唯一可靠的解决方法是将对象导出到 no vnorm 的 ‘.dag’ 文件,删除原始文件,然后重新导入清理后的文件。这可确保删除对自定义法线的所有引用,并且导出行为将恢复正常。
重新导入后,应用 Dagor Utilities > Materials > Collapse Materials 以防止材料被拆分为两个具有相同名称的副本。
Export Log
Export Log 记录每个导出作的结果。
如果您遇到任何导出错误,请不要忽略它们。检查日志以确定场景中的哪些对象导致了问题。常见错误包括:
存在退化三角形。
存在未平滑的三角形。
几何体太大。
分配的非 Dagor 材料。
日志现在显示在一个单独的、可调整大小的窗口中,并且只有在检测到错误时才会在导出期间自动打开。如果没有警告,则会记录导出信息,但不会弹出日志窗口。因此,如果日志在导出后打开,请仔细阅读它并解决任何问题。要查看有关最近导出的信息,您可以通过单击 (Re)open Log 按钮手动打开日志。如果日志窗口已经打开,单击该按钮会将其大小和位置重置为默认值,这在日志意外调整到屏幕之外或移出屏幕时非常有用。
Dagor 实用程序
Dagor Utility 工具专为模型的自动校正和优化而设计。以下是您可能会使用的主要功能:
Important
所有这些功能仅在 Editable Mesh 模式下工作。
Remove degenerates: 此功能可删除退化三角形,这些三角形是边位于同一平面上的三角形。如果在导出过程中遇到指示存在退化三角形的错误,请使用此工具。
Caution
有时,此功能可能会破坏模型的着色。如果发生这种情况,请将所有内容转换回 Editable Poly 应该可以解决问题。
Dagor -> Dagor New: 将分配给模型的材质从 DagorMat1 转换为 DagorMat2。
Collapse materials: 将具有相同名称和相同参数的材质合并为单个材质。当将同一对象的多个 LOD 导入到 3ds Max 中时,这非常有用。默认情况下,这些 LOD 具有重复的材质,因此在一个 LOD 上修改材质不会影响其他 LOD。此功能将复制的材质合并为一个。在对导入的材质进行任何修改之前,使用此功能至关重要。
Show maps on s.o. (selected objects): 强制纹理显示在具有 Dagor 材质的对象上。在某些情况下,纹理可能会因故障而无法正确显示 - 此按钮有助于解决此问题。
Hide: 强制隐藏纹理。
StdMat -> DagorMat: 将标准 3ds Max 材质转换为 DagorMat。 转换并不完美 - 它只传输漫反射纹理。 但是,它在某些情况下仍然很有用。
DagorMat -> StdMat: 相反的过程,将 DagorMat 转换回标准材料。这个过程也不完美,但它可能会派上用场。
UV Utils: 提供用于修改 UV 映射的工具:
Copy: 将 UV 映射到另一个通道。
Swap: 在通道之间交换 UV 映射。
Move: 将 UV 映射传输到另一个通道。
Kill: 删除特定通道上的 UV 映射(即,在两个通道中指定相同的通道)。
CopyBuffer / PasteBuffer: 理论上,这些允许将 UV 映射从一个模型复制到另一个模型。此功能尚未经过全面测试。
See also
有关单独安装的其他可选工具的更多信息,请参见 Dagor 2 Max Tools.