Compartilhar via


Layout de arquivos para conversão

Para processar um ativo corretamente, o serviço de conversão precisa conseguir localizar todos os arquivos de entrada. Eles consistem no arquivo de ativo principal que está sendo convertido e, geralmente, em alguns outros arquivos referenciados por caminhos no arquivo de ativo. A solicitação para converter um ativo recebe dois parâmetros que determinam como o serviço de conversão localiza esses arquivos: o settings.inputLocation.blobPrefix (que é opcional) e o settings.inputLocation.relativeInputAssetPath. Eles são totalmente documentados na página da API REST de Conversão. Com a finalidade de dispor os arquivos, o importante a ser observado é que o BlobPrefix determina o conjunto completo de arquivos que estão disponíveis para o serviço de conversão durante o processamento do ativo.

Observação

O serviço fará o download de todos os arquivos em input.BlobPrefix. Verifique se os nomes e caminhos de arquivo não excedem os limites de comprimento de caminho do Windows para evitar problemas no serviço.

Como colocar arquivos para que eles possam ser encontrados

Quando um ativo de origem faz uso de arquivos externos, os caminhos para esses arquivos são armazenados no ativo. O serviço de conversão precisa interpretar esses caminhos em um sistema de arquivos que é diferente do sistema de arquivos original do ativo. Se os caminhos forem armazenados como caminhos relativos e a localização relativa entre o ativo de origem e o arquivo o qual ele referencia for inalterado, será fácil para o serviço de conversão localizar o arquivo referenciado.

Observação

Recomendamos colocar os arquivos no contêiner de entrada para que as localizações relativas dos arquivos sejam as mesmas de quando o ativo foi criado.

Observação

Prefira criar ativos que contenham caminhos relativos. O tutorial sobre como configurar materiais para o 3DS Max fornece um exemplo do 3DS Max de como garantir que um ativo use caminhos relativos.

Como localizar texturas

Devido às muitas maneiras que os ativos podem ser gerados, o serviço de conversão precisa ser flexível. Em particular, ele precisa lidar com situações em que os caminhos no ativo e na localização das texturas não sejam correspondências precisas. Um exemplo disso é quando são gerados ativos contendo caminhos absolutos, pois esses caminhos nunca corresponderão ao sistema de arquivos usado pelo serviço de conversão. Para lidar com essa situação, entre outras, usamos uma abordagem de melhor esforço para a localização de texturas.

O algoritmo usado para localizar texturas é o seguinte: considerando um caminho armazenado em um ativo, localize o sufixo de subcaminho mais longo que, quando usado como um caminho relativo da localização do ativo de origem, tenha como destino um arquivo existente. Se nenhum subcaminho (incluindo o caminho inteiro) tiver um arquivo como destino, a textura será considerada como ausente.

Considere o seguinte sistema de arquivos forçado:

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 referenciar uma textura com o caminho relativo ..\Textures\MyAssetTextures\myTexture.png, o serviço de conversão usará o arquivo E. Na verdade, ele poderá usar um dos arquivos A, C e E, se houver, com o arquivo E sendo preferencial, pois ele é considerado como tendo 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 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á localizar os arquivos A e C, se houver (com preferência de C em relação a A). No entanto, E não poderá ser encontrado dessa maneira, e o arquivo precisará ser relocado. Isso pode ser corrigido pela movimentação da pasta Texturas ao lado do ativo.

Observação

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

Próximas etapas