Utforma filer för konvertering
För att kunna bearbeta en tillgång korrekt måste konverteringstjänsten kunna hitta alla indatafiler.
Dessa består av huvudtillgångsfilen som konverteras och vanligtvis några andra filer som refereras av sökvägar i tillgångsfilen.
Begäran om att konvertera en tillgång ges två parametrar som avgör hur konverteringstjänsten hittar dessa filer: settings.inputLocation.blobPrefix
(vilket är valfritt) och settings.inputLocation.relativeInputAssetPath
.
De är helt dokumenterade på sidan REST API för konvertering.
För att lägga ut filer är det viktigt att notera att avgör den BlobPrefix
fullständiga uppsättningen filer som är tillgängliga för konverteringstjänsten när tillgången bearbetas.
Kommentar
Tjänsten laddar ned alla filer under indata. BlobPrefix. Se till att filnamn och sökvägar inte överskrider längdgränserna för Windows-sökväg för att undvika problem med tjänsten.
Placera filer så att de kan hittas
När en källtillgång använder externa filer lagras sökvägar till dessa filer i tillgången. Konverteringstjänsten måste tolka dessa sökvägar i ett filsystem som skiljer sig från tillgångens ursprungliga filsystem. Om sökvägarna lagras som relativa sökvägar och den relativa platsen mellan källtillgången och filen den refererar till är oförändrad, är det enkelt för konverteringstjänsten att hitta den refererade filen.
Kommentar
Vi rekommenderar att du placerar filer i indatacontainern så att de relativa platserna för filerna är desamma som när tillgången skapades.
Kommentar
Föredrar att skapa tillgångar som har relativa sökvägar. Självstudien om hur du konfigurerar material för 3ds Max ger ett 3ds Max-exempel på hur du säkerställer att en tillgång använder relativa sökvägar.
Hitta texturer
På grund av de många sätt som tillgångar kan genereras på måste konverteringstjänsten vara flexibel. I synnerhet måste den hantera situationer där sökvägarna i tillgången och platsen för texturer inte matchar exakt. Ett exempel är när tillgångar genereras som innehåller absoluta sökvägar, eftersom dessa sökvägar aldrig matchar det filsystem som används av konverteringstjänsten. För att bland annat hantera den här situationen använder vi ett metodtips för att hitta texturer.
Algoritmen för att hitta texturer är följande: Med tanke på en sökväg som lagras i en tillgång hittar du det längsta suffixet för undersökväg som, när det används som en relativ sökväg från källtillgångens plats, riktar in sig på en fil som finns. Om ingen sådan undersökväg (inklusive hela sökvägen) riktar sig mot en fil betraktas strukturen som saknad.
Överväg följande invecklade filsystem:
G:\CONVERSION
├───Assets
│ │ myAsset.fbx
│ │ myTexture.png <- A
│ │
│ └───Textures
│ │ myTexture.png <- B
│ │
│ └───MyAssetTextures
│ myTexture.png <- C
│
└───Textures
│ myTexture.png <- D
│
└───MyAssetTextures
myTexture.png <- E
Om myAsset.fbx refererar till en struktur med den relativa sökvägen ..\Textures\MyAssetTextures\myTexture.png
använder konverteringstjänsten fil E. I själva verket kan den använda någon av filerna A, C och E om de finns, där fil E föredras eftersom den hittas med det längsta suffixet.
Filer B och D kommer aldrig att användas, eftersom Textures\myTexture.png
de inte ingår i något suffix i den lagrade sökvägen.
Om tillgången i stället innehåller sökvägarna H:\Foo\Bar\Textures\MyAssetTextures\myTexture.png
eller ..\..\..\Foo\Bar\Textures\MyAssetTextures\myTexture.png
kan konverteringstjänsten hitta filerna A och C om de finns (föredrar C framför A). Det går dock inte att hitta E på det här sättet och filen måste flyttas.
Detta kan åtgärdas genom att flytta mappen Textures bredvid tillgången.
Kommentar
Om texturer inte hittas är ett möjligt botemedel att se till att tillgången är ett syskon till vissa underträd som innehåller texturerna.