Moonlight Animate: pełne API skryptów i automatyzacja
Moonlight Animate: pełne API skryptów i automatyzacja
Skrypty w Moonlight Animate przestają być ciekawostką, a stają się pełnoprawnym narzędziem pracy. Dotąd
można było automatyzować właściwie tylko filtry i korekcje — a nagrywanie „Akcji" rejestrowało wyłącznie
te dwie rzeczy. Od tej aktualizacji obiekt app w konsoli skryptów obejmuje cały edytor, a nagrywanie
akcji zapisuje wszystko, co robisz.
Co potrafią teraz skrypty
Globalny obiekt app dostał kompletne, dziedzinowe „przestrzenie nazw" — każda to zestaw poleceń dla danego
obszaru programu:
app.layer.*— warstwy: tryb mieszania, krycie, widoczność, nazwa, blokady, grupy, zaznaczenie wielu warstw naraz, wyrównywanie i rozmieszczanie, scalanie i spłaszczanie.app.mask.*— maski rastrowe i wektorowe: dodaj/ukryj, z zaznaczenia, gęstość i wtapianie, maska przycinająca.app.select.*— zaznaczenia: prostokąt, elipsa, z luminancji/alfy, wtapianie, powiększ/zmniejsz, obwódka, wygładź, transformacja, wypełnij/wyczyść/skopiuj na nową warstwę.app.image.*— obraz i płótno: rozmiar, skalowanie, kadrowanie, obrót, odbicie, tryby koloru.app.color.*— kolory pierwszego planu i tła, gradient (stopnie, styl), wzory, ustawienia wiadra.app.transform.*— transformacje warstwy: odbicie, obrót, przesunięcie, skala, swobodne przekształcenie.app.brush.*— ustawienia pędzla i programowe pociągnięcia (stroke/dab).app.text.*— warstwy tekstowe: utwórz (font, rozmiar, kolor, pogrubienie, wyrównanie), zmień treść, rasteryzuj.app.path.*— ścieżki wektorowe.app.anim.*— animacja: liczba klatek na sekundę, ścieżki, klatki kluczowe na osi czasu.
Do tego doszła introspekcja (app.docInfo(), app.layerInfo(i) zwracają informacje o dokumencie i
warstwach — przydatne w skryptach warunkowych) oraz tryb headless (app.applyAdjustmentHeadless,
app.applyFilterHeadless) do automatyzacji bez wyskakujących okien.
Nagrywanie, które nareszcie nagrywa wszystko
Najważniejsza zmiana w praktyce: panel „Akcje" zapisuje teraz każdą operację, nie tylko filtry. Włącz „Nagrywaj", popracuj normalnie — dodaj warstwę, zmień tryb mieszania, zrób zaznaczenie, przekształć, wpisz tekst — a Moonlight Animate zbuduje z tego gotowy skrypt, który odtworzysz jednym kliknięciem albo zapiszesz do pliku i uruchomisz wsadowo na całym folderze obrazów.
Pod spodem działa to elegancko: każde wywołanie API jest przechwytywane automatycznie, więc nagrywanie obejmie też wszystkie przyszłe polecenia bez dodatkowej pracy. Zadbaliśmy przy tym o szczegóły, które łatwo przeoczyć — odtwarzanie akcji nie nagrywa się powtórnie, a same zapytania (np. „ile jest warstw") nie zaśmiecają nagrania.
Solidne fundamenty
Całość to cienkie nakładki na sprawdzone mechanizmy edytora — skrypty wołają dokładnie ten sam kod, co interfejs, więc zachowują się identycznie jak ręczna praca. Nowy kod przeszedł rygorystyczny przegląd pod kątem błędów (wyłapaliśmy i naprawiliśmy m.in. ryzyko „puchnącego" nagrania przy odtwarzaniu oraz nieoczekiwane operacje na aktywnej warstwie) — zanim trafił do Was.
To pierwszy krok większego planu: w kolejnych odsłonach Moonlight Animate dostanie wizualny edytor węzłów do proceduralnego tworzenia tekstur i automatyzacji „klockami" — a opisane tu API będzie jego silnikiem.