Kadry i dymki: strona komiksu składa się teraz jak strona komiksu
Komiks to nie tylko rysunki. Zanim czytelnik zobaczy pierwszą kreskę, ktoś musiał podzielić stronę na kadry, poprowadzić między nimi rytm, a potem wpisać w to wszystko wypowiedzi bohaterów. Do tej pory Moonlight pomagał głównie rysować — od dziś pomaga też łamać stronę i pisać dialogi, i to w obu światach naraz: w desktopowym Moonlight Animate Studio i w webowym edytorze scen.
Kadry, które się edytuje, a nie rysuje od nowa
W aplikacji desktopowej kadr jest folderem z maską — wrzucasz do niego tło, postacie i efekty, a wszystko przycina się do kształtu panelu. Rysujesz spokojnie „na zapas", poza krawędź, i nic nie wycieka na sąsiedni kadr.
Nowe narzędzie edycji kadrów rozumie przy tym, jak strona komiksu jest zbudowana. Kiedy łapiesz za krawędź kadru i ją przesuwasz, narzędzie samo znajduje sąsiadów po drugiej stronie rynny i prowadzi ich razem — odstęp między kadrami zostaje równy, jakby strona była z gumy, a nie z osobnych klocków. Można to wyłączyć jednym klawiszem, można też przesuwać pojedynczy bok. Szerokość rynny da się zmienić po fakcie, dla jednej pary kadrów albo całej strony. Do tego cięcie kadrów pod dowolnym kątem (z przyciąganiem do pionu/poziomu/45°), dzielenie równe N×M jednym oknem, żółte strzałki dociągające kadr do sąsiada, do ramki strony albo do spadu — i podgląd przyciemnienia wszystkiego, co leży poza kadrami.
Dymki dialogowe: obiekt, nie obrazek
Dymek narysowany raz bywa poprawiany dziesięć razy — bo tekst urósł, bo kolor nie gra, bo ogon celuje w złą postać. Dlatego dymki w Moonlight są obiektami: kształt, styl i ogony żyją w danych, a piksele są z nich przeliczane. Klikasz — zaznaczasz, łapiesz za uchwyt — skalujesz, zmieniasz kolor w pasku — dymek zmienia się od razu. Po tygodniach też.
Najprzyjemniejsza część: wspólny obrys. Dwa dymki tej samej wypowiedzi, nałożone na siebie, sklejają się w jeden kształt — linia w miejscu styku znika, dokładnie jak w profesjonalnym liternictwie komiksowym. Ogon jest osobnym obiektem: szeroki u nasady, zwężający się do czubka, przyklejony do konturu (przesuniesz dymek — ogon jedzie z nim i dalej siedzi na obrysie). Czubek można poprowadzić łamaną, zakończyć na ostro albo na okrągło, a przeciągnięty do środka dymku wycina w konturze wcięcie — klasyczny zabieg, gdy mówca stoi poza kadrem.
Warstwa dymków uczciwie mówi, czym jest: malowanie po niej pędzlem czy wiadrem nie przepada po cichu — program pyta, czy zamienić ją w zwykły raster, i jedno Ctrl+Z zawsze przywraca edytowalne dymki.
Web dostał to samo — z prawdziwą geometrią
Kadry i dymki działają też w webowym edytorze scen — jako pełnoprawne klipy. Kadr przycina przypisane do niego rysunki wszędzie: w edytorze, w obu czytnikach, w publicznym podglądzie sceny i w eksporcie HTML. A dymki nie udają scalania — web liczy wspólną sylwetkę prawdziwymi operacjami na wielokątach (suma kształtów, odejmowanie wcięć), więc scalanie działa w każdym trybie: także dla dymków rysowanych samą linią i tych z półprzezroczystym wypełnieniem, a wcięcie ogona wygląda identycznie jak w aplikacji desktopowej. Matematyka obu implementacji jest pilnowana automatycznym testem zgodności — to samo wejście musi dać ten sam wielokąt co do ułamka piksela.
I wszystko na żywo, we dwoje
Największy krok jest jednak niewidoczny: geometria kadrów i dymków płynie przez sesję współpracy. Jedna osoba tnie stronę na kadry w przeglądarce, druga poprawia dymki w aplikacji desktopowej — i obie widzą to samo, na bieżąco, z osobnym „cofnij" dla każdej z nich. Po drodze domknęliśmy serię rzeczy, które w takiej synchronizacji lubią się psuć: zmiany kolejności warstw dojeżdżają teraz do drugiej strony w całości, szybkie ruchy suwakami są sklejane w jedną wiadomość zamiast zalewać łącze, a skasowanie kadru porządkuje po sobie przypięcia rysunków — także wtedy, gdy kasowała strona, która o kadrach nie wie wszystkiego.
Strona komiksu przestaje być w Moonlight zbiorem obrazków. Zaczyna być tym, czym jest naprawdę: opowieścią pociętą na kadry, w której każdy dymek wie, do kogo należy.