Příprava souborů pro převod
Aby bylo možné správně zpracovat prostředek, musí být služba převodu schopná najít všechny vstupní soubory.
Ty se skládají z hlavního souboru assetu, který se převádí, a obvykle některé jiné soubory odkazované cestami v souboru assetu.
Požadavek na převod prostředku má dva parametry, které určují, jak služba převodu najde tyto soubory: settings.inputLocation.blobPrefix
(což je volitelné) a settings.inputLocation.relativeInputAssetPath
.
Jsou plně zdokumentované na stránce rozhraní REST API pro převod.
Pro účely rozložení souborů je důležité poznamenat, že BlobPrefix
určuje úplnou sadu souborů, které jsou k dispozici převodní službě při zpracování prostředku.
Poznámka:
Služba stáhne všechny soubory pod vstupem. BlobPrefix. Zajistěte, aby názvy souborů a cesty nepřekračovaly limity délky cesty systému Windows, aby nedocházelo k problémům se službou.
Umístění souborů, aby je bylo možné najít
Pokud zdrojový prostředek využívá externí soubory, cesty k těmto souborům budou uloženy v rámci prostředku. Služba převodu musí tyto cesty interpretovat v systému souborů, který se liší od původního systému souborů prostředku. Pokud jsou cesty uloženy jako relativní cesty a relativní umístění mezi zdrojovým assetem a souborem, na který odkazuje, je beze změny, pak služba převodu snadno najde odkazovaný soubor.
Poznámka:
Doporučujeme umístit soubory do vstupního kontejneru, aby relativní umístění souborů byla stejná jako při vytvoření prostředku.
Poznámka:
Raději vytvořte prostředky, které mají relativní cesty. Kurz nastavení materiálů pro 3ds Max poskytuje příklad 3ds Max, jak zajistit, aby prostředek používal relativní cesty.
Hledání textur
Vzhledem k mnoha způsobům generování prostředků musí být služba převodu flexibilní. Zejména musí zpracovávat situace, kdy cesty v prostředku a umístění textur přesně neodpovídají. Příkladem je vygenerování prostředků obsahujících absolutní cesty, protože tyto cesty se nikdy neshodují se systémem souborů používaným službou převodu. Abychom tuto situaci zvládli mimo jiné, používáme nejlepší přístup k hledání textur.
Algoritmus pro vyhledání textur je následující: Vzhledem k cestě uložené v prostředku vyhledejte nejdelší příponu dílčí cesty, která se použije jako relativní cesta z umístění zdrojového prostředku, cílí na soubor, který existuje. Pokud žádná taková dílčí cesta (včetně celé cesty) cílí na soubor, je textura považována za chybějící.
Vezměte v úvahu následující systém souborů:
G:\CONVERSION
├───Assets
│ │ myAsset.fbx
│ │ myTexture.png <- A
│ │
│ └───Textures
│ │ myTexture.png <- B
│ │
│ └───MyAssetTextures
│ myTexture.png <- C
│
└───Textures
│ myTexture.png <- D
│
└───MyAssetTextures
myTexture.png <- E
Pokud myAsset.fbx odkazuje na texturu s relativní cestou ..\Textures\MyAssetTextures\myTexture.png
, pak služba převodu použije soubor E. Ve skutečnosti může použít libovolný ze souborů A, C a E, pokud existují, a soubor E je preferován, protože je nalezen s nejdelší příponou.
Soubory B a D nebudou nikdy použity, protože Textures\myTexture.png
není součástí žádné přípony uložené cesty.
Pokud prostředek místo toho obsahoval cesty H:\Foo\Bar\Textures\MyAssetTextures\myTexture.png
nebo ..\..\..\Foo\Bar\Textures\MyAssetTextures\myTexture.png
, pak služba převodu bude moci najít soubory A a C, pokud existují (preferuje C než A). E však nelze tímto způsobem najít a soubor bude nutné přemístit.
To lze opravit přesunutím složky Textury vedle prostředku.
Poznámka:
Pokud se textury nenajdou, je možnou nápravou zajistit, aby byl prostředek na stejné straně některých podstromů, které obsahují textury.