Dagor Simple CMP Editor

Caution

此工具目前正在开发中。

安装

安装脚本 按照提供的说明进行作。

Important

  • 此脚本需要 3ds Max 2021 或更高版本才能运行。

  • 确保插件版本至少为 1.8

  • 这个简单的 CMP 编辑器需要 Dagor Fast Editor User Properties,它是工具箱的一部分。

访问 Simple CMP Editor

要开始使用,请确保您的工具箱是最新的。然后,将 dagor_CMP_GeneratorSimple.ms 拖放到 Viewport 中。

  • Ctrl+Shift打开浮动面板:

    Fast Editor User Properties
  • X 关闭面板将完全禁用此编辑器。要返回切换行为,请从 Gaijin Tools > Dagor Fast Properties… 重新打开编辑器

    Fast Editor User Properties
  • 要打开 Dagor CMP Exporter 的主窗口,请导航至 Gaijin Tools > Dagor CMP Exporter… 1

  • 要验证脚本的版本 2,请前往 Gaijin Tools > AboutAbout窗口将显示当前版本。定期检查以确保您的脚本是最新的,这一点很重要。

    Simple CMP Editor

使用 Simple CMP Editor

所有节点属性都存储在 Object Properties 中。当对象的位置、旋转或缩放发生变化时,脚本会自动更新这些属性。下面是一个示例:

Simple CMP Editor

始终使用 CMP 导出器来编辑属性。以下是当前支持的属性列表:

支持的属性

属性 示例 说明
place_type:i
place_type:i = 1
"No Collision Type"=0, "Place Pivot"=1, "Place Pivot and use Normal"=2, "Place 3-point (bbox)"=3, "Place Foundation (bbox)"=4, "Place on Water (flootable)"=5, "Place Pivot with Rendinst Collision"=6
rot_x:p2
rot_x:p2=90, 2 
将节点沿所选轴旋转 90°,然后应用介于 -2° 和 2° 之间的随机角度
rot_y:p2
rot_y:p2=0, 30 
在所选轴上在 -30° 和 30° 之间随机旋转节点
rot_z:p2
rot_z:p2=90, 2
将节点沿所选轴旋转 90°,然后应用介于 -2° 和 2° 之间的随机角度
offset_x:p2
offset_x:p2=1, 2
沿 x 轴将节点移动 1 个单位,然后在 +/-2 个单位之间随机移动
offset_y:p2
offset_y:p2=1, 2
沿 y 轴将节点移动 1 个单位,然后在 +/-2 个单位之间随机移动
offset_z:p2 
offset_z:p2=1, 2 
沿 z 轴将节点移动 1 个单位,然后在 +/-2 个单位之间随机移动
scale:p2
scale:p2=1.5, 0.1
将节点均匀缩放为 1.5,变化范围为 [-0.1 .. 0.1]
yScale:p2
yScale:p2=1, 0.1
将节点高度改变 [-0.1 .. 0.1] 范围内的值
tm:m
tm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [0.0, 0.0, 0.0]]
非随机位置、旋转和缩放
aboveHt:r
aboveHt:r=0.0
指定表面上方的固定高度

该脚本不会影响上面未列出的手动输入的属性。下面的动画显示,当您更改参数时,碰撞对象的不受支持的属性保持不变,例如:

Important

一次只能编辑一个选定的对象。如果您选择多个对象,CMP Exporter 界面将灰显且无法进行参数编辑。这是有意为之,以防止损坏或擦除不同对象的属性。

但是,可以在选定的组中移动、旋转或缩放对象。当脚本运行时,它会自动更新 user custom 中的所有参数 属性。如果在编辑期间未运行脚本,则当您按下 Export CMP 按钮时,参数将自动更新。 或者,运行脚本并选择一个对象以自动更新其参数。

Important

如果对象尚不具有任何 CMP 属性,则将自动分配默认属性,例如 Matrix3Place type。请注意,只有“可编辑网格”或“可编辑多边形”对象可以具有 CMP 设置。对于不可编辑的对象,界面将灰显且无法编辑。

例如,创建一个框,并在脚本窗口打开时选择它。整个界面将是灰色的,因为它不是 Editable Mesh 或 Editable Poly。

它看起来像这样(只有 node name 和 Matrix3):

node{
  name:t="ancient_statue_c_dmg_056_dmg:rendInst"
  tm:m=[[0.606621, 0.0, 0.0105886] [0.000184797, 0.606621, -0.010587] [-0.010587, 0.0105886, 0.606528] [-0.211369, 3.01566, 0.255796]]
}

Important

场景中的所有对象在所有轴上必须具有相同的缩放。

如果对象未沿所有轴均匀缩放,则会显示一条警告,建议进行更正:

Simple CMP Editor

该脚本不会更正此错误;它把决定权留给你。但是,每次在脚本运行时选择此类对象时,都会显示警告。

CMP 编辑器界面

我们来考虑一下脚本接口的功能:

Simple CMP Editor
  • Output Path 1: 指定导出后保存 .composit.blk 文件的路径。按钮 2 允许您选择自定义路径。首次使用时,这将默认为 3ds Max 导出路径。

  • Default Node Type 3: 设置默认节点类型。如果名称包含一些严重错误(如无效字符),则脚本将指示以下形式的错误:

    Simple CMP Editor
  • Remove numeric suffixes if exist 4: 如果启用,则在导出期间删除对象名称中的最后三位数字。例如,ancient_statue_c_dmg_087 将导出为 ancient_statue_c_dmg_。这很有用,因为 3ds Max 中的对象通常包含最终合成文件中不需要的数字。

  • Export CMP 5: 将对象导出到指定目录。 将导出当前活动图层中的所有对象。回想一下,现用图层是由蓝色文件夹突出显示的图层

    Simple CMP Editor

    例如,将图层 Simple CMP Editor 导出到指定路径的 ancient_statue_c_dmg_cmp.composit.blk

    确保活动图层的命名正确;否则,将出现警告:

    Simple CMP Editor

接下来是从 3ds Max 导出到 Dagor 的参数:

  • Transfor Matrix3 Enabled 6: 将转换矩阵(位置、旋转、缩放)导出为 Dagor 的格式。

    See also

    有关更多信息,请参阅 变换矩阵.

  • place_type Enabled 7: 在 Dagor 中启用对象放置类型。有七种不同的安置方法,您的导师可以详细解释。

  • Parameter block 8: 负责沿 X、Y、Z 轴随机化节点旋转。

    示例:

    Important

    • 如果启用了rot_xrot_yrot_zoffset_xoffset_yoffset_zscaleyScale 的任何复选框,则 Matrix3 参数将不可用。

    • 此限制是有意为之,并符合 Dagor Engine 要求。

  • Parameter block 9: 负责沿 x、y、z 轴相对于当前位置随机化节点偏移。

  • Scale Enabled 10: 在指定范围内,从 Base Scale 值随机化节点缩放。

  • yScale Enabled 11: 启用沿 Y 轴(在 3ds Max 中为 Z 轴,在 Dagor中为 up)缩放的随机化。

  • aboveHit Enabled 12: 通过 aboveHt 参数中的指定值启用表面上方的固定节点定位。

随着 Dagor 引擎的发展,可能会添加新参数或修改现有参数。请始终参考更新的参数表。

Note

此脚本很复杂,用作 3ds Max 编辑器中的编辑器。它可能包含 bug 或错误。如果您遇到任何奇怪的行为或问题,请不要尝试自行解决。立即向开发人员报告这些问题,以节省时间并促进快速修复。

  • Open Local Documentation 13: 指向此文档的链接。

  • Contact with Developer 14: 如果需要帮助,请为开发人员提供联系信息。