# Dagor Simple CMP Editor
```{caution}
此工具目前正在开发中。
```
## 安装
[安装脚本](installation.md) 按照提供的说明进行作。
```{important}
- 此脚本需要 3ds Max 2021 或更高版本才能运行。
- 确保插件版本至少为 `1.8`。
- 这个简单的 CMP 编辑器需要 [Dagor Fast Editor User Properties](fast_editor_user_properties.md),它是工具箱的一部分。
```
## 访问 Simple CMP Editor
要开始使用,请确保您的工具箱是最新的。然后,将 `dagor_CMP_GeneratorSimple.ms` 拖放到 **Viewport** 中。
- 按 `Ctrl`+`Shift`打开浮动面板:
- 按 **X** 关闭面板将完全禁用此编辑器。要返回切换行为,请从 **Gaijin Tools > Dagor Fast Properties...** 重新打开编辑器
- 要打开 Dagor CMP Exporter 的主窗口,请导航至 **Gaijin Tools > Dagor CMP Exporter...** {bdg-dark-line}`1`。
- 要验证脚本的版本 {bdg-dark-line}`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 |
指定表面上方的固定高度 |
该脚本不会更正此错误;它把决定权留给你。但是,每次在脚本运行时选择此类对象时,都会显示警告。
### CMP 编辑器界面
我们来考虑一下脚本接口的功能:
- **Output Path** {bdg-dark-line}`1`: 指定导出后保存 `.composit.blk` 文件的路径。按钮 {bdg-dark-line}`2` 允许您选择自定义路径。首次使用时,这将默认为 3ds Max 导出路径。
- **Default Node Type** {bdg-dark-line}`3`: 设置默认节点类型。如果名称包含一些严重错误(如无效字符),则脚本将指示以下形式的错误:
- **Remove numeric suffixes if exist** {bdg-dark-line}`4`: 如果启用,则在导出期间删除对象名称中的最后三位数字。例如,`ancient_statue_c_dmg_087` 将导出为 `ancient_statue_c_dmg_`。这很有用,因为 3ds Max 中的对象通常包含最终合成文件中不需要的数字。
- **Export CMP** {bdg-dark-line}`5`: 将对象导出到指定目录。
将导出当前活动图层中的所有对象。回想一下,现用图层是由蓝色文件夹突出显示的图层
例如,将图层
导出到指定路径的 `ancient_statue_c_dmg_cmp.composit.blk`。
确保活动图层的命名正确;否则,将出现警告:
接下来是从 3ds Max 导出到 Dagor 的参数:
- **Transfor Matrix3 Enabled** {bdg-dark-line}`6`: 将转换矩阵(位置、旋转、缩放)导出为 Dagor 的格式。
```{seealso}
有关更多信息,请参阅
[变换矩阵](https://en.wikipedia.org/wiki/Transformation_matrix#Examples_in_3D_computer_graphics).
```
- **place_type Enabled** {bdg-dark-line}`7`: 在 Dagor 中启用对象放置类型。有七种不同的安置方法,您的导师可以详细解释。
- **Parameter block** {bdg-dark-line}`8`: 负责沿 X、Y、Z 轴随机化节点旋转。
**示例:**
```{eval-rst}
.. video:: _images/simple_cmp_ed_prop_edit_rot_02.webm
:width: 90%
```
```{important}
- 如果启用了`rot_x`、`rot_y`、`rot_z`、`offset_x`、`offset_y`、`offset_z`、`scale` 或 `yScale` 的任何复选框,则 `Matrix3` 参数将不可用。
- 此限制是有意为之,并符合 Dagor Engine 要求。
```
- **Parameter block** {bdg-dark-line}`9`: 负责沿 x、y、z 轴相对于当前位置随机化节点偏移。
- **Scale Enabled** {bdg-dark-line}`10`: 在指定范围内,从 Base Scale 值随机化节点缩放。
- **yScale Enabled** {bdg-dark-line}`11`: 启用沿 Y 轴(在 3ds Max 中为 Z 轴,在 Dagor中为 up)缩放的随机化。
- **aboveHit Enabled** {bdg-dark-line}`12`: 通过 `aboveHt` 参数中的指定值启用表面上方的固定节点定位。
随着 Dagor 引擎的发展,可能会添加新参数或修改现有参数。请始终参考更新的参数表。
```{note}
此脚本很复杂,用作 3ds Max 编辑器中的编辑器。它可能包含 bug 或错误。如果您遇到任何奇怪的行为或问题,请不要尝试自行解决。立即向开发人员报告这些问题,以节省时间并促进快速修复。
```
- **Open Local Documentation** {bdg-dark-line}`13`: 指向此文档的链接。
- **Contact with Developer** {bdg-dark-line}`14`: 如果需要帮助,请为开发人员提供联系信息。