CACHE · hero_char.abcKLATKI · 1-120ŹRÓDŁO · nieistotne
Rozdział 10 / Wymiana danych

Alembic: cache geometrii między aplikacjami

Animacja policzona w jednym programie musi trafić bez zmian do drugiego — plik, który zamraża tylko kształt, nie recepturę na jego policzenie.

TL;DR

Rozdział 3 pokazał mapę działów: layout, animacja, fx, lighting, comp — każdy w innym programie DCC. Animator pracuje w Mayi na rigu z kontrolerami. Artysta FX potrzebuje tej samej, gotowej animacji w Houdinim, żeby symulować na niej ubranie i włosy. Problem: Houdini nie rozumie riga Mayi — nie zna jej węzłów, jej historii konstrukcyjnej, jej systemu deformerów. Gdyby jedynym sposobem przekazania animacji było przesłanie całej sceny Mayi, każdy odbiorca musiałby mieć Mayę, ten sam rig i identyczne wersje wszystkich wtyczek. To rozwiązanie kruche i wolne. Alembic istnieje po to, żeby tego uniknąć.

Etap: Przepis kontra wynik

Nie wysyłaj przepisu, wyślij ciasto

Kluczowe rozróżnienie brzmi: przepis kontra wynik. Rig w Mayi to przepis — zestaw kontrolerów, deformerów i zależności, które obliczają pozycję każdego wierzchołka w danej klatce, ale same w sobie nie są tą pozycją. Alembic zapisuje wynik tego obliczenia: dla każdej klatki, dla każdego wierzchołka, dokładną pozycję w przestrzeni — bez informacji o tym, jak ta pozycja powstała. To proces nazywany bakingiem (zapiekaniem). Odbiorca takiego pliku nie musi rozumieć riga, bo rig już wykonał swoją pracę, zanim plik powstał — zostaje tylko czysta geometria, zmieniająca kształt klatka po klatce.

Etap: Co faktycznie jest w środku

Hierarchia obiektów, próbkowana w czasie

Plik Alembic (rozszerzenie .abc) przechowuje hierarchię obiektów bardzo podobną do tej, którą widzisz w outlinerze DCC — grupy, siatki (mesh), krzywe, chmury punktów, kamery — gdzie każdy obiekt ma zestaw atrybutów próbkowanych (sampled) w kolejnych klatkach: pozycję, orientację, kształt geometrii. Format jest zoptymalizowany pod szybki, sekwencyjny odczyt — dokładnie to, czego potrzebuje program odtwarzający animację klatka po klatce — kosztem tego, że nie da się go sensownie edytować w miejscu. Chcesz zmienić coś w animacji zapisanej w Alembicu? Wracasz do źródła (riga w Mayi), zmieniasz tam, i zapiekasz nowy plik.

Alembic.bakeJedno źródło, wiele odbiorców
Rig + krzywe animacji rozumie tylko Maya bake hero_char.abc xyz per wierzchołek, per klatka Houdini — FX Katana / lighting Nuke — comp (3D)
Każdy odbiorca widzi identyczny wynik, bez potrzeby posiadania Mayi ani znajomości riga.
Etap: Czego Alembic nie robi

To geometria, nie cały wygląd

Alembic celowo robi jedną rzecz. Nie niesie informacji o materiałach ani shaderach — surfacing z Rozdziału 3 to osobna warstwa, dołączana już po stronie odbiorcy (Rozdział 11 pokaże, jak USD spina te warstwy w jedną całość). Nie jest też edytowalny w sensowny sposób — traktuj go jako zdjęcie stanu, nie jako plik roboczy. I, tak jak każdy inny wynik pracy w tej książce, cache Alembic jest publikowany dokładnie w mechanizmie z Rozdziału 7: dostaje własny numer wersji, trafia do publish/, i to właśnie ta opublikowana wersja — nie plik z work/ animatora — trafia do FX, lightingu i compu.

Słowniczek
Bake (zapiekanie)
Obliczenie i zapisanie finalnego wyniku (np. pozycji wierzchołków) zamiast przepisu, który go generuje.
Sample (próbka)
Wartość atrybutu zapisana dla konkretnej klatki w czasie.
Cache
Plik przechowujący gotowy wynik obliczeń, do odczytu bez ponownego ich wykonywania.
Alembic (.abc)
Otwarty format cache'u geometrii, niezależny od aplikacji, w której powstał.