Wersja eng: http://docs.aegisub.org/manual/ASS_Tags lub nasza niżej 🙂

Poniżej znajduje się lista wszystkich tagów obsługiwanych przez format Advanced Substation Alpha.

Zawsze przy wprowadzaniu tagów zaczyna się od backflasha, czyli od odwrotnego ukośnika \, później musi się znaleźć nazwa tagu, a po niej parametr go określający.
Niektóre tagi są „złożone” i wymagają większej liczby parametrów. W takim wypadku umieszcza się je w okrągłych nawiasach (), oddzielając każdy z parametrów przecinkiem.

Uwaga: Wszystko zapisane w <ostrokątnych nawiasach> należy zastąpić wartością opisującą parametr. Nawiasy nie są częścią wartości parametru, którą należy wprowadzić. Do każdego tagu są wypisane przykładowe wartości, jakie można wprowadzać.

======================================

ZNAKI SPECJALNE

Następujące tagi są zapisywane w środku tekstu, nie wewnątrz bloku (tzn. { i }).

Miękkie łamanie linii
\n
Wymuszone łamanie linii. Działa tylko wtedy, kiedy łamanie linii jest ustawione na drugi tryb. „n” jest napisane małą literą.

Twarde łamanie linii
\N
Wymuszone łamanie linii. Działa niezależnie od trybu łamania linii. „N” jest napisane wielką literą.

Twarda spacja
\h
Spacja nierozdzielająca. W miejscach, gdzie zamiast normalnej spacji użyto tagu \h, linia nie ma prawa się automatycznie złamać (niezależnie od ustawień marginesów czy trybu łamania linii).

===========================================

TAGI NADPISOWE

Następujące tagi muszą być umieszczone w bloku, czyli między { i }. Wpływają na cały tekst znajdujący się za blokiem, chyba że zostanie ponownie odwołany.

Kursywa
\i1
\i0
Kursywa tekstu włącz/wyłącz. Użycie \i1 powoduje, że tekst następujący za nim będzie pochylony; \i0 wyłącza kursywę.

Przykład:
Brak kursywy – {\i1}kursywa{\i0}.
Tekst między blokami jest napisany kursywą.

Pogrubienie
\b1
\b0
\b<grubość pisma>
Pogrubienie tekstu włącz/wyłącz. Użycie \b1 powoduje, że tekst następujący za nim będzie pogrubiony; \i0 wyłącza pogrubienie.

\b<grubość pisma> umożliwia wyraźne sprecyzowanie wartości pogrubienia. Trzeba zaznaczyć, że większość czcionek obsługuje wyłącznie jedną, dwie grubości pisma, przez co w rzeczywistości rzadko się z tego korzysta. Grubość pisma zależy od wielokrotności liczby 100 (tzn. 100 jest wielkością bazową (jest najmniejsza), 400 jest „normalna”, 700 jest „pogrubiona”, 900 jest największa).

Przykład I:
Brak pogrubienia – {\b1}pogrubienie{\be0}.
Tekst między blokami jest pogrubiony.
Przykład II:
{\b100}Raz, {\b300}dwa, {\b500}trzy, {\b700}cztery, {\b900}pięć
Wyrazy są pisane z coraz to większą grubością. Uwaga: Tylko niektóre czcionki obsługują kilka grubości pisma, w innych przypadkach tekst będzie się wyświetlał wyłącznie w dwóch grubościach.

Podkreślenie
\u1
\u0
Podkreślenie tekstu włącz/wyłącz. Użycie \u1 powoduje, że tekst następujący za nim będzie podkreślony; \u0 wyłącza podkreślenie.

Przykład:
Brak przekreślenia – {\u1}przekreślenie{\u0}.
Tekst między blokami jest podkreślony.

Przekreślenie
\s1
\s0
Przekreślenie tekstu włącz/wyłącz. Użycie \s1 powoduje, że tekst następujący za nim będzie przekreślony; \s0 wyłącza przekreślenie.

Przykład:
Brak przekreślenia – {\s1}przekreślenie{\s0}.
Tekst między blokami jest przekreślony.

Wielkość obramowania
\bord<wielkość>
Szerokośc obramowania wokół tekstu. Ustawienie wartości na zero \bord0 spowoduje, że obramowanie zostanie wyłączone.
Jeśli „skalowanie obramowania i cienia” (patrz właściwości skryptu) jest aktywne, wartość będzie podawana w pikselach rozdzielczości skryptu; w przeciwnym wypadku w pikselach rozdzielczości obrazu (co oznacza, że grubość obramowania będzie się różnić w zależności od rozdzielczości wideo, na których napisy są wyświetlane).
Wartość parametru nie jest ograniczona do liczby całkowitej pikseli, może to być liczba niecałkowita.

Przykład I:
\bord0
Brak obramowania.
Przykład II:
\bord3.7
Obramowanie równe 3,7 piksela.

Wielkość obramowania (zaawansowane)
\xbord<wielkość>
\ybord<wielkość>
Te tagi są obsługiwane przez VSFilter od wersji 2.39 w górę; w przypadku softsubów mogą występować problemy.

Użycie tagów \xbord i \ybord umożliwia określenie osobno wartości pogrubienia dla szerokości X i wysokości Y. Może to być przydatne do korygowania wielkości pogrubienia dla anamorficznego renderowania napisów.

Należy pamiętać, że jeśli po \xbord bądź \ybord użyje się \bord, to dwa pierwsze będą nieuwzględniane.

Można ustawić szerokość obramowania na 0 (zero) dla jednego z kierunków, aby całkowicie wyłączyć w tym kierunku pogrubienie.

Przykład:
\xbord3\ybord2.4
Szerokość obramowania dla X wynosi 3 piksele, dla Y 2,4 piksela.

Oddalenie cienia
\shad<głębia>
Odległość cienia od pozycji tekstu. Ustawienie wartości na zero \shad0 spowoduje, że cień zostanie całkowicie wyłączony. Działa podobnie, co \bord.

Odległość cienia nie może przybrać wartości ujemnej.

Przykład:
\shad2
Cień będzie przesunięty o 2 piksele względem tekstu.

Oddalenie cienia (zaawansowane)
\xshad<głębia>
\yshad<głębia>
Te tagi są obsługiwane przez VSFilter od wersji 2.39 w górę; przypadku softsubów mogą występować problemy.

Użycie tagów \xshad i \yshad umożliwia określenie osobno położenia cienia dla szerokości X i wysokości Y względem pozycji tekstu. Cień zostanie całkowicie wyłączony, jeśli zarówno \xshad i \yshad będą miały wartość 0.

Uwaga: dla tych tagów można ustawić wartości ujemne, czyli dzięki temu umieścić cień z lewej strony i od góry względem napisów.

Przykład:
\xshad-2.8\yshad4
Cień będzie przesunięty w lewą stronę o 2.8 piksela i o 4 piksele w dół względem tekstu.

Rozmycie krawędzi
\be0
\be1
\be<wartość>
Tag \be<wartość> obsługuje VSFilter od wersji 2.39 w górę; w przypadku softsubów mogą występować problemy.

Efekt rozmycia krawędzi tekstu włącz/wyłącz. Efekty nie koniecznie muszą być dobrze widoczne, ale w niektórych przypadkach dzięki temu tagowi tekst będzie lepiej wyglądać.
Zazwyczaj rezultaty są lepiej widoczne na tekstach z mniejszym rozmiarem czcionki.

Należy pamiętać, że ten tag rozmywa wyłącznie krawędzie tekstu. To znaczy, że jeśli tekst ma określone krawędzie (np. przez \bord), to właśnie one zostaną rozmyte; brak krawędzi spowoduje, że to główny tekst zostanie rozmyty zamiast niego.

Wartość parametru w wersji rozszerzonej \be<wartość> odnosi się do wielokrotności podstawowego efektu \be1 (czyli \be2 będzie teoretycznie dwa razy „silniejsze” niż \be1). Należy pamiętać, że przy wysokich wartościach efekt się degeneruje/pierdoli i ogólnie jest mało przydatny.

Wartość musi być liczbą całkowitą.

Przykład:
\be3
Rozmycie krawędzi będzie teoretycznie na poziomie 3 razy większym niż \be1; taką wartość rozmycia zazwyczaj stosuje się w tekstach z większym rozmiarem czcionki.

Rozmycie krawędzi (metoda gaussianska*)
\blur<wartość>
W zasadzie spełnia tę samą funkcję, co tag \be, ale w przeciwieństwie do niego używa znacznie bardziej skomplikowanego algorytmu, który dla wysokich wartości wygląda znacznie lepiej. W odróżnieniu od \be wartość \blur może przybierać wartości niecałkowite.

Uwaga: Ustawienie zbyt dużej wartości parametru może zająć dużo czasu procesorowi na renderowanie.

Należy pamiętać, że ten tag rozmywa wyłącznie krawędzie tekstu. To znaczy, że jeśli tekst ma określone krawędzie (np. przez \bord), to właśnie krawędzie zostaną rozmyte; brak krawędzi spowoduje, że to główny tekst zostanie rozmyty zamiast niego.

Przykład:
\blur4.125
Dzięki innemu algorytmowi efekt dość istotnie się różni od \be4.

* W wersji oryginalnej – Gaussian kernel; prawdopodobne chodzi o parafrazę „gaussian function” i jednego ze znaczeń słowa „kernel” – liczba pikseli próbkowanych jako jedna jednostka podczas obróbki obrazu.

 

Nazwa czcionki
\fn<nazwa czcionki>
Użycie wybranej czcionki dla tekstu znajdującego się za blokiem. Między \fn a nazwą czcionki nie powinno być spacji, tak samo jak nie powinno się jej umieszczać w nawiasach.

Przykład I:
\fnArial
Tekst będzie pisany czcionką Arial.
Przykład II:
\fnTimes New Roman
Tu zaś będzie pisany czcionką Times New Roman.

Rozmiar czcionki
\fs<rozmiar>
Ustawienie rozmiaru czcionki. Określony rozmiar odpowiada wysokości pikseli skryptu, zatem czcionka o rozmiarze 40 w jednej linii ma wysokość 40 pikseli.
[Uwaga techniczna: tak naprawdę są to punkty typograficzne (chodzi o poligrafię komputerową), nie piksele skryptu, ale jako że renderowanie zawsze odbywa się przy zgodnie ze standardem 72 DPI, jeden punkt typograficzny jest dokładnie równy jednemu pikselowi rozdzielczości skryptu.]

Rozmiar czcionki musi być liczbą całkowitą.

Przykład:
\fs10
Tekst będzie pisany czcionką o rozmiarze 10.

Skalowanie czcionki
\fscx<skala>
\fscy<skala>
Dostosowanie rozmiaru tekstu dla szerokości X (\fscx) i wysokości Y (\fscy). Wartość skali jest podawana w procentach (tzn. 100 oznacza „oryginalny rozmiar”).

Powyższe tagi nie działają tak samo, jak było to w przypadku ustawiania rozmiaru czcionek, ponieważ ustawienie rozmiaru zależy od hintingu czcionki, podczas gdy skalowanie tekstu modyfikuje kształt tekstu dopiero po hintingu.

Te tagi wpływają również na grafikę wektorową.

Skalowanie czcionek można używać w celu skorygowania anamorficznego renderingu i aby dokładniej określić rozmiar tekstu niż w przypadku \fs.

Przykład I:
\fscx150
Tekst jest o 50 % szerszy niż normalnie.
Przykład II:
\fscy50
Tekst jest o połowę niższy niż normalnie
Przykład III:
\fscx200\fscy200
Tekst jest dwukrotnie większy niż normalnie.

Odstęp między literami
\fsp<odstęp>
Zmiana odległości między poszczególnymi literami w tekście. \fsp<odstęp> używa się, aby rozciągnąć wizualnie tekst. Odstęp podaje się w pikselach rozdzielczości skryptu.

Przykład:
\fsp4.2
Odstęp między literami będzie wynosił 4.2 piksele (plus to, co było na początku).

Rotacja tekstu
\frx<kąt obrotu>
\fry<kąt obrotu>
\frz<kąt obrotu>
\fr<kąt obrotu>
Obrót tekstu wzdłuż osi X, Y i Z. \fr to skrót od \frz i działa tak samo.

Oś X przebiega poziomo wzdłuż ekranu. Obrót \frx (dla wartości dodatnich) powoduje oddalenie góry tekstu w głąb ekranu, podczas gdy dół tekstu przybliża się.
Oś Y przebiega pionowo wzdłuż ekranu. Obrót \fry (dla wartości dodatnich) powoduje przysunięcie lewej strony tekstu do ekranu, podczas gdy prawa strona tekst jest oddalona.
Oś Z przebiega prostopadle do ekranu. Obrót \frz (dla wartości dodatnich) powoduje obrót tekstu w 2D, przeciwnie do ruchu wskazówek zegara.

Wartość kąta obrotu bazuje na matematycznych stopniach, zatem 360 stopni to pełny obrót. Obrót o 360 stopni powoduje, że tekst nie zmienia swojego położenia. Jest możliwe użycie ujemnych wartości kątu obrotu (efekt jest przeciwny do użycia wartości dodatnich, czyli tekst obraca się w drugą stronę), jak również większej niż jeden pełny obrót.

Rotacja odbywa się wokół punktu zaczepienia bądź współrzędnych wyznaczonych przez środek rotacji (zostało to opisane poniżej, tag \org).

Te tagi wpływają również na grafikę wektorową.

Przykład I:
\frx45
Obrót tekstu o 45 stopni wzdłuż osi X.
Przykład II:
\fry-45
Obrót tekstu o 45 stopni w przeciwnym kierunku wzdłuż osi Y.
Przykład III:
\frz180
Obrót tekstu o 180 stopni wzdłuż osi Z, czyli tekst będzie do góry nogami.
Przykład IV:
\frz-30
\frz330
Wynik obrotu dla tych dwóch wartości jest taki sam, ponieważ 330 stopni jest o 30 stopni mniejszy niż kąt pełny, więc suma summarum jeden pies.
Przykład V:
\t(\frz3600)
Tekst wykona 10 pełnych obrotów wokół osi Z w czasie trwania linii. Zobacz również \t.

Cięcie tekstu
\fax<czynnik>
\fay<czynnik>
Te tagi są obsługiwane przez VSFilter od wersji 2.39 w górę; w przypadku softsubów mogą występować problemy.

Wykonaj cięcie (zniekształcenie perspektywy) przekształcające tekst. Czynnik o wartości 0 (zero) oznacza brak zakłóceń.

Zwykle czynnikiem jest niewielka liczba, nie większa niż 2, która tworzy bardzo duże zniekształcenie.

Cięcie jest wykonywane po obrocie, na współrzędne po rotacji. Układ współrzędnych używany do cięcia nie ma wpływu na środek rotacji.

Przykład:
\fax0.1\fay0.1
Tekst jest „lekko” zniekształcony.

Kodowanie czcionek
\fe<id>
Ustawienie kodowania czcionek systemu Windows w celu wyboru tabeli mapowania do translacji kodów Unicode dla indeksów glif. Dla niektórych czcionek bez tabeli mapowania Unicode może to być wymagane, aby tekst w określonych języku poprawnie się wyświetlał. Dla czcionek, które posiadają tabele mapowania Unicode, może to służyć do wybrania konkretnej odmiany regionalnej (jak np. wybranie poprawnego glifu dla ideografii Han, który różni się w chińskim uproszczonym i tradycyjnym, japońskim i koreańskim).

Niektóre identyfikatory kodowań czcionek:
0 – ANSI. Dla zachodnioeuropejskich języków.
1 – Domyślny. Zależy od skonfigurowanego systemu użytkownika.
2 – Symbol.
128 – Japoński.
134 – Chiński uproszczony.
238 – Europa Wschodnia/Polska. Jedyne poprawne kodowanie polskich liter.

 

W plikach ASS zapisanych z kodowaniem bez obsługi Unicode ten tag ma również wpływ na to, jak strona kodowa następującego tekstu powinna być interpretowana. Aegisub nie wspiera tej funkcji, jak również niektóre rendery, więc zaleca się, aby na tym nie polegać, a zamiast tego zawsze przechowywać pliki w kodowaniu Unicode. (Aegisub domyślnie zapisuje pliki w formacie Unicode UTF-8.)

Kolor
\c&H<bb><gg><rr>&
\1c&H<bb><gg><rr>&
\2c&H<bb><gg><rr>&
\3c&H<bb><gg><rr>&
\4c&H<bb><gg><rr>&
Ustawienie koloru. Tag \c jest skrótem od \1c i działa tak samo.

\1c określa podstawowy kolor wypełnienia.
\2c określa dodatkowy kolor wypełnienia.
\3c określa kolor obramowania.
\3c określa kolor cienia.

Kody kolorów podawane są w systemie szesnastkowym (hex). W kolejności niebieski/blue, zielony/green, czerwony/red. Należy zwrócić uwagę, że to odwrotna kolejność niż np. w HTML. Kody kolorów zawsze muszą się zaczynać od &H i kończyć &.

[Pro tip – Przyciski wyboru kolorów na pasku narzędzi 255i4jp.png mogą pomóc w doborze kolorów i wprowadzeniu ich kodów.]

Przykład I:
\c&H000000&
Kolorem podstawowym wypełnienia jest czarny.
Przykład II:
\2c&HFFFFFF&
Kolorem dodatkowym (dotyczy efektów karaoke) wypełnienia jest biały.
Przykład III:
\3c&H0000FF&\4c&H9B9B9B&
Kolorem obramowania jest czerwony, a cienia szary.

Przezroczystość
\alpha&H<aa>
\1a&H<aa>
\2a&H<aa>
\3a&H<aa>
\4a&H<aa>
Ustawienie przezroczystości (alfy) tekstu.

\alpha określa przezroczystość wszystkim elementów na raz.
\1a określa przezroczystość wypełnienia podstawy.
\2a określa przezroczystość wypełnienia dodatkowego.
\3a określa przezroczystość obramowania.
\4a określa przezroczystość cienia.

Alfa 00 (zero) znaczy tyle, że tekst jest nieprzezroczysty/w pełni widoczny; zaś alfa FF (255), że tekst jest w pełni przezroczysty/niewidoczny.

Przykład I:
\alpha&H80&
Ustawienie wartości alfy wszystkich komponentów w systemie szesnastkowym na 80 (128 w dziesiętnym) spowoduje, że przezroczystość tekstu będzie wynosiła 50 %.
Przykład II:
\1a&HFF&
Ustawienie wartości alfy wypełnienia podstawy w systemie szesnastkowym na FF (255 w dziesiętnym) spowoduje, że kolor podstawowy będzie niewidoczny, a w rezultacie pozostanie widoczne obramowanie i cień.

Wyrównanie linii
\an<pozycja>
Domyślne wyrównanie linii. Określa wyrównanie położenia linii, kiedy nie ma nadpisanej pozycji bądź ruchu; w innym przypadku określa punkt kontrolny pozycjonowania (punkt zaczepienia dla pos).

Ulokowanie klawiszy (od 1 do 9) na klawiaturze numerycznej odpowiada rozmieszczeniu wartości wyrównania linii.

\an:
1 – wyrównanie lewo-dół;
2 – wyrównanie środek-dół;
3 – wyrównanie prawo-dół;
4 – wyrównanie lewo-środek;
5 – wyrównanie środek-środek;
6 – wyrównanie środek-prawo;
7 – wyrównanie lewo-góra;
8 – wyrównanie środek-góra;
9 – wyrównanie prawo-góra.
Rozdzielczość – 640-480, marginesy – 20 (każdy).

Wyrównanie linii (zastane)
\a<pozycja>
Wyrównanie linii za pomocom zastanego wyrównania kodów SubStation Alpha. Ten tag jest oczywiście wspierany, ale uznawany już za przestarzały. Wypiera go bardziej intuicyjny \an.

\a:
1 – wyrównanie lewo-dół;
2 – wyrównanie środek-dół;
3 – wyrównanie prawo-dół;
5- wyrównanie prawo-góra;
6 – wyrównanie środek-góra;
7 – wyrównanie lewo-góra;
9 – wyrównanie środek-prawo;
10 – wyrównanie środek-środek;
11 – wyrównanie środek-lewo.
2zs5udh.png
Rozdzielczość – 640-480, marginesy – 20 (każdy).

Efekt karaoke
\k<czas trwania>
\K<czas trwania>
\kf<czas trwania>
\ko<czas trwania>
Należy pamiętać, że te tagi w pojedynkę powodują prosty (konkretny) efekt przejścia; wszystkie inne efekty tworzy się za pomocą wielu różnych tagów.

Rodzina tagów \k służy do robienia efektów karaoke. Przed każdą sylabą umieszcza się któryś z tagów z rodziny \k oraz określa się czas jego trwania.

Czas trwania podawany jest w centysekundach (tzn. czas trwania równy 100 cs odpowiada jednej sekundzie). Zazwyczaj nie wprowadza się tagów \k ręcznie, lecz korzystając z narzędzi służących do timingu karaoke.

Rodzaje przejść:
\k – Efekt przejścia polega na natychmiastowej zmianie koloru dodatkowego i jej alfy sylaby na kolor podstawowy i jej alfę.
\K i \kf – Efekt przejścia polega na płynnej zmianie koloru dodatkowego i jej alfy sylaby (ruchem od lewej do prawej) na kolor podstawowy i jej alfę. [Oba tagi działają tak samo. Trzeba zwrócić uwagę, że \K jest napisane dużą literą i różni się od poprzedniczki (\k) zarówno pisownią, jak i efektem przejścia.]
\ko – Efekt przejścia działa podobnie jak w przypadku \k, ale w przeciwieństwie do niego przed zaznaczeniem obramowanie jest usunięte i pojawia się w chwili przejścia.

Uwaga: Istnieje dodatkowo tag \kt, który również różni się od powyższych. Aegisub jego nie wspiera, więc tutaj nie został opisany.

Przykład I:
{\k29}Yu{\k41}ke{\k46}ba {\k34}ii {\k36}you{\k232}ni
Natychmiastowe przejście.
Przykład II:
{\kf29}Yu{\K41}ke{\kf46}ba {\K34}ii {\K36}you{\kf232}ni
Płynne przejście.
Przykład III:
{\ko29}Yu{\ko41}ke{\ko46}ba {\ko34}ii {\ko36}you{\ko232}ni
Natychmiastowe przejście wraz z obramowaniem.
Przykład IV:
{\k29}Yu{\k41}ke{\k46}ba {\k34}ii {\k36}you{\kf232}ni
Pomieszanie tagów z płynnym i natychmiastowym efektem przejścia.
[Zazwyczaj przy sylabach, które dłużej się wyświetlają (dajmy na to powyżej 50 centysekund), stosuje się tagi z płynnym przejściem \kf i \K; przy krócej się wyświetlających sylabach tagi \k. Ale to takie moje widzimisię.]

Łamanie linii
\q<tryb>
Wybór trybu łamania do danej linii napisów.

Rodzaje trybów:
0 – Inteligentne łamanie linii; każda linia jest w przybliżeniu równa; górny wers jest dłuższy, jeśli podzielenie na równe części jest niemożliwe. Wymuszone łamanie linii możliwe tylko za pomocą tagu \N.
1 – Łamanie linii za pomocą znaku EOL (znaku kończącego linie); tekst wypełnia całą możliwą szerokość linii (sugerując się marginesami), po czym łamie linie. Wymuszone łamanie linii możliwe tylko za pomocą tagu \N.
2 – Brak łamania linii; tekst wychodzi poza granice ekranu (niezależnie od ustawionych marginesów). Wymuszone łamanie linii możliwe zarówno \N, jak i \n.
3 – Inteligentne łamanie linii; działa podobnie do 0; jednak w odróżnieniu do tego pierwszego, to dolny wers jest dłuższy.

 

Resetowanie stylu
\r
\r<nazwa stylu>
Jak nazwa na to wskazuje. :] Wszystkie nadpisane tagi, w tym animacje, dla tekstu znajdującego się za nim zostaną odwołane.

Pierwsza forma (sam \r) odwołuje wszystkie tagi nadpisowe i przywraca zdefiniowany dla danej linii styl; druga forma (\r<nazwa stylu>) powoduje odwołanie stylu zdefiniowanego dla danej linii i użycie nowego (wpisanego w ostrokątnych nawiasach).

Przykład:
– Hej\N{\rAlternatywny}- Czego?\N{\r}- Kim jesteś?
Zakładając, że zdefiniowany styl linii to „Dialogi”, to pierwszy wyraz będzie w randomowym stylu – „Dialogi”, a w następnym wierszu „Czego?” w stylu „Alternatywny”, a ostatni wiersz z „Kim jesteś?” z powrotem w zdefiniowanym stylu – „Dialogi”.

Pokaż spoiler Układ współrzędnych

Pozycjonowanie
\pos(<X>,<Y>)
Ustawienie pozycji linii. Współrzędne X i Y muszą być liczbami całkowitymi i podawane w układzie współrzędnych rozdzielczości skryptu. X i Y nieznacznie się zmienia w zależności od wyrównania (patrz wyrównanie linii).
Użycie liczb niecałkowitych umożliwia VSFilter od wersji 2.39 w górę; w przypadku softsubów mogą występować problemy.

Wyrównanie linii napisów wykorzystywane jest jako punkt zaczepienia. Np. przy wyrównaniu lewo-góra to lewy-górny róg napisów umieszczony będzie na współrzędnych podanych przez \pos; dla wyrównania środek-dół to środkowy-dół napisów umieszczony będzie na współrzędnych podanych przez \pos.

Poniższe zrzuty ekranów ilustrują wpływ wyrównania na pozycjonowanie. Bordowy krzyżyk wskazuje za każdym razem tę samą pozycję (320,240).

21jdrv4.png

Ruch
\move(<x1>,<y1>,<x2>,<y2>)
\move(<x1>,<y1>,<x2>,<y2>,<t1>,<t2>)
Tag \move działa podobnie jak \pos (odnośnie pozycjonowania linii napisów), a różni się tym, że owe napisy wykonują ruch (jak sama nazwa na to wskazuje).

Dwie wersje tagu \move różnią się tym, że w pierwszym ruch odbywa się w ciągu trwania całej linii, podczas gdy w drugim można określić czas, w którym ma wystąpić owe przesunięcie.

Współrzędne x1, y1, x2 id y2 są podawane w układzie współrzędnych rozdzielczości skryptu, jak w \pos. Początek ruchu ma miejsce w pozycji o współrzędnych (x1, y1) i przemieszczają się ze stałą prędkością do punktu w (x2,y2). Wyrównanie wpływa na współrzędne ruchu tak samo, jak wpływa na współrzędne \pos.

Użycie liczb niecałkowitych umożliwia VSFilter od wersji 2.39 w górę; w przypadku softsubów mogą występować problemy.

W drugiej wersji czasy t1 i t2 są podawane w milisekundach (1000 ms = 1 s), i odnosi się do początku trwania napisu. Np. t1 o wartości 1500 oznacza, że ruch zaczyna się od 1,5 sekundy trwania linii. Kiedy określi się czas trwania ruchu, pozycjonowanie napisów jest następujące:
1.    Przed t1 napis jest nieruchomy i znajduje się w punkcie (x1,y1).
2.    Między t1 a t2 napis wykonuje ruch z punktu (x1,y1) do (x2,y2).
3.    Po t2 napis jest nieruchomy i znajduje się w punkcie (x2,y2).

Możliwe jest ustawienie wartości t1 i t2 większej niż czas trwania napisu, ale nie jest to przydatne. W przypadku, gdy wartość t1 jest większa, napis będzie stał w miejscu o współrzędnych (x1,x2). Jeśli t2 będzie większe, to przemieszczenie napisów będzie przerwane (w chwili gdy czas trwania napisu się skończy), a napis nie dotrze do punktu docelowego o współrzędnych (x2,y2).
Określenie wartości t1 i t2 jako zero (0) powoduje ten sam efekt, co pierwsza wersja \move, czyli ruch napisu odbywa się w czasie trwania całej linii (od jej początku do końca).

Rzeczy, których tag \move nie ogarnia:
– Brak zmiennej prędkości (np. ruch nie może mieć na początku mniejszej prędkości, po czym przyśpieszyć).
– W jednej linii może być tylko jeden tag pozycjonowania bądź ruchu. Jednoczesne zastosowanie w linii \pos i \move nie będzie działało. Również nie będzie działało użycie większej liczby tagów \move w jednej linii.

[Pro tip – jeśli występuje taka konieczna, patrz wyżej, warto podzielić linie na segmenty.]

Przykład I:
\move(100,150,300,350)
W momencie pojawienia się linii na ekranie napis znajduje się w miejscu o współrzędnych (100,150). W przeciągu całego czasu trwania linii napis porusza się ze stałą prędkością do punktu o współrzędnych (300,350) i w tym samym czasie napis znika.
Przykład II:
\move(100,150,300,350,500,1500)
Linia pojawia się o współrzędnych (100,150). Po poł sekundzie (500 milisekundach) wyświetlania napis przemieszcza się sekundę (1500 – 500 = 1000) do punktu o współrzędnych (300,350), po czym ponownie jest nieruchomy, chyba że t2 przepada na koniec linii.

Środek rotacji
\org(<X>,<Y>)
Ustawienie współrzędnych dla obrotu tekstu. Wpływa na wszystkie rodzaje rotacji tekstu. Współrzędne X i Y podawane są w (pełnych) pikselach rozdzielczości skryptu.

Kiedy tag \org w linii nie jest określony, środkiem rotacji będzie punkt zaczepienia/kontrolny pozycjonowania. Oznacza to, że środek rotacji będzie się poruszał wraz z ruchem, jeśli nie ma określonego środka przez \org. Nie animuje się tagu \org, on jedynie określa środek rotacji.

Jeśli środek rotacji umieszczony jest w punkcie zbiegu w scenie 3D, rotacja 3D linii napisów stworzy odpowiednią perspektywę, by dopasować scenę.

Jest możliwe (i czasem przydatne) umieszczenie środka rotacji daleko za rzeczywistym obrazem (poza ekran); jeśli jest wystarczająco daleko, można odnieść wrażenie, że ruch odbywa się w linii prostej (dla małych wartości rotacji). Takie kontrolowanie ruchu sprawia trudności, ale może zostać użyte jako alternatywa dla \move i w celu obejścia jego ograniczeń.

W jednej linii może być tylko jeden tag \org; w przeciwnym razie tylko pierwszy zostanie uwzględniony.

Przykład I:
\org(320,240)
Ustawienie środka rotacji w punkcie o współrzędnych (320,240).
Przykład II:
\org(10000,0)
Umieszczenie środka rotacji daleko za rzeczywistym obrazem (poza ekran) umożliwia skorzystanie z niewielkiej rotacji \frz do stworzenia efektu „skoku”, tekst będzie poruszał się w dół bądź górę (bez wrażenia rotacji).

Zanikanie
\fad(<pojawianie>,<zniknięcie>)
Efekt pojawienia i zniknięcia napisu. Wartości podawane są w milisekundach (1000 ms = 1 s). Można określić wartości pojawiania bądź zniknięcia na 0 (zero), co poskutkuje brakiem pojawiania/zanikania/bądź obu na raz.

– Czas pojawiania tekstu liczony jest od początku linii.
– Czas zanikania tekstu liczony jest wstecz od końca trwania linii dialogowej.

Użycie tagu \fad nie przedłuża czasu trwania linii; to początek lub koniec czasu wyświetlania czasu służy do efektu „zanikania”. Z tego powodu trzeba uważać, aby czas pojawiania i znikania nie był dłuższy niż całkowity czas trwania linii. Na przykład dla linii, która wyświetla się 4 sekundy, suma pojawiania i znikania nie powinna być dłuższa niż owe 4000 milisekund.

Przykład:
\fad(1200,250)
Pierwsze 1200 milisekund trwania linii to czas pojawiania się napisu; zaś ostatnie 250 milisekund to czas trwania znikania napisu.

Zanikanie (kompleksowe)
\fade(<a1>,<a2>,<a3>,<t1>,<t2>,<t3>,<t4>)
Pięcioczęściowy efekt zanikania za pomocą trzech wartości alfy a1, a2, a3 i czterech czasów t1, t2, t3, t4.

Wartości każdej alfy podawane są w systemie dziesiętnym z przedziału od 0 do 255; przy czym 0 = w pełni widoczne, 255 = w pełni przezroczyste. Wartości czasu są podawane w milisekundach od rozpoczęcia wyświetlania danej linii. Wszystkie (siedem) parametry są absolutnie wymagane.

– Przed t1 tekst ma przezroczystość ustaloną przez alfę a1.
– Między t1 a t2 przezroczystość tekstu przechodzi z alfy a1 do a2.
– Między t2 a t3 tekst ma stałą przezroczystość a2.
– Między t3 a t4 przezroczystość tekstu przechodzi z alfy a2 do a3.
– Po t4 tekst ma przezroczystość ustaloną przez alfę a3.

Przykład:
\fade(255,0,128,500,1000,2000,3000)
W ciągu pierwszych 500 ms trwania linii tekst jest niewidoczny; po czym przez następne 500 ms w pełni się pojawia i taki stan trwa 1000 ms; następnie w przedziale czasowym 2000 – 3000 ms tekst do połowy zanika i trwa tak aż do końca wyświetlania się linii.

Animacje
\t(<modyfikator stylu>)
\t(<przyśpieszenie>,<modyfikator stylu>)
\t(<t1>,<t2>,<modyfikator stylu>)
\t(<t1>,<t2>,<przyśpieszenie>,<modyfikator stylu>)
Stopniowe animowanie z jednego stylu do drugiego. Modyfikatory stylu są to nadpisowe tagi, które zostały tutaj opisane. Tylko ograniczony zestaw tagów da się zaanimować z \t (lista poniżej).

Czcionki: \fs, \fsp, \c, \1c, \2c, \3c, \4c, \alpha, \1a, \2a, \3a, \4a.
Geometria: \fscx, \fscy, \frx, \fry, \frz, \fr.
Inne efekty: \bord, \shad, \clip.

VSFilter od wersji 2.39 umożliwia animowanie dodatkowych tagów z \t:
\fax, \fay, \be, \blur, \xbord, \ybord, \xshad, \yshad, \iclip

Uwaga: Dla \clip i \iclip tylko prostokątne wersje mogą być animowane. Grafika wektorowa również nie może być animowana.

t1 i t2 określają przedział czasu, w którym dokonuje się dane przekształcenie. W wersji bez t1 i t2 transformacja odbywa się w ciągu trwania całej linii. Czas podawany jest w milisekundach (1000 ms = 1 s) i odnosi się do czasu rozpoczęcia wyświetlania się linii.
(Dla pozostałej części opisu wartości t1 i t2 są uznawane za już określone bądź domyślnie ustalone na 0 (zero) dla t1 i czas trwania linii dla t2.)

Parametr przyśpieszenia może być wykorzystywany do animacji nieliniowych i zamiast tego śledzić krzywą wykładniczą. Wartość przyśpieszenia równa 1 (jeden) powoduje, że prędkość animacji jest liniowa (tzn. że jest stała). Wartość między 0 a 1 powoduje, że prędkość animacji jest coraz wolniejsza (tzn. na początku jest szybciej niż na końcu). Wartość większa od 1 powoduje, że prędkość animacji jest coraz szybsza (tzn. początek wolniejszy, koniec szybszy).
(Wzór na deser: y = x^a, gdzie x ∈ [0;1] = (t-t1)/(t2-t1), t – bieżący czas, a -przyśpieszenie.)

Przed t1 styl jest określony przez domyślne ustawienia danej linii bądź przez tagi umieszczone przed \t. Po t2 styl jest zmodyfikowany względem „pierwotnej postaci” (przed transformacją) efektami, jakie zostały użyte w miejscu <modyfikator stylu>. Między punktami t1 a t2 styl jest stopniowo anonimowany (uwzględniając funkcję na przyśpieszenie, która została powyżej opisana).

Przykład I:
{\1c&HFF0000&\t(\1c&H0000FF&)}Hallo!
Płynna zmiana na przestrzeni trwania całej linii koloru wypełnienia z niebieskiego na czerwony.
Przykład II:
{\an5\t(0,5000,\frz3600)}Do kolusia.
Tekst w ciągu 5 sekund wykonuje 10 obrotów ze stałą prędkością wokół punktu zaczepienia \an5.
Przykład III:
{\an5\t(0,5000,0.5,\frz3600)}Do kolusia.
Jak wyżej, tekst wykonuje w ciągu 5 sekund 10 obrotów wokół punktu zaczepienia \an5; tylko tym razem prędkość obracania jest coraz mniejsza.
Przykład IV:
{\an5\fscx50\fscy50\t(0,500,\fscx100\fscy100)}Bu!
Tekst w ciągu pół sekundy podwoi swoją wielkość do swojej naturalnego rozmiaru.

Maskowanie (prostokątne)
\clip(<x1>,<y1>,<x2>,<y2>)
\iclip(<x1>,<y1>,<x2>,<y2>)

Tag \iclip obsługuje VSFilter od wersji 2.39 w górę; w przypadku softsubów mogą występować problemy.

Prostokątne maskowanie linii; tylko część linii, która znajduje się w prostokącie, jest widoczna (dotyczy to zwykłego tagu \clip). Tag \iclip daje przeciwny efekt do powyższego; część linii, która znajdzie się w ramach prostokąta, jest niewidoczna.

Współrzędne x1, y1, x2 i y2 podawane są w pikselach rozdzielczości skryptu i określone względem lewego górnego rogu obrazu (patrz – układ współrzędnych). Współrzędne muszą być liczbami całkowitymi. (Zwiększenie rozdzielczości skryptu nie zwiększy precyzji, maskowanie zawsze odbywa się w granicach pikseli wideo.)

Uwaga: Użycie w którymkolwiek miejscu w linii tagu /iclip spowoduje, że wszystkie maskowania zostaną potraktowane inwersyjnie; niezależnie od tego, czy \iclip regularnie później występuje, czy zaczyna działać jeszcze przed \t.

Przykład I:
\clip(0,0,320,240)
Zakładając, że rozdzielczość skryptu wynosi 640×480, to tylko ćwiartka lewa-góra jest widoczna.
Przykład II:
\iclip(0,0,320,240)
Działa podobnie do powyższego, lecz w przeciwieństwie do niego to ćwiartka lewa-góra jest niewidoczna.

Maskowanie (grafika wektorowa)
\clip(<komendy graficzne>)
\clip(<skala>,<komendy graficzne>)
\iclip(<komendy graficzne>)
\iclip(<skala>,<komendy graficzne>)

Tag \iclip obsługuje VSFilter od wersji 2.39 w górę; w przypadku softsubów mogą występować problemy.

Maskowanie określone przez grafikę wektorową dla selektywnego wyświetlania (\clip) lub ukrywania (\iclip) części linii.

Komendy graficzne mają taką postać, co te używane z tagiem \p. Współrzędne są podawane w pikselach rozdzielczości skryptu i określone względem lewego górnego rogu obrazu.

Jeśli skala nie jest w żaden sposób określona, przyjmuje się, że wynosi ona 1 (jeden) – co znaczy tyle, że współrzędne bezpośrednio odpowiadają pikselom. Skala działa na tych samych zasadach, co dla grafiki z \p.

W przeciwieństwie do cięcia prostokątnego maskowanie grafiki wektorowej nie może być animowane z \t. Chcąc animować grafikę wektorową, należy rozłożyć ją na części pierwsze (na osobne klatki).

Przykład:
\clip(1,m 50 0 b 100 0 100 100 50 100 b 0 100 0 0 50 0)
Wyświetlana jest część w postaci a la koła.

Uwaga I: VSFilter w wersji 2.37 ma błąd, który powoduje, że maskowanie grafiki wektorowej jest niepoprawnie renderowane. Rozwiązaniem jest użycie nowszej lub starszej wersji.

Uwaga II: Użycie w którymkolwiek miejscu w linii tagu /iclip spowoduje, że wszystkie maskowania zostaną potraktowane inwersyjnie; niezależnie od tego, czy \iclip regularnie później występuje, czy zaczyna działać jeszcze przed \t.

===========================================

TAGI GRAFICZNE

Advanced Substation Alpha również obsługuje niektóre zaawansowane tagi graficzne, umożliwiające stosowanie grafiki wektorowej.

\p<0/1/..> – włączenie trybu rysowania
Ustawienie wartości na 1 (jeden) lub powyżej umożliwia tryb rysowania. Tekst po tym bloku jest interpretowany jako instrukcje dotyczące grafiki, przez co tekst jest niewidoczny. Zaś ustawienie wartości na 0 (zero) powoduje wyłączenie tryb rysowania i przywrócenie do „normalnego stanu”. Wartość może przybrać dowolną liczbę całkowitą większą od zera, która zostanie intepretowana jako skala [2^(wybrana wartość – 1) tryb]. Ma to na celu umożliwienie podpikselowych dokładności, np.:
\p1
Włącza rysowanie według normalnych współrzędnych.
\p0
Wyłącza rysowanie.
\p2
Włącza rysowanie, gdzie rozdzielczość została podwojona. Rysunek o współrzędnych 200,200 będzie w rzeczywistości narysowany w 100,100.
\p4
Włącza rysowanie, gdzie rozdzielczość jest 8 razy większa (2^(4-1)). Rysunek o współrzędnych 400,400 będzie narysowany w 50,50.

\pbo<y> – Linia bazowa wyrównania
Wyznacza linię bazową wyrównania dla rysowania. Jest to w zasadzie wyrównanie Y dla wszystkich współrzędnych, np.:
\pbo-50
Cały rysunek znajduje się 50 pikseli wyżej, niż to zostało wcześniej określone.
\pbo100
Cały rysunek znajduje się 100 pikseli niżej, niż to zostało wcześniej określone.

============================================

KOMENDY GRAFICZNE

Wszystkie poniższe komendy powinny znajdować się albo w tagu \clip (w bloku), albo między \p# a \p0 (jako normalny tekst między blokami). Na przykład:
Kwadrat:
{\p1}m 0 0 l 100 0 100 100 0 100{\p0}
Zaokrąglony kwadrat:
{\p1}m 0 0 s 100 0 100 100 0 100 c{\p0}
W tym przypadku c jest równe „p 0 0 100 0 100 100”.
Koło (prawie):
{\p1}m 50 0 b 100 0 100 100 50 100 b 0 100 0 0 50 0{\p0}
Uwaga: drugie b jest opcjonalne.

Komendy graficzne korzystają z koloru podstawowego dla wypełnienia i obramowania. Również wyświetlają cień.
Grafika wektorowa polega na pokierowaniu niewidzialnego kursora (można potraktować to jak kursor myszy w jakimś programie graficznym lub pióro poruszające się po obrazie) z jednego punktu do drugiego itd., aby po zamknięciu linii stworzyć ową grafikę.

m <x> <y> – Przesunięcie
Przesunięcie kursora na x,y. Grafika automatycznie się zamyka; z tego powodu, iż program traktuje go jako nowy, niezależny kształt. Wszystkie procedury graficzne muszą się rozpoczynać od tej komendy.

n <x> <y> – Przesunięcie (bez zamknięcia)
Przesunięcie kursora na x,y bez zamknięcia obecnego kształtu.

l <x> <y> – Linia
Narysowanie linii z aktualnej pozycji kursora do x,y, po czym przesuwa tam kursor.

b <x1> <y1> <x2> <y2> <x3> <y3> – Sześcienna krzywa Béziera Cubic Bézier curve
Narysowanie sześciennej (3. stopnia) krzywej Béziera od pozycji kursora do (x3, y3) przy użyciu (x1, y1) i (x2, y2) jako punkty kontrolne. Więcej o krzywej Béziera na Wikipedii.

sbh8qc.png
P0 to pozycja kursora, P1 to x1,y1, P2 to x2,y2 i P3 to x3,y3. Zauważ, że krzywa zaczyna się w P0, później zmierza w kierunku P1, po czym ku P2 i kończy się na P3. (Zdjęte wzięte z Wikipedii.)

s <x1> <y1> <x2> <y2> <x3> <y3> .. <xN> <yN> – Sześcienna krzywa b-sklejana
Narysowanie sześciennej (3. stopnia) jednolitej b-sklejanej do punktu N. Musi zawierać co najmniej trzy współrzędne (podobnie do b krzywej Béziera). Zasadniczo umożliwia połączenie kilku sześciennych krzyw Béziera razem. Więcej o krzywej b-sklejanej na Wikipedii.

p <x> <y> – Rozszerzona b-sklejana Extend b-spline
Rozszerzenie b-sklejanej do x, y. Ogólnie mówiąc, jest to dodanie kolejnej pary współrzędnych na końcu s
c – Zamknięcie b- sklejanej Close b-spline
Jak na to nazwa wskazuje.

[Pro tip – ASSDraw3 ułatwi życie.]