Ustalanie układu plików na potrzeby konwersji

Aby poprawnie przetworzyć zasób, usługa konwersji musi mieć możliwość znalezienia wszystkich plików wejściowych. Składają się one z głównego pliku zawartości, który jest konwertowany, a zwykle niektóre inne pliki przywoływane przez ścieżki w pliku zasobu. Żądanie konwersji elementu zawartości ma dwa parametry, które określają, w jaki sposób usługa konwersji znajduje następujące pliki: settings.inputLocation.blobPrefix (opcjonalnie) i settings.inputLocation.relativeInputAssetPath. Są one w pełni udokumentowane na stronie interfejsu API REST konwersji. W celu układania plików ważne jest, aby pamiętać, że BlobPrefix określa kompletny zestaw plików, które są dostępne dla usługi konwersji podczas przetwarzania zasobu.

Uwaga

Usługa pobierze wszystkie pliki w obszarze danych wejściowych. Prefiks obiektu blob. Upewnij się, że nazwy plików i ścieżki nie przekraczają limitów długości ścieżki systemu Windows, aby uniknąć problemów z usługą.

Umieszczanie plików w taki sposób, aby można je było znaleźć

Gdy zasób źródłowy korzysta z plików zewnętrznych, ścieżki do tych plików będą przechowywane w ramach zasobu. Usługa konwersji musi interpretować te ścieżki w systemie plików, który różni się od oryginalnego systemu plików zasobu. Jeśli ścieżki są przechowywane jako ścieżki względne i względna lokalizacja między elementem zawartości źródłowej a plikiem, do których się odwołuje, jest niezmieniona, łatwo jest znaleźć w usłudze konwersji plik, do których się odwołujesz.

Uwaga

Zalecamy umieszczenie plików w kontenerze wejściowym, aby względne lokalizacje plików były takie same jak podczas tworzenia zasobu.

Uwaga

Preferuj tworzenie zasobów, które mają ścieżki względne. Samouczek dotyczący konfigurowania materiałów dla 3ds Max zawiera przykład 3ds Max , jak zapewnić, że zasób korzysta ze ścieżek względnych.

Znajdowanie tekstur

Ze względu na wiele sposobów generowania zasobów usługa konwersji musi być elastyczna. W szczególności musi obsługiwać sytuacje, w których ścieżki w zasobie i lokalizacja tekstur nie są dokładnie zgodne. Przykładem jest generowanie zasobów zawierających ścieżki bezwzględne, ponieważ te ścieżki nigdy nie będą zgodne z systemem plików używanym przez usługę konwersji. Aby poradzić sobie między innymi z tą sytuacją, użyjemy najlepszego podejścia do znajdowania tekstur.

Algorytm lokalizowania tekstur jest następujący: Biorąc pod uwagę ścieżkę przechowywaną w elemencie zawartości, znajdź najdłuższy sufiks ścieżki podrzędnej, który, gdy jest używany jako ścieżka względna z lokalizacji zasobu źródłowego, jest przeznaczony dla pliku, który istnieje. Jeśli nie ma takiej ścieżki podrzędnej (w tym całej ścieżki) pliku, tekstura jest uważana za brakującą.

Rozważmy następujący contrived filesystem:

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

Jeśli myAsset.fbx odwołuje się do tekstury ze ścieżką ..\Textures\MyAssetTextures\myTexture.pngwzględną , usługa konwersji użyje pliku E. W rzeczywistości może używać dowolnych plików A, C i E, jeśli istnieją, a plik E jest preferowany, ponieważ znajduje się z najdłuższym sufiksem. Pliki B i D nigdy nie będą używane, ponieważ Textures\myTexture.png nie jest częścią żadnego sufiksu przechowywanej ścieżki. Jeśli zasób zawierał ścieżki H:\Foo\Bar\Textures\MyAssetTextures\myTexture.png lub ..\..\..\Foo\Bar\Textures\MyAssetTextures\myTexture.png, usługa konwersji będzie mogła znaleźć pliki A i C, jeśli istnieją (preferując język C za pośrednictwem A). Nie można jednak odnaleźć E w ten sposób, a plik musi zostać przeniesiony. Można to naprawić, przenosząc folder Tekstury obok elementu zawartości.

Uwaga

Jeśli nie znaleziono tekstur, możliwym środkiem zaradczym jest zapewnienie, że zasób jest elementem równorzędnym niektórych poddrzewa zawierającego tekstury.

Następne kroki