Bestanden indelen voor conversie
Om een asset correct te kunnen verwerken, moet de conversieservice alle invoerbestanden kunnen vinden.
Deze bestaan uit het hoofdassetbestand dat wordt geconverteerd en meestal enkele andere bestanden waarnaar wordt verwezen door paden in het assetbestand.
De aanvraag voor het converteren van een asset krijgt twee parameters die bepalen hoe de conversieservice deze bestanden vindt: De settings.inputLocation.blobPrefix
(optioneel) en de settings.inputLocation.relativeInputAssetPath
.
Ze worden volledig gedocumenteerd op de pagina Conversie REST API .
Voor het opmaken van bestanden is het belangrijk om te weten dat de BlobPrefix
volledige set bestanden die beschikbaar zijn voor de conversieservice bij het verwerken van de asset, wordt bepaald.
Notitie
De service downloadt alle bestanden onder de invoer. BlobPrefix. Zorg ervoor dat bestandsnamen en paden de lengtelimieten van Windows-paden niet overschrijden om problemen met de service te voorkomen.
Bestanden plaatsen zodat ze kunnen worden gevonden
Wanneer een bronasset gebruikmaakt van externe bestanden, worden paden naar deze bestanden opgeslagen in de asset. De conversieservice moet deze paden interpreteren in een bestandssysteem dat verschilt van het oorspronkelijke bestandssysteem van de asset. Als de paden worden opgeslagen als relatieve paden en de relatieve locatie tussen de bronasset en het bestand waarnaar wordt verwezen, ongewijzigd blijven, is het eenvoudig voor de conversieservice om het bestand waarnaar wordt verwezen te vinden.
Notitie
U wordt aangeraden bestanden in de invoercontainer te plaatsen, zodat de relatieve locaties van de bestanden hetzelfde zijn als toen de asset werd gemaakt.
Notitie
Maak liever assets die relatieve paden bevatten. De zelfstudie over het instellen van materialen voor 3ds Max geeft een 3ds Max-voorbeeld van hoe een asset relatieve paden gebruikt.
Patronen zoeken
Vanwege de vele manieren waarop assets kunnen worden gegenereerd, moet de conversieservice flexibel zijn. Het moet met name situaties afhandelen waarin de paden in de asset en de locatie van patronen niet precies overeenkomen. Een voorbeeld is wanneer assets worden gegenereerd die absolute paden bevatten, omdat deze paden nooit overeenkomen met het bestandssysteem dat door de conversieservice wordt gebruikt. Om deze situatie onder andere af te handelen, gebruiken we een best effort-benadering om patronen te vinden.
Het algoritme voor het vinden van patronen is als volgt: Als een pad wordt opgeslagen in een asset, zoekt u het langste subpadachtervoegsel dat, wanneer deze wordt gebruikt als een relatief pad vanaf de locatie van de bronasset, een bestand bereikt dat bestaat. Als een dergelijk subpad (inclusief het hele pad) niet is gericht op een bestand, wordt het patroon beschouwd als ontbrekend.
Houd rekening met het volgende gewende bestandssysteem:
G:\CONVERSION
├───Assets
│ │ myAsset.fbx
│ │ myTexture.png <- A
│ │
│ └───Textures
│ │ myTexture.png <- B
│ │
│ └───MyAssetTextures
│ myTexture.png <- C
│
└───Textures
│ myTexture.png <- D
│
└───MyAssetTextures
myTexture.png <- E
Als myAsset.fbx verwijst naar een textuur met het relatieve pad ..\Textures\MyAssetTextures\myTexture.png
, gebruikt de conversieservice bestand E. In feite kan het elk van de bestanden A, C en E gebruiken als ze bestaan, waarbij bestand E de voorkeur heeft omdat het wordt gevonden met het langste achtervoegsel.
Bestanden B en D worden nooit gebruikt, omdat Textures\myTexture.png
ze geen deel uitmaken van een achtervoegsel van het opgeslagen pad.
Als de asset in plaats daarvan de paden H:\Foo\Bar\Textures\MyAssetTextures\myTexture.png
bevat of ..\..\..\Foo\Bar\Textures\MyAssetTextures\myTexture.png
, kan de conversieservice de bestanden A en C vinden als deze bestaan (liever C boven A). E kan echter niet op deze manier worden gevonden en het bestand moet worden verplaatst.
Dit kan worden opgelost door de map Textures naast de asset te verplaatsen.
Notitie
Als er geen patronen worden gevonden, is een mogelijke remedie om ervoor te zorgen dat het activum een broer is van een substructuur die de texturen bevat.