Opisaliśmy już wszystkie parametry, zawarte w
sekcjach
[V4 Styles] i
[Events]. Posiadamy więc prawie wszystkie
informacje, aby sformatować napisy z wykorzystaniem pełnych możliwości
formatu ssa dostępnych w AGK.
No właśnie, „prawie”.
Jeślibyśmy teraz zastosowali nasz skrypt do jakiegokolwiek filmu,
zauważymy, że wszystkie zdefiniowane przez nas wartości, maja taką
wielkość, jaką zdefiniowaliśmy. A więc margines=80 ma 80 pikseli a
czcionka 18 ma 18 punktów. Pozornie wszystko się zgadza.
Ale nie zapominajmy, że AGK może nam ustawić różną rozdzielczość filmu.
Pytanie brzmi: do czego odnoszą się te wartości w pikselach?
Odpowiedź: do wynikowego filmu. No właśnie.
Weźmy taki przykład: ustawiamy czcionkę Arial o wielkości 16. Ripujemy
film i AGK ustawia nam szerokość kadru na 512px. Czcionka w tym kadrze
ma wielkość 16.
Ale AGK może też ustawić szerokość 720px. Czcionka też będzie=16.
Wszystko się zgadza? A czy nie oglądamy filmu w trybie pełnoekranowym???
Pierwszy film (512px) zostanie rozciągnięty (do ekranu 1024x768px)
dwukrotnie w pionie i poziomie, a więc czcionka, którą
zobaczymy
w trybie pełnoekranowym będzie miała wielkość
32.
Drugi film powiększy się 1,42 razy (720*1,42=1024), a więc
zobaczymy czcionkę o wielkości
23.
Chyba nie o to nam chodziło, żeby każdy film miał w trybie
pełnoekranowym inną wielkość czcionki (w wielkości naturalnej będą one
w opisywanym przykładzie identyczne).
To samo dotyczy marginesów i efektów. No bo jeśli wybieramy
automatyczny dobór szerokości kadru, to skąd mamy wiedzieć, co AGK
wybierze i czy czcionka, którą wybraliśmy będzie dla tej szerokości
odpowiednia?
Na szczęście można tak napisać skrypt, że AGK będzie automatycznie przeliczał nasze wielkości względem wzorcowej wielkości.
Zanim opiszę odpowiednie parametry, powiem jak to działa. Załóżmy, że
odpowiada nam wielkość czcionki=
23. Oczywiście mówię o wielkości w
trybie pełnoekranowym!
Wiemy, że aby osiągnąć taką wartość, trzeba ustawić wielkość czcionki
16, przy założeniu, że film będzie o wielkości
720. Jeśli zapiszemy
teraz w skrypcie czcionkę
16 oraz warunek, że ta wielkość odnosi się do
szerokości
720, jeśli AGK wybierze inną rozdzielczość, to przeliczy
naszą
16 na taka wielkość, aby po zmianie jej na
720 czcionka wyniosła
właśnie
16.
Czyli na przykład – wpisujemy w skrypcie wielkość
16 i rozmiar
720. AGK
jednak wybiera rozdzielczość
512, więc przelicza 512/720=0,71 i mnoży
to przez wielkość czcionki, czyli 16*0,71=11. W film o szerokości 512
wripuje czcionkę o rozmiarze
11, mimo iż w całym skrypcie jest wpisane
16. W trybie pełnoekranowym czcionka będzie miała wielkość widoczną=22
(11 * 1024/512=22), a więc tyle, ile chcieliśmy. (Nie ma ułamkowych
rozmiarów czcionek, stąd w wyniku zaokrągleń otrzymaliśmy czcionkę o
jeden punkt mniejszą).
I takie przeliczenie AGK może wykonać dla dowolnej rozdzielczości, a
odnosić się ono będzie do: trzech marginesów, efektów przejść,
rozmiarów czcionki. Wielkości obrysu i cienia zawsze będą stałe,
dokładnie takie jak w skrypcie.
Jak wymusić na AGK takie inteligentne przeliczanie? Służą do tego dwa
parametry, oba wpisujemy w sekcji
[Script Info] na początku skryptu.
PlayResX: rozdzielczość
PlayResY: rozdzielczość
Zamiast rozdzielczość wpisujemy wartość naszej wzorcowej
rozdzielczości, w stosunku do której AGK wykona przeliczenie, np.:
PlayResX: 720
Uwaga: po dwukropku musi być spacja, to samo zresztą dotyczy wszystkich
innych parametrów, takich jak Format: , Dialogue: , SrciptType: etc.
PlayResX wpisujemy, jeśli chcemy, żeby przeliczenie odbyło się względem
szerokości obrazu.
PlayResY odnosi się do zmiany względem
wysokości kadru.
Zazwyczaj używamy tylko jednej z tych wielkości, ale jeśli chcemy
dokładnie pozycjonować tekst
musimy użyć obu. W przeciwnym wypadku
tekst może np.. być poprawnie ustawiony w pionie, ale w poziomie już
nie (tak się dzieje, gdy użyjemy tylko PlayResY, co jest dosyć częste,
ponieważ
żaden program nie wpisuje PlayRes
X, nawet SSA; inne programy
do konwersji do ssa wpisują tylko PlayRes
Y).
Początek skryptu z poprawnie wpisanymi wielkościami wygląda np. tak:
[Script Info]
Title: <bez tytułu>
Original Script: <nieznany>
ScriptType: v4.00
PlayResY: 416
PlayResX: 720
Skąd wziąć te wielkości?
Opiszę jedną z metod, choć każdy może wypracować własną:
-
Ustawiamy AGK do konwersji. Wciskamy Preview.
-
Robimy zrzut ekranu klatki z podglądu. (nie robimy tego w PowerDVD czy w czymś podobnym, ponieważ nie uwzględniają ITU!).
-
Otwieramy Photoshopa, wycinamy samą klatkę filmu i spisujemy jej rozdzielczość. To są nasze PlayResX i Y.
-
Zmieniamy wielkość zrzutu na taką, by szerokość wyniosła 1024 (jeśli mamy inną szerokość ekranu, to wpisujemy inną wartość.)
-
Nanosimy jakiś tekst i sprawdzamy, jaka wartość w pikselach nam odpowiada jako margines. Przeliczamy ją na nasze PlayResX i Y.
-
Wielkości czcionki nie sprawdzamy w Photoshopie, bo ma inną wielkość
niż ta, którą otrzymamy po wripowaniu. Najlepiej wpisać jakąkolwiek i
metodą prób i błędów sprawdzać w Podglądzie AGK w trybie
pełnoekranowym, co nam odpowiada.
Zapiszmy tę wielkość wraz z PlayResX i obliczmy naszą wielkość czcionki.
Przykład : widzimy w podglądzie, że jeśli w skrypcie jest ustawione PlayResX=720
a czcionka w skrypcie wynosi 16, to ma na pełnym ekranie najbardziej
odpowiadającą nam wielkość. Na podstawie poprzednich obliczeń widzimy,
że lubimy czcionkę 23 [16 * 1024/720=23]. Zapisujemy ją gdzieś i na
przyszłość obliczamy, jaką wielkość mamy ustawić dla czcionki w stylu
na podstawie PlayResX i naszej 23.
Obliczenie jest oczywiście takie:
PlayResX*23 / 1024
1024 to nasza szerokość ekranu.
Sprawdźmy to dla szerokości 512:
512*23=11776
11776/1024=11,5
Nasza wielkość czcionki to 11 lub 12 (połówek nie wpisujemy).
W trybie pełnoekranowym dla 512 będzie to 22 lub 24, czyli tyle, ile chcieliśmy.
I to już koniec opisu właściwości formatu ssa, ale nie koniec tutorialu.