欢迎光临散文网 会员登陆 & 注册

UE5内容管理-利用MAXScript实现Datasmith的自动化导出

2023-06-28 10:17 作者:梦起梦落梦若风  | 我要投稿

Datasmith 3ds Max导出器(Datasmith 3ds Max Exporter) 插件安装后,会向MAXScript环境添加 Datasmith_Export 小接口。可使用该接口将3ds Max场景自动导出到 .udatasmith 文件,而不必手动导出场景。本页面介绍了 Datasmith_Export 接口公开的方法。

Datasmith 3ds Max导出脚本的语法在版本5.1中已更改。为旧版编写的脚本不适用于版本5.1。你可以使用本页面上介绍的新语法重新编写现有脚本。

其中一些方法对应3ds Max条带的Datasmith选项卡上的命令(请参阅3ds Max条带)。调用MAXScript中的方法时,条带中对应命令的用户界面可能不会立即更新。要刷新用户界面,请转至3dsMax条带中的其他选项卡,然后返回Datasmith选项卡。


获取和设置导出选项

Datasmith_GetExportOption_AnimatedTransforms()

如果Datasmith设置为导出完整动画时间轴,则返回 true ;如果它设置为仅导出当前帧,则返回 false 。


Datasmith_SetExportOption_AnimatedTransforms <boolean>

指定Datasmith是导出完整动画时间轴还是当前帧。

  • true :Datasmith导出完整动画时间轴。

  • false :Datasmith仅导出当前帧。

Datasmith_GetExportOption_TextureResolution()

返回Datasmith所导出的烘焙流程性纹理的当前分辨率限制的索引值。无论导出的纹理的具体宽度/高度如何,每个值对应目标分辨率中的像素数量。


0

4096像素


1

16,384像素


2

65,536像素


3

0.25兆像素


4

1兆像素


5

4兆像素


6

16兆像素


Datasmith_SetExportOption_TextureResolution <index>

指定Datasmith所导出的烘焙流程性纹理的最大分辨率。接受0到6之间的值。无论导出的纹理的具体宽度/高度如何,每个值对应目标分辨率中的像素数量。



0

4096像素


1

16,384像素


2

65,536像素


3

0.25兆像素


4

1兆像素


5

4兆像素


6

16兆像素


示例:

Datasmith_SetExportOption_TextureResolution 4

将最大烘焙/流程性纹理分辨率设置为一百万像素,即一兆像素。


将消息记录到Datasmith消息窗口

使用这些命令可将自定义消息记录到Datasmith消息窗口。每种类型的消息使用不同的颜色显示。



参考

灰色


警告

黄色


错误

红色


完成

绿色

Datasmith_LogInfo <msg>

将参考类型的消息记录到Datasmith消息窗口。参考消息显示为灰色。


<msg>

字符串

要输出到Datasmith消息窗口的消息


示例: Datasmith_LogInfo "这是参考消息"


Datasmith_LogWarning <msg>

将警告类型的消息记录到Datasmith消息窗口。警告消息显示为黄色。



<msg>

字符串

要输出到Datasmith消息窗口的消息


示例: Datasmith_LogInfo "这是警告消息"


Datasmith_LogError <msg>

将错误类型的消息记录到Datasmith消息窗口。错误消息显示为红色。



<msg>

字符串

要输出到Datasmith消息窗口的消息


示例: Datasmith_LogInfo "这是错误消息"


Datasmith_LogCompletion <msg>

将完成类型的消息记录到Datasmith消息窗口。完成消息显示为绿色。



<msg>

字符串

要输出到Datasmith消息窗口的消息


示例: Datasmith_LogInfo "这是完成消息"


Datasmith_LogFlush()

将内存中排队的日志消息写入日志文件。日志文件存储在 %LOCALAPPDATA%\UnrealDatasmithExporter\Saved\Logs 目录中。


导出.udatasmith文件

Datasmith_ExportDialog()

打开Datasmith文件导出对话框,其中你可以指定导出的 .udatasmith 文件的名称和路径。


Datasmith_Export <name> <path> selected:[boolean] quiet:[boolean]

将3ds Max模型或选择内容导出为 .udatasmith 文件,而不打开Datasmith文件导出对话框。 

该方法采用以下参数:


name

字符串

要导出的文件的名称,不带文件扩展名。

n


path

字符串

要将文件导出到的目录的完整路径。

n


selected:

布尔

指定Datasmith是导出整个场景还是仅导出当前所选对象。

  • true :Datasmith仅导出可见的所选对象。

  • false :Datasmith导出整个场景(仅可见对象)。

y


quiet:

布尔

  • true :Datasmith静默导出 .udatasmith 文件,这意味着它不会打开关联的UI,也不会显示进度条。这很适合自动化场景。

  • false :Datasmith在导出场景时显示进度条和其他关联的UI。

y


示例:

Datasmith_Export "DatasmithExportName" "D:\DatasmithExports\3dsMax" selected:true quiet:true

上面的示例自动将所选对象导出为 .udatasmith 文件,文件名为DatasmithExportName,路径为 D:\DatasmithExports\3dsMax ,不会显示进度条或其他导出UI。 


Direct Link和Direct Link自动同步

Datasmith_OpenDirectlinkUi()

打开Datasmith Direct Link连接状态窗口。


Datasmith_GetDirectlinkCacheDirectory()

返回Direct Link缓存目录的路径。你还可以从Datasmith Direct Link连接状态窗口获取路径。


Datasmith_GetUnrealEnginePath()
Datasmith_GetUnrealEnginePathFromRegistry()

这些方法将返回通过DirectLink连接的已安装虚幻引擎的路径。Datasmith_GetUnrealEnginePath() 调用 Datasmith_GetUnrealEnginePathFromRegistry() 并返回注册表中存储的路径。如果注册表不包含路径,将返回默认硬编码路径:C:/ProgramData/Epic/Exporter/3dsMaxEngine/ 。


Datasmith_ToggleAutoSync()

切换Direct Link自动同步的开和关。使用 Datasmith_IsAutoSyncEnabled() 检查当前是否启用了自动同步。


Datasmith_IsAutoSyncEnabled()

如果当前启用了Direct Link自动同步,则返回true,否则返回false。


Datasmith_GetExportOption_StatSync()

如果Datasmith设置为在你使用Direct Link或Direct Link自动同步来同步场景时将统计数据输出到Datasmith消息窗口,则返回 true ,否则返回 false 。


Datasmith_SetExportOption_StatSync <boolean>

指定Datasmith是否在你使用Direct Link或Direct Link自动同步来同步场景时将统计数据输出到Datasmith消息窗口

  • true :Datasmith将统计数据输出到Datasmith消息窗口。

  • false :Datasmith不输出统计数据。

Datasmith_SetAutoSyncDelay <seconds>

指定定时器检查Direct Link自动同步条件的间隔。

该方法采用以下参数:



<seconds>

浮点

自动同步条件检查之间的间隔时长,以秒为单位。


Datasmith_SetAutoSyncIdleDelay <seconds>

启用Direct Link自动同步时,该方法指定在Datasmith尝试Direct Link自动同步之前,用户必须处于空闲状态的最短时间。

该方法采用以下参数:



<seconds>

浮点

在Datasmith尝试Direct Link自动同步之前,用户必须处于空闲状态的秒数。


Datasmith_UpdateScene quiet:[boolean]

更新Datasmith 3ds Max导出器插件的场景表示,以匹配当前3ds Max场景。

如果场景自上次更新以来发生了更改,则返回 true ,否则返回 false 。

当你使用3ds Max条带的Datasmith选项卡中的"同步(Synchronize)"命令时,Datasmith首先调用该命令,如果检测到更改,则调用 Datasmith_DirectLinkUpdateScene() 。 

该方法采用以下参数:



quiet:

布尔

  • true :Datasmith静默更新场景,这意味着它不会打开关联的UI,也不会显示进度条。这很适合自动化场景。

  • false :Datasmith在更新场景时显示进度条和其他关联的UI。

y


Datasmith_DirectLinkUpdateScene()

通过Datasmith Direct Link将Datasmith 3ds Max导出器插件的场景表示与虚幻引擎同步。设置对场景更改的追踪。

当你使用3ds Max条带的Datasmith选项卡中的"同步(Synchronize)"命令时,Datasmith首先调用Datasmith_UpdateScene()。如果检测到更改,将调用该方法。 

 

Datasmith_Reset()

停止追踪场景更改,并重置Datasmith 3ds Max导出器插件的场景表示。


UE5内容管理-利用MAXScript实现Datasmith的自动化导出的评论 (共 条)

分享到微博请遵守国家法律