配置檔案以進行轉換
為了正確處理資產,轉換服務必須能夠找到所有輸入檔。
這些輸入檔包括經過轉換的主要資產檔案,通常還有一些資產檔案內路徑參考的其他檔案。
轉換資產的要求會產生兩個參數,用以判斷轉換服務找到這些檔案的方式:settings.inputLocation.blobPrefix
(選擇性) 以及 settings.inputLocation.relativeInputAssetPath
。
相關內容詳載於轉換 REST API 頁面。
為了配置檔案,請記住 BlobPrefix
會決定處理資產時轉換服務可用的完整檔案集。
注意
這項服務會下載 input.BlobPrefix 下的所有檔案。 請確定檔案名稱和路徑未超過 Windows 路徑長度限制,以免服務發生問題。
放置檔案以供尋找
來源資產使用外部檔案時,這些檔案的路徑會儲存在資產內。 轉換服務必須在檔案系統內解譯這些路徑,該檔案系統必須與資產的原始檔案系統相異。 如果路徑儲存為相對路徑,且來源資產和所參考檔案的相對位置維持不變,則轉換服務就能輕鬆找到參考的檔案。
注意
我們建議您將檔案置於輸入容器內,讓檔案的相對位置保持在資產建立時的位置。
注意
請盡量建立擁有相對路徑的資產。 設定 3ds Max 材質的教學課程提供 3ds Max 範例,供您了解如何確保資產使用相對路徑。
尋找紋理
由於資產產生的方式相當多樣,因此轉換服務必須具有彈性。 尤其,系統必須處理資產中的路徑與紋理位置不完全相符的情況。 資產產生時包含絕對路徑就是一例,因為這些路徑永遠不會與轉換服務使用的檔案系統相符。 為了處理這種情況和其他問題,我們會透過最佳做法來尋找紋理。
尋找紋理的演算法如下:如果路徑儲存在資產內,則尋找最長的子路徑尾碼;只要來源資產位置用其作為相對路徑,系統就會尋找現存的檔案。 如果系統沒有透過類似的子路徑 (包括整個路徑) 尋找檔案,則系統會判斷紋理為遺漏狀態。
請考慮下列經過設計的檔案系統:
G:\CONVERSION
├───Assets
│ │ myAsset.fbx
│ │ myTexture.png <- A
│ │
│ └───Textures
│ │ myTexture.png <- B
│ │
│ └───MyAssetTextures
│ myTexture.png <- C
│
└───Textures
│ myTexture.png <- D
│
└───MyAssetTextures
myTexture.png <- E
如果 myAsset.fbx 參考擁有相對路徑 ..\Textures\MyAssetTextures\myTexture.png
的紋理,則轉換服務會使用檔案 E。事實上,只要檔案存在,系統可任意使用檔案 A、C 和 E,但由於檔案 E 擁有最長的尾碼,因此系統偏好使用它。
系統永遠不會使用檔案 B 和 D,因為 Textures\myTexture.png
不是任何已儲存路徑的尾碼。
反之,如果資產包含 H:\Foo\Bar\Textures\MyAssetTextures\myTexture.png
或 ..\..\..\Foo\Bar\Textures\MyAssetTextures\myTexture.png
路徑,則只要其存在,轉換服務就能找到檔案 A 和 C (偏好使用 C 而非 A)。 不過這麼一來,系統就不能找到檔案 E,您必須重新配置該檔案。
只要將 [紋理] 資料夾移到資產旁,應該就能修正此問題。
注意
如果找不到紋理,可能的補救措施包括確定資產和包含紋理的樹狀子目錄位於同一層級。