Parentowanie klipów: animacje, które się sumują
Jest taka technika w profesjonalnej animacji, którą łatwiej pokazać niż opisać. Obiekt jedzie z punktu A do punktu B — a w połowie tej drogi coś zaczyna go nieść dalej, do punktu C. Zamiast „ruch, stop, ruch" widz dostaje jedną płynną trajektorię, która po drodze zakręca. Bez tej techniki trzeba by ręcznie przeliczać klatki kluczowe na jednej krzywej — i przepisywać je od zera przy każdej poprawce timingu.
Od dziś edytor scen Moonlight to umie. Nazywa się to parentowaniem klipów: dowolny klip można podpiąć pod inny jako „dziecko". Ruch rodzica niesie dziecko, a klatki kluczowe obu sumują się w czasie — dziecko może mieć własną animację, rodzic swoją, i obie grają naraz.
Rodzicem może być cokolwiek
Nie ma tu żadnego specjalnego „obiektu sterującego", który trzeba by tworzyć. Rodzicem może być zwykły obrazek, tekst, sekwencja klatek, wideo, element z biblioteki. Podpinasz podpis pod dymek — podpis jedzie z dymkiem. Podpinasz kilka elementów pod jeden — przesuwasz jeden, jedzie cała grupa, a każdy element wciąż ma własne klatki kluczowe.
A kiedy rodzic ma tylko sterować i nie pokazywać się w kadrze, jest do tego klip pusty: sam transform z klatkami kluczowymi, w edytorze widoczny jako mały krzyżyk-uchwyt, w opublikowanej scenie — nic. Zero kosztu, czysta kontrola.
Szczegóły, które robią różnicę
Najwięcej pracy poszło nie w samo składanie ruchów, tylko w to, żeby zachowywało się uczciwie w każdej sytuacji:
- Podpięcie niczego nie rusza. Domyślny tryb przelicza klatki kluczowe dziecka tak, żeby obraz nie drgnął ani o piksel — także wtedy, gdy dziecko już ma własną animację.
- Cofnięcie działa naprawdę. Podpięcie to jeden krok cofania; Ctrl+Z przywraca i relację, i klatki, i to również w bazie — nie tylko na ekranie.
- Rodzic, który skończył swój ruch, trzyma dzieci w miejscu — nie odskakują w połowie ujęcia.
- Obrócony rodzic z nierównomierną skalą pochyla dziecko — tak, jak każe geometria. To poza, której zwykłe przesunięcie-obrót-skala nie umie zapisać, więc format dostał nowe pole i wszystkie renderery nauczyły się je czytać.
- Cykli nie da się zrobić. Lista kandydatów na rodzica po prostu nie pokazuje klipów, które domknęłyby pętlę.
Wszędzie znaczy wszędzie
Scena z parentowaniem wygląda identycznie w edytorze, w obu czytnikach komiksów, w publicznym podglądzie sceny i w eksporcie HTML. Ta sama relacja działa też w aplikacji desktopowej Moonlight Animate Studio — dokument jest wspólny, więc scena podpięta na komputerze gra tak samo w przeglądarce i odwrotnie. Współpraca na żywo przenosi relacje między uczestnikami bez żadnej dodatkowej konfiguracji.
Funkcja przeszła pełny cykl: research, plan, audyt planu (który wyrzucił z niego pięć fałszywych założeń, zanim powstała linia kodu), wykonanie i twardy audyt końcowy, po którym naprawiliśmy wszystko, co znalazł — łącznie z rzeczami, których żaden test automatyczny nie miał prawa zauważyć. To dłuższa droga, ale dzięki niej to, co dziś trafia na produkcję, zachowuje się przewidywalnie także w rogach, do których rzadko się zagląda.