Poznaliśmy już sposób tworzenia i
ustawiania parametrów styli, więc
zajmijmy się teraz sekcją [Events]. Zawiera ona, analogicznie jak
inne formaty (TMP, MicroDVD) , linie tekstu napisów, w specjalny
sposób sformatowane. Tworzą ją linie Dialogue:, zawierające
formatowanie analogiczne do tego ze styli: tu również mamy do czynienia
z ciągiem, oddzielonych przecinkami wartości, a pierwsza linia
(Format:) definiuje kolejność i typ parametrów, jakie spotkamy w
liniach napisów. Zmieniamy je podobnie jak w stylach, ale mają
charakter lokalny – zmiana któregoś z parametrów wpływa tylko na linię,
w której się znajduje.
Oprócz tych wartości, które możemy zmieniać
wpływając na wartości 10 pól, możemy też wpisywać znaczniki
bezpośrednio do tekstu, czyli w dziesiątym polu. Takim znacznikiem jest
na przykład \N widoczne w powyższym przykładzie skryptu, które wymusza
łamanie lini (podział linii na wiersze).
Na początek zajmiemy się wytłumaczeniem znaczenia
owych 10 pól; podobnie jak wcześniej, posłużę się dokumentacją SSA.
Pole 1: Marked
Za pomocą tego parametru możemy zaznaczyć którąś z linii (wartość 1),
ale ma to znaczenie tylko dla SSA, AGK ignoruje tę wartość i nie jest istotne, co ustawimy.
Pole 2: Start
Początkowy czas napisów o formacie 0:00:00.00 czyli
Godzina:Minuta:Sekunda.Setne sekundy. Zauważmy, że godziny zajmują
jedno miejsce.
Pole 3: End
Jak wyżej, ale określamy tu końcowy czas wyświetlania napisu.
Pole 4: Style
Nazwa stylu, który określiliśmy w sekcji [V4 Styles]. Pamiętajmy o
wielkości liter. Warto zwrócić uwagę na tzw. problem stylu *Default.
Niektóre programy generują skrypt o takiej nazwie (z
gwiazdką), ale ponieważ gwiazdka jest pomijana, a styl Default oznacza
domyślny styl zaimplementowany w ssa (jeśli się pomylimy i przypiszemy
do tekstu styl, który nie istnieje, na przykład zamiast MojStyl
napiszemy Mojstyl – wielkość liter! – AGK i każdy inny
interpreter ssa użyje stylu domyślnego, który jest jakby wbudowany w
ssa: czcionka Arial, białe litery...). Dlatego powinniśmy unikać nazwy
Default, z gwiazdką lub bez, jeśli ją gdzieś spotkamy, zmieńmy na inną.
Pole 5: Name
Nazwa bohatera, który wypowiada dana kwestię. Jedynie do celów
informacyjnych, aby łatwiej było czytać i edytować skrypt. Nie ma
znaczenia, co tu napiszemy, możemy zamiast tego nic nie wpisywać
(zostaną wtedy dwa przecinki obok siebie).
Pole 6: MarginL
Czterocyfrowa wartość nadpisujaca lewy margines, który określiliśmy w
stylu. Wartość w pikselach. Cztery zera oznaczają, że używamy wartości
określonej w stylu [czyli nie zachodzi nadpisywanie].
Teoretycznie powinno być tak, że jeśli zamiast czterech zer wpiszemy
jedno, to nowy lewy margines powinien wynosić teraz zero – po to
wprowadza się te cztery zera. Tak jednak nie jest – dla AGK nie ma
znaczenia, ile zer wpiszemy, jeśli użyjemy jednego to również zostanie
zastosowany margines ze stylu. Jak więc można wymusić nadpisanie
marginesu tak, by wynosił w danej linijce zero? Najlepiej jest po
prostu wpisać jeden zamiast zera, ale jeśli komuś zależy na absolutnym
zerze, powinien stworzyć nowy styl.
Podobnie nie musimy pisać marginesu w formacie czterocyfrowym, zamiast
0030 możemy napisać 30. Zalecam jednak pozostawienie formatu
czterocyfrowego – po prostu wygodniej się to edytuje i od razu widać,
która pozycja dotyczy marginesu.
Pole 7: MarginR
Prawy margines, opis jak wyżej.. Opisane tam uwagi odnoszą się także i do tego marginesu.
Pole 8: MarginV
Pionowy margines, opis jak wyżej.. Opisane tam uwagi odnoszą się także i do tego marginesu.
Pole 9: Effect
Efekt przejścia. Albo puste miejsce [możemy się też spotkać z zapisem
!Effect – dodanie wykrzyknika do tekstu sprawia, że AGK traktuje go
jako brak tekstu] albo zawierające określenie jednego z trzech
możliwych efektów przejść używanych przez ssa.
Nazwa efektu musi być dokładnie wpisana – wielkość liter ma znaczenie.
Karaoke oznacza, że tekst będzie sukcesywnie podświetlany w miarę upływu czasu.
Ponieważ do precyzyjnego określania czasu i typu tego podświetlania
używane są znaczniki, szczegółowy opis znajduje się w dalszej części tutorialu.
Scroll up;y1;y2;delay oznacza, że tekst będzie przesuwał się w górę ekranu. Parametry muszą być oddzielone średnikami.
Wartości y1 i y2 definiują w pionie obszar, w którym tekst będzie
przewijany. Są to wielkości wyrażone w pikselach i nie ma znaczenia
kolejność ich wpisania (y1 może oznaczać zarówno górę jak i dół obszaru
pojawienia się tekstu, podobnie y2). Jeśli wartości te wynoszą zero,
tekst pojawia się na całym ekranie.
Uwaga
– jeśli użyjemy zer w AGK, to tekst nie pojawi się na całym ekranie –
nie pojawi się w ogóle. Dalszy opis objaśnia wartość delay, ale
ponieważ jest on zasadniczo
różny od sposobu, w jaki interpretuje go AGK, podaję właściweznaczenie.
W AGK wartość delay można obliczyć ze wzoru (wzór wyprowadziłem empirycznie):
d=1000* t/H
gdzie
d=delay, t – czas w sekundach, od pojawienia
się początku napisu u dołu ekranu do momentu, kiedy dotyka on górnej
krawędzi (pierwsza linijka), H to wysokość okna w pikselach.
Przykład: załóżmy, że napis ma się pojawić w oknie o wysokości 125
pikseli (ustawiamy y1=15 i y2=140). Chcemy, aby jedna linijka tekstu pokonała tę odległość w 10 sekund. Jakie ustawić delay?
d=1000* 10/125=80
Ustawiamy delay=80, czyli piszemy w naszym wypadku:
Scroll up;15;140;80
Jeśli tekst zawiera 10 linijek, to czas ten określa okres od pojawienia
się tekstu (pierwszej linijki) na dole pola do momentu dotknięcia
górnej granicy pola przez pierwszą linijkę. Nie zapomnijmy o tym, bo
inaczej napis nam zniknie zanim schowa się za górną krawędzią. Musimy
też pamiętać, aby zsynchronizować ten czas z czasem wyświetlania się
napisu, który w skrypcie jest ważniejszy: jeśli na przykład napis ma
się nam wyświetlić przez dwie sekundy, to niezależnie
jak wielkie byśmy nie ustawili delay, to oczywiście nasz
przewijany tekst zniknie po 2 sekundach.
Banner;delay oznacza, że tekst będzie przesuwany w pojedynczej linii,
niezależnie od długości, od prawej do lewej strony ekranu. Marginesy są
pomijane! Tekst wychodzi zza krawędzi ekranu i za krawędź sięchowa.
Wielkość delay oblicza się tu zupełnie inaczej. Bierzemy czas w
sekundach, w jakim początek napisu ma pokonać ekran, i dzielimy go
przez 0.74 (wielkość przyblizona). To będzie nasza wartość delay.
Przykład: chcemy, aby napis (ściślej – jego początek; ustawmy wartość Start i End
w linii Dialogue: tak, aby cały napis się zmieścił) pokonał ekran w 10 sekund.
Liczymy: 10/0.74=13,5 Wartość delay wynosi 13 a nasz zapis:
Banner;13
Pole 10: Text
Jest to po prostu tekst napisów, który będzie wyświetlany w danym
czasie – określonym przez parametry Start i End. Wszystko, co znajduje
się po dziewiątym przecinku [a więc w dziesiątym polu Text] tarktowane
jest jako tekst napisów, więc może zawierać przecinki [bo skrypt ssa
nie może zawierać przecinków].
Tekst może zawierać znaczniki podziału lini \n, \N oraz znaczniki nadpisujące styl, zawarte w nawiasach klamrowych {}.