UE5內(nèi)容管理-利用MAXScript實(shí)現(xiàn)Datasmith的自動(dòng)化導(dǎo)出

Datasmith 3ds Max導(dǎo)出器(Datasmith 3ds Max Exporter)?插件安裝后,會(huì)向MAXScript環(huán)境添加?Datasmith_Export
?小接口??墒褂迷摻涌趯?ds Max場景自動(dòng)導(dǎo)出到?.udatasmith
?文件,而不必手動(dòng)導(dǎo)出場景。本頁面介紹了?Datasmith_Export
?接口公開的方法。
Datasmith 3ds Max導(dǎo)出腳本的語法在版本5.1中已更改。為舊版編寫的腳本不適用于版本5.1。你可以使用本頁面上介紹的新語法重新編寫現(xiàn)有腳本。
其中一些方法對應(yīng)3ds Max條帶的Datasmith選項(xiàng)卡上的命令(請參閱3ds Max條帶)。調(diào)用MAXScript中的方法時(shí),條帶中對應(yīng)命令的用戶界面可能不會(huì)立即更新。要刷新用戶界面,請轉(zhuǎn)至3dsMax條帶中的其他選項(xiàng)卡,然后返回Datasmith選項(xiàng)卡。
獲取和設(shè)置導(dǎo)出選項(xiàng)
Datasmith_GetExportOption_AnimatedTransforms()
如果Datasmith設(shè)置為導(dǎo)出完整動(dòng)畫時(shí)間軸,則返回?true
?;如果它設(shè)置為僅導(dǎo)出當(dāng)前幀,則返回?false
?。
Datasmith_SetExportOption_AnimatedTransforms <boolean>
指定Datasmith是導(dǎo)出完整動(dòng)畫時(shí)間軸還是當(dāng)前幀。
true
?:Datasmith導(dǎo)出完整動(dòng)畫時(shí)間軸。false
?:Datasmith僅導(dǎo)出當(dāng)前幀。
Datasmith_GetExportOption_TextureResolution()
返回Datasmith所導(dǎo)出的烘焙流程性紋理的當(dāng)前分辨率限制的索引值。無論導(dǎo)出的紋理的具體寬度/高度如何,每個(gè)值對應(yīng)目標(biāo)分辨率中的像素?cái)?shù)量。
0
4096像素
1
16,384像素
2
65,536像素
3
0.25兆像素
4
1兆像素
5
4兆像素
6
16兆像素
Datasmith_SetExportOption_TextureResolution <index>
指定Datasmith所導(dǎo)出的烘焙流程性紋理的最大分辨率。接受0到6之間的值。無論導(dǎo)出的紋理的具體寬度/高度如何,每個(gè)值對應(yīng)目標(biāo)分辨率中的像素?cái)?shù)量。
0
4096像素
1
16,384像素
2
65,536像素
3
0.25兆像素
4
1兆像素
5
4兆像素
6
16兆像素
示例:
Datasmith_SetExportOption_TextureResolution 4
將最大烘焙/流程性紋理分辨率設(shè)置為一百萬像素,即一兆像素。
將消息記錄到Datasmith消息窗口
使用這些命令可將自定義消息記錄到Datasmith消息窗口。每種類型的消息使用不同的顏色顯示。
參考
灰色
警告
黃色
錯(cuò)誤
紅色
完成
綠色

Datasmith_LogInfo <msg>
將參考類型的消息記錄到Datasmith消息窗口。參考消息顯示為灰色。
<msg>
字符串
要輸出到Datasmith消息窗口的消息
示例:?Datasmith_LogInfo "這是參考消息"
Datasmith_LogWarning <msg>
將警告類型的消息記錄到Datasmith消息窗口。警告消息顯示為黃色。
<msg>
字符串
要輸出到Datasmith消息窗口的消息
示例:?Datasmith_LogInfo "這是警告消息"
Datasmith_LogError <msg>
將錯(cuò)誤類型的消息記錄到Datasmith消息窗口。錯(cuò)誤消息顯示為紅色。
<msg>
字符串
要輸出到Datasmith消息窗口的消息
示例:?Datasmith_LogInfo "這是錯(cuò)誤消息"
Datasmith_LogCompletion <msg>
將完成類型的消息記錄到Datasmith消息窗口。完成消息顯示為綠色。
<msg>
字符串
要輸出到Datasmith消息窗口的消息
示例:?Datasmith_LogInfo "這是完成消息"
Datasmith_LogFlush()
將內(nèi)存中排隊(duì)的日志消息寫入日志文件。日志文件存儲(chǔ)在?%LOCALAPPDATA%\UnrealDatasmithExporter\Saved\Logs
?目錄中。
導(dǎo)出.udatasmith文件
Datasmith_ExportDialog()
打開Datasmith文件導(dǎo)出對話框,其中你可以指定導(dǎo)出的?.udatasmith
?文件的名稱和路徑。
Datasmith_Export <name> <path> selected:[boolean] quiet:[boolean]
將3ds Max模型或選擇內(nèi)容導(dǎo)出為?.udatasmith
?文件,而不打開Datasmith文件導(dǎo)出對話框。?
該方法采用以下參數(shù):
name
字符串
要導(dǎo)出的文件的名稱,不帶文件擴(kuò)展名。
n
path
字符串
要將文件導(dǎo)出到的目錄的完整路徑。
n
selected:
布爾
指定Datasmith是導(dǎo)出整個(gè)場景還是僅導(dǎo)出當(dāng)前所選對象。
true
?:Datasmith僅導(dǎo)出可見的所選對象。false
?:Datasmith導(dǎo)出整個(gè)場景(僅可見對象)。
y
quiet:
布爾
true
?:Datasmith靜默導(dǎo)出?.udatasmith
?文件,這意味著它不會(huì)打開關(guān)聯(lián)的UI,也不會(huì)顯示進(jìn)度條。這很適合自動(dòng)化場景。false
?:Datasmith在導(dǎo)出場景時(shí)顯示進(jìn)度條和其他關(guān)聯(lián)的UI。
y
示例:
Datasmith_Export "DatasmithExportName" "D:\DatasmithExports\3dsMax" selected:true quiet:true
上面的示例自動(dòng)將所選對象導(dǎo)出為?.udatasmith
?文件,文件名為DatasmithExportName,路徑為?D:\DatasmithExports\3dsMax
?,不會(huì)顯示進(jìn)度條或其他導(dǎo)出UI。?
Direct Link和Direct Link自動(dòng)同步
Datasmith_OpenDirectlinkUi()
打開Datasmith Direct Link連接狀態(tài)窗口。
Datasmith_GetDirectlinkCacheDirectory()
返回Direct Link緩存目錄的路徑。你還可以從Datasmith Direct Link連接狀態(tài)窗口獲取路徑。
Datasmith_GetUnrealEnginePath()
Datasmith_GetUnrealEnginePathFromRegistry()
這些方法將返回通過DirectLink連接的已安裝虛幻引擎的路徑。Datasmith_GetUnrealEnginePath()
?調(diào)用?Datasmith_GetUnrealEnginePathFromRegistry()
?并返回注冊表中存儲(chǔ)的路徑。如果注冊表不包含路徑,將返回默認(rèn)硬編碼路徑:C:/ProgramData/Epic/Exporter/3dsMaxEngine/
?。
Datasmith_ToggleAutoSync()
切換Direct Link自動(dòng)同步的開和關(guān)。使用?Datasmith_IsAutoSyncEnabled()
?檢查當(dāng)前是否啟用了自動(dòng)同步。
Datasmith_IsAutoSyncEnabled()
如果當(dāng)前啟用了Direct Link自動(dòng)同步,則返回true,否則返回false。
Datasmith_GetExportOption_StatSync()
如果Datasmith設(shè)置為在你使用Direct Link或Direct Link自動(dòng)同步來同步場景時(shí)將統(tǒng)計(jì)數(shù)據(jù)輸出到Datasmith消息窗口,則返回?true
?,否則返回?false
?。
Datasmith_SetExportOption_StatSync <boolean>
指定Datasmith是否在你使用Direct Link或Direct Link自動(dòng)同步來同步場景時(shí)將統(tǒng)計(jì)數(shù)據(jù)輸出到Datasmith消息窗口
true
?:Datasmith將統(tǒng)計(jì)數(shù)據(jù)輸出到Datasmith消息窗口。false
?:Datasmith不輸出統(tǒng)計(jì)數(shù)據(jù)。
Datasmith_SetAutoSyncDelay <seconds>
指定定時(shí)器檢查Direct Link自動(dòng)同步條件的間隔。
該方法采用以下參數(shù):
<seconds>
浮點(diǎn)
自動(dòng)同步條件檢查之間的間隔時(shí)長,以秒為單位。
Datasmith_SetAutoSyncIdleDelay <seconds>
啟用Direct Link自動(dòng)同步時(shí),該方法指定在Datasmith嘗試Direct Link自動(dòng)同步之前,用戶必須處于空閑狀態(tài)的最短時(shí)間。
該方法采用以下參數(shù):
<seconds>
浮點(diǎn)
在Datasmith嘗試Direct Link自動(dòng)同步之前,用戶必須處于空閑狀態(tài)的秒數(shù)。
Datasmith_UpdateScene quiet:[boolean]
更新Datasmith 3ds Max導(dǎo)出器插件的場景表示,以匹配當(dāng)前3ds Max場景。
如果場景自上次更新以來發(fā)生了更改,則返回?true
?,否則返回?false
?。
當(dāng)你使用3ds Max條帶的Datasmith選項(xiàng)卡中的"同步(Synchronize)"命令時(shí),Datasmith首先調(diào)用該命令,如果檢測到更改,則調(diào)用?Datasmith_DirectLinkUpdateScene()
?。?
該方法采用以下參數(shù):
quiet:
布爾
true
?:Datasmith靜默更新場景,這意味著它不會(huì)打開關(guān)聯(lián)的UI,也不會(huì)顯示進(jìn)度條。這很適合自動(dòng)化場景。false
?:Datasmith在更新場景時(shí)顯示進(jìn)度條和其他關(guān)聯(lián)的UI。
y
Datasmith_DirectLinkUpdateScene()
通過Datasmith Direct Link將Datasmith 3ds Max導(dǎo)出器插件的場景表示與虛幻引擎同步。設(shè)置對場景更改的追蹤。
當(dāng)你使用3ds Max條帶的Datasmith選項(xiàng)卡中的"同步(Synchronize)"命令時(shí),Datasmith首先調(diào)用Datasmith_UpdateScene()。如果檢測到更改,將調(diào)用該方法。?
?
Datasmith_Reset()
停止追蹤場景更改,并重置Datasmith 3ds Max導(dǎo)出器插件的場景表示。