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打开浮动面板:
按 X 关闭面板将完全禁用此编辑器。要返回切换行为,请从 Gaijin Tools > Dagor Fast Properties… 重新打开编辑器
要打开 Dagor CMP Exporter 的主窗口,请导航至 Gaijin Tools > Dagor CMP Exporter… 1。
要验证脚本的版本 2,请前往 Gaijin Tools > About。About窗口将显示当前版本。定期检查以确保您的脚本是最新的,这一点很重要。
使用 Simple CMP Editor
所有节点属性都存储在 Object Properties 中。当对象的位置、旋转或缩放发生变化时,脚本会自动更新这些属性。下面是一个示例:
始终使用 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 属性,则将自动分配默认属性,例如 Matrix3 和 Place 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
场景中的所有对象在所有轴上必须具有相同的缩放。
如果对象未沿所有轴均匀缩放,则会显示一条警告,建议进行更正:
该脚本不会更正此错误;它把决定权留给你。但是,每次在脚本运行时选择此类对象时,都会显示警告。
CMP 编辑器界面
我们来考虑一下脚本接口的功能:
Output Path 1: 指定导出后保存
.composit.blk文件的路径。按钮 2 允许您选择自定义路径。首次使用时,这将默认为 3ds Max 导出路径。Default Node Type 3: 设置默认节点类型。如果名称包含一些严重错误(如无效字符),则脚本将指示以下形式的错误:
Remove numeric suffixes if exist 4: 如果启用,则在导出期间删除对象名称中的最后三位数字。例如,
ancient_statue_c_dmg_087将导出为ancient_statue_c_dmg_。这很有用,因为 3ds Max 中的对象通常包含最终合成文件中不需要的数字。Export CMP 5: 将对象导出到指定目录。 将导出当前活动图层中的所有对象。回想一下,现用图层是由蓝色文件夹突出显示的图层
例如,将图层
导出到指定路径的 ancient_statue_c_dmg_cmp.composit.blk。确保活动图层的命名正确;否则,将出现警告:
接下来是从 3ds Max 导出到 Dagor 的参数:
Transfor Matrix3 Enabled 6: 将转换矩阵(位置、旋转、缩放)导出为 Dagor 的格式。
See also
有关更多信息,请参阅 变换矩阵.
place_type Enabled 7: 在 Dagor 中启用对象放置类型。有七种不同的安置方法,您的导师可以详细解释。
Parameter block 8: 负责沿 X、Y、Z 轴随机化节点旋转。
示例:
Important
如果启用了
rot_x、rot_y、rot_z、offset_x、offset_y、offset_z、scale或yScale的任何复选框,则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: 如果需要帮助,请为开发人员提供联系信息。