Wprowadzenie do SeExpr¶
Nowe w wersji 4.4: Ten dokument wprowadzi ma na celu wprowadzenie do języka wyrażeń SeExpr.
Czym jest SeExpr?¶
SeExpr jest językiem osadzalnych wyrażeń, stworzonym przez Disney Animation, który umożliwia programom gospodarza na dynamiczne wyświetlanie stworzonej treści. Pixar nazywa to w swojej dokumentacji a „skryptowy twórca i spajacz wzorców”.
SeExpr jest dostępny w Kricie jako warstwa wypełnienia.
Tło¶
Aby zrozumieć o czym jest SeExpr, potrzebujemy rozróżnić na grafikę rastrową oraz proceduralną.
Duża większość rzeczy stworzonych na komputer, którą widzisz na co dzień należy do pierwszego rodzaju – obrazy takiej jak zdjęcia, twoje ulubione zrzuty ekranu z anime, memy, to wiele drobnych kropek barw lub pikseli ułożonych w siatkę.
Grafika rastrowa ma dwie wady, Jedna to taka, że jej rozdzielczość jest stała. Nie możesz jej powiększyć i naglę uzyskać więcej szczegółów. A gdy potrzebujesz dokonać w niej zmian, to albo wróć do źródła i wykonaj ponowne próbkowanie (co czasami jest niemożliwe) lub dokonaj zmian w programie graficznym, takim jak Krita.
Jednym z największych kłopotów jest jednak to, że zawsze jesteśmy ograniczeni przez przestrzeń, którą nasze programy są w stanie wykorzystać; albo w postaci pamięci ulotnej, takiej jak karty pamięci albo pamięć RAM. Bez spakowania, zapotrzebowanie obrazów na pamięć jest kwadratowe względem rozmiaru obrazu. Dla szybkiego przedstawienia tego, okno dialogowe Krity Utwórz nowy dokument mówi ci, że są trzy rodzaje danych: jego rozmiar w pikselach, sam rozmiar piksela oraz całkowita potrzebna pamięć.
Oto podsumowanie dla tekstur kwadratowych. Zwróć uwagę, że potrzebna pamięć obliczana jest jedynie dla jednej warstwy:
Rozmiar |
Potrzebna pamięć |
---|---|
256 |
256 KB |
512 |
1 MB |
1024 |
4 MB |
2048 |
16 MB |
4096 |
64 MB |
Drugim wyjściem jest użycie Grafika wektorowa. Grafika wektorowa, na przykład SVGs, stosuje równania matematyczne takie jak krzywe sklejane oraz Béziera do opisu kształtów. Ponieważ są one matematycznie określone, to ich rozmiar można zmieniać bez utraty rozdzielczości.
SeExpr należy do innej klasy, proceduralnej grafiki. Podobnie do grafiki wektorowej, grafika proceduralna potrzebuje tylko kilku kilobajtów pamięci ulotnej do określenia siebie. Nie są onej jednak określone poprzez równania matematyczne; tak na prawdę to kodujesz to w jaki sposób barwa jest obliczana w każdym punkcie tekstury. A ponieważ nie jest to ograniczone w swojej dokładności, to możesz wyświetlać złożone wzory na swoich warstwach w całkowicie losowej rozdzielczości.
Pisanie skryptu¶
W tym samouczku pokażemy jak napisać skrypt w SeExpr, wyświetlić go na warstwie, a na końcu zapisać go jako nastawę.
Zaczniemy od przejścia do Warstwy i dodania nowej warstwy wypełnienia. Następnie wybierz twórcę SeExpr z listy. Zostaniesz przywitany następującym oknem:
Okno tworzenia SeExpr jest podzielone na dwie karty. Na razie pozostaniemy na karcie Ustawień.
Informacja
Warstwy wypełnienia opisuje te karty w większych szczegółach.
Zacznijmy od namalowania warstwy jasnoniebieskiej.
Najpierw skrypt SeExpr musi wskazać zmienną wyjściową, nazwijmy ją $color
. SeExpr myśli o barwach w przestrzeni barw RGB, gdzie zmienne barw są określone wartościami trójkowymi znanymi jako wektor. Zaczniemy od stworzenia zmiennej $color
i nadania jej wartości.
Przejdź do pola tekstowego i wyczyść je, jeśli zawiera jakikolwiek tekst. Następnie określ i ustaw $color
na coś takiej jak [0.5, 0.5, 1]
(w połowie podświetlony na czerwono, na zielono i w pełni podświetlony na niebiesko):
$color = [0.5, 0.5, 1];
SeExpr musi wiedzieć, która zmienna przechowuje ostateczną wartość barwy. Można tego dokonać, pisząc na końcu, w jej własnym wierszu, nazwę zmiennej:
$color
Skrypt powinien teraz wyglądać tak:
$color = [0.5, 0.5, 1];
$color
Naciśnij OK, a wyświetlisz swój pierwszy skrypt!
Ostrzeżenie
Aby być całkowicie dokładnym, SeExpr nie posiada zarządzania barwami. Zawsze wyświetla tekstury jako obrazy sRGB opisane liczbami rzeczywistymi 32-bitowymi, z poprawioną gammą. Krita przekształca je do przestrzeni barw twojego dokumentu przy użyciu profilu sRGB-elle-V2-srgbtrc.icc.
Przeczytaj Praca z zarządzaniem barwami, aby się dowiedzieć, co to oznacza.
Zarządzanie skryptami przy użyciu elementów interfejsu¶
Istnieje także inny sposób na określenie i zmianę twoich zmiennych. Otwórz właściwości warstwy wypełniającej poprzez naciśnięcie prawym klawiszem myszy na Warstwa wypełnienia 1, i wybierz Właściwości warstwy….
Zauważyłeś środkowe pole? Zaraz gdy zostanie wykryty składniowo poprawny skrypt, SeExpr uruchamia wiele przełączników do zarządzania każdą zmienną. W naszym powyższym przykładzie, możesz zmienić zmienną $color
na trzy sposoby:
wpisz wartość czerwonego, zielonego lub niebieskiego kanału w polach wprowadzania
przesuń małe barwne suwaki, aby zmienić dany kanał
naciśnij na kwadracie podglądu po lewo od pól, aby wybrać całkowicie nową barwę.
Ostatni przycisk w polu środkowym, to zawsze Dodaj nową zmienną. Naciśnij go, a otworzy się okno dialogowe:
To okno dialogowe pokazuje wszystkie rodzaje zmiennych, które przyjmuje SeExpr:
- Krzywa i krzywa barw¶
Istnieje wersja SeExpr Gradientów z przystankami: interpolują rampy na podstawie danego zestawu wartości.
Krzywe przedstawiają gradienty 1D, zwracają pojedynczą liczbę rzeczywistą w każdym punkcie obliczania.
Krzywe barw przedstawiają gradienty RGB, zwracając barwę w każdym punkcie.
- Liczby całkowite i rzeczywiste¶
Liczby.
- Wektor¶
Trójka liczb rzeczywistych.
- Barwa¶
Wektor przedstawiający barwę RGB.
- Łata¶
Lista barw.
- Ciąg znaków¶
Zazwyczaj pojedyncze słowa.
Na przykład, możesz powielić $color
na karcie Wektor:
Tworzenie pierwszej nastawy¶
Gdy twój skrypt będzie gotowy, to możesz go wykorzystać ponownie, tworząc nastawę.
Możesz utworzyć jedną na górnym pasku karty Ustawień:
Wybierz Zapisz nową nastawę SeExpr… a pojawi się następujące okno dialogowe:
Możesz zmienić nazwę nastawy w górnym wierszu pola wprowadzania i przypisać miniaturę do łatwego rozpoznania.
Podpowiedź
Okno dialogowe dołączy „Copy” do nazwy nastawy, jeśli będzie ona kopią już istniejącej nastawy. Masz możliwość zmiany tej nazwy.
Okno dialogowe daje następujące możliwości do wybierania miniatur:
- Wczytaj istniejącą miniaturę¶
Jeśli nastawa ma już swoją miniaturę (na przykład, jeśli stworzyłeś ją z już istniejącej nastawy), to przycisk ten wczyta i zastosuje ją.
- Wczytaj obraz¶
Nakłada obraz z systemu plików jako miniaturę.
- Wyświetl skrypt na miniaturze¶
Twój skrypt wyświetli teksturę 256x256 i nałoży późniejszą jako miniaturę.
- Wyczyść miniaturę¶
Usuwa miniaturę. Zauważ, że gdy nastawa jest powieleniem istniejącej, to można ją wycofać poprzez naciśnięcie Wczytaj istniejącą miniaturę.
Zmiana istniejących nastaw¶
Jeśli wprowadzisz zmiany do skryptu z nastaw, to pojawią się dwa nowe przycisk na górnym pasku karty Ustawień:
Przycisk ponownego wczytania przywróci nastawę do jej pierwotnych właściwości, podczas gdy naciśnięcie na Zastąp nastawę zachowa twoje zmiany.
Dodatkowo możesz zmienić nazwę nastawy po naciśnięciu na przycisku zmiany nazwy, wpisaniu nowej nazwy i naciśnięciu Zapisz:
Tworzenie pęków z nastaw¶
Współdzielenie twoich skryptów jest łatwe! Skrypty SeExpr z nastaw są takim samym zasobem jak każdy inny w Kricie. Przeczytaj jak stworzyć swoje własne pęki w Zarządzanie zasobami.