Partilhar via


Preparação de ficheiros para conversão

Para processar corretamente um ativo, o serviço de conversão precisa ser capaz de encontrar todos os arquivos de entrada. Estes consistem no arquivo de ativo principal sendo convertido e geralmente alguns outros arquivos referenciados por caminhos dentro do arquivo de ativo. A solicitação para converter um ativo recebe dois parâmetros que determinam como o serviço de conversão encontra esses arquivos: O settings.inputLocation.blobPrefix (que é opcional) e o settings.inputLocation.relativeInputAssetPath. Eles estão totalmente documentados na página Conversion REST API . Para fins de disposição de arquivos, a coisa importante a notar é que o determina conjunto completo de arquivos que estão disponíveis para o serviço de conversão ao processar o BlobPrefix ativo.

Nota

O serviço irá baixar todos os arquivos sob a entrada. BlobPrefix. Verifique se os nomes de arquivo e os caminhos não excedem os limites de comprimento de caminho do Windows para evitar problemas no serviço.

Colocação de ficheiros para que possam ser encontrados

Quando um ativo de origem faz uso de arquivos externos, os caminhos para esses arquivos serão armazenados dentro do ativo. O serviço de conversão tem que interpretar esses caminhos em um sistema de arquivos diferente do sistema de arquivos original do ativo. Se os caminhos forem armazenados como caminhos relativos e o local relativo entre o ativo de origem e o arquivo ao qual ele faz referência estiver inalterado, será fácil para o serviço de conversão encontrar o arquivo referenciado.

Nota

Recomendamos que você coloque arquivos no contêiner de entrada para que os locais relativos dos arquivos sejam os mesmos de quando o ativo foi criado.

Nota

Prefira criar ativos que tenham caminhos relativos. O tutorial sobre como configurar materiais para o 3ds Max dá um exemplo do 3ds Max de como garantir que um ativo use caminhos relativos.

Encontrar texturas

Devido às muitas maneiras como os ativos podem ser gerados, o serviço de conversão tem que ser flexível. Em particular, ele tem que lidar com situações em que os caminhos no ativo e a localização das texturas não correspondem com precisão. Um exemplo é quando os ativos são gerados contendo caminhos absolutos, uma vez que esses caminhos nunca corresponderão ao sistema de arquivos usado pelo serviço de conversão. Para lidar com esta situação, entre outras, usamos uma abordagem de melhor esforço para encontrar texturas.

O algoritmo para localizar texturas é o seguinte: Dado um caminho como armazenado em um ativo, encontre o sufixo de subcaminho mais longo que, quando usado como um caminho relativo do local do ativo de origem, tem como alvo um arquivo existente. Se nenhum desses subcaminhos (incluindo todo o caminho) tiver como alvo um arquivo, a textura será considerada ausente.

Considere o seguinte sistema de arquivos inventado:

G:\CONVERSION
├───Assets
│   │   myAsset.fbx
│   │   myTexture.png            <- A
│   │
│   └───Textures
│       │   myTexture.png        <- B
│       │
│       └───MyAssetTextures
│               myTexture.png    <- C
│
└───Textures
    │   myTexture.png            <- D
    │
    └───MyAssetTextures
            myTexture.png        <- E

Se myAsset.fbx fizer referência a uma textura com o caminho ..\Textures\MyAssetTextures\myTexture.pngrelativo, o serviço de conversão usará o arquivo E. Na verdade, ele pode usar qualquer um dos arquivos A, C e E, se existirem, com o arquivo E sendo preferido, uma vez que é encontrado com o sufixo mais longo. Os arquivos B e D nunca serão usados, porque Textures\myTexture.png não faz parte de nenhum sufixo do caminho armazenado. Se, em vez disso, o ativo contiver os caminhos H:\Foo\Bar\Textures\MyAssetTextures\myTexture.png ou ..\..\..\Foo\Bar\Textures\MyAssetTextures\myTexture.png, o serviço de conversão poderá encontrar os arquivos A e C, se eles existirem (preferindo C a A). No entanto, E não pode ser encontrado desta forma, e o arquivo terá que ser realocado. Isso pode ser corrigido movendo a pasta Texturas ao lado do ativo.

Nota

Se as texturas não estão sendo encontradas, uma possível solução é garantir que o ativo seja um irmão de alguma subárvore contendo as texturas.

Próximos passos