Маркери и команди в Advanced Substation Alpha формат (.ass) субтитри

ASS субтритрите са чудесен и удобен начин да се аранжира и декорира текста, не просто като генериран текст, а като част от визията на филма. Аз лично оцених мощността на този формат при превода на Коми не може да общува, където поради притеснението на главната героиня, нещата които има да каже или начина по който се чувства, трябваше да бъде изобразяван с текс на разлини места на екрана, още повече с различни шрифтове, големина и ефекти.
Ето и командите, които да използваме за различни ефекти:


Специални символи

Това са символи които са в текста, а не в блока на командата, който е в {}. Всички символи и команди започват с \ 
\n
Използва се за "незадължително" минаване на нов ред. Т.е. ако текста е маркиран в началото с {\q2} и е достатъчно дълъг за да трябва да е на два реда, а в останалите случай се разчита от системата като само интервал. Важно: n-на е малък.
\N
Твърдо прекъсване на реда. При всички положения, има нов ред след тази команда. Още повече всяко \N добавя нов ред - т.е. Казвам ти\N\N да замълчиш - е с празен ред между "Казвам ти" и "да замълчиш".
\h
Твърд интервал. Интервала сам по себе си винаги се чете един от системата. Затова, ако искаме добълнително изместване с буква ползваме \h като допълнителен интервал. Например фразата "Раз\N\h\h\hдва", освен че "два" започва на нов ред, също така започва и след з-то в Раз, т.е. има три интервала преди него.

Заместващи команди

Командите винаги са влкючени в текста с бракетите {}. Всеки текст между тези две скоби се приема за команда и не се изписва, включително и вашите коментари за текста. Има два вида команди - \pos, \move, \clip, \iclip, \org, \fade и \fad са за цялото изречение, а останалите могат да се добавят и само за части от изречението, като действието им се прекъсва допълнително (виж по-долу \r). Имайте предвид, че \pos и \move; \clip и \iclip; \fad и \fade са взаимно изключващи се и се препоръчва да има само една команда от тях за да няма грешка в рендването. 
Примерите със  <стойност> означава, че има цифрова стойност към командата, без да се изписват <>.


Форматиране на текста

\i
Италик се добавя с командите \i1 и \i0, като {\i1} активира курсива, а ,{\i0} го прекъсва и връща зададеното за стила или реда.
\b
За болд отново имаме \b1 и \b0, със същите функции като италик командите, но също така и \b<стойност>, като стойността е между 100 и 900 в зависимост колко болд искаме да бъде:
{\b100}Колко {\b300}болд{\b500}искаш{\b700}да {\b900}е текста?
Като "Колко" е най-леко почернено, а "е текста" е най-болд...
\u
Отново имаме {\u1} за начало на подчертаването и {\u0} за край на командата.
\s
{\s1}Е за зачеркнат текст.{\s0}.


Контур и сянка на буквите

\bord<стойност>
Когато задаваме стил на субтитрите, избираме и големината на контура на буквите за да са четими в зависимост от големината на буквите и шрифта. Отделно обаче, можем да променяме големината на контура в зависимост от ситуацията с командата \bord. Т.е. ако добавим \bord0 текста няма контур, а с \bord3 контура е 3px (нормално субтитрите имат 1.2-1.6 контур за да са четими).
\xbord<стойност> и \ybord<стойност>
Тази команда задава размер на контура по x или y посока. Т.е. може да създадете усещане за три-измерност. Имайте предвид, че ако използвате \bord след \xbord или \ybord в ред, това ще отмени и двете команди. Ако се използва 0 за една от стойностите, отново няма да има контур в тази посока. Тук не може да има негативни стойности.
\shad<стойност>, \xshad<стойност> и \yshad<стойност>
Има същите функции като \bord, но за сянката на текста. \xshad и \yshad имат приятната функция, за разлика от само \shad, че може да им се даде негативна стойност и това да измести сянката в противоположната посока.


Блър

\be0, \be1 и \be<стойност>
Това са команди за замъгляване (блър) на краищата на думите, като по този начин той се "омекотява". Най-забележим е ефекта при по-дребен шрифт. Ако в изречението има \bord0 то омекотяването/замъгляването ще е на самата буква, а с \bord1+ замъглява контура, тъй като се прилага само по краищата. Стойността е цяло число.
  \blur<стойност>
Това е усъвършенствана команда използваща ефекта на Гаус подобна на \be, като тук може да използваме за по-голяма прецизност и числа с десетична запетая (но се ползва не , а .). Отново това замъглява краищата на буквата, т.е. зависи от големината на контура...


Шрифт

\fn<име>
Една от най-силните страни на ass функциите и една от най-полезните команди, която може да сложи текст с различен от стила шрифт дори в средата на изречение.
Името на шрифта се изписва веднага след fn, като за правилно рендване и разчитане от системата, трябва да ползвате името на шрифта както го разчита операционната ви система. Т.е. не винаги, ако напишете \fnа_Domino или \fnRoboto Medium ще ги изпише коректно, защото те са в системата на компютъра ви като a_DomIno и Roboto Lt съответно. Само {\fn}, отменя командата за шрифт преди това и връща настройките по стила.
*Също така шрифтовете трябва да се добавят при композирането на mkv файла като прикрепени файлове.
\fs<стойност>
fs, естествено е за font size - размер на шрифта, като стойността е размера.
Така в едно изречение текста може да е с нормалната за субтитрите големина, например 42, {\fs60} или по-голям,{\fs24} а понякога и по-малък.
\fscx<мащаб> и \fscy<мащаб>
Тези команди променят/деформират текста по посока X (\fscx) или Y (\fscy). Мащаба е в проценти и естествено нормално шрифта се показва с размери 100% височина и 100% широчина. Промяна на някоя от тези стойности, независимо равномерно (\fscx50\fscy50 - прави буквите два пъти по малки) или само по едната посока (\fscx200 - прави буквата два пъти по-широка, но не "пипа" височината) увеличава/намалява мащаба му спрямо зададеният преди това размер по стил или ред.
\fsp<стойност>
Променя разстоянието между буквите в думата. Може да се ползват както положителни стойности, така и отрицателни, независимо дали са цели числа или с десетична запетая. За самият ред на диалога, понякога трябва да има разстояние за по-добра четимост или ефект на казаното или негативна стойност за да се събере на ред (но може да е нечетимо), но този ефект най блести в заглавия и звукови ефекти.


Енкодинг    

\fe<id>
Командата fe задава енкодинга на текста. Аз лично горещо препоръчвам да не пипате в тази сфера, освен ако съвсем не се налага да добавите специален символ, от специален шрифт в специален енкодинг, за да не у****те целият текст. Още повече, че не всички програми за превод на субтитри разпознават тази команда. Гледайте да си работите в UTF-8 целият файл, но ако все пак се наложи ето най-често ползваните id-та:
0 - ANSI, Windows CP-1252 за западноевропейски езици.
1 – По подразбиране системата на потребителя.
2 - Символи, примерно за шрифтове като Wingdings.
128 - Shift-JIS, използва се за японски.
129 и 130, съответно Hangeul и Johab, при енкодинг за корейски.
134 - GB2312, използва се за опростен китайски.
136 - BIG5, използва се за традиционен китайски.
162 - турски шрифтови знаци.
163 - виетнамски.
177 - иврит.
178 - арабски.

Завъртане на текста

\frx<стойност>, \fry<стойност>, \frz<стойност> (или \fr<стойност>)
Тези команди задават завъртане на текста по някоя от осите Х, Y или Z съответно. Командите \frz и \fr са еднакви, завъртайки текста по Z, като последната се ползва, ако няма друга ос.  X e хоризонталната плоскост, т.е. завърта "навътре или навън" горната или доната част на текста, Y е вертикалната плоскост и завърта "около екрана" началото или края на текста, а стойностите по Z се движат перпендикулярно на екрана и завъртат нормален текст обратно на часовниковата стрелка:

Завъртането се извършва около предварително зададена точка с командата \org или по позицията \pos (виж по надолу).
\fax<стойност> и \fay<стойност>
С fa стойности се накланя - изкривяване в перспектива текста след завъртане. Стойностите могат да бъдат положителни или отрицателни, като варират между -2 и 2. Отново X изкривява по хоризонтала, а Y по вертикала.


Цвят и прозрачност

\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>&
Командите \*c се използват за задаване на цвета на текста. \c и \1c са идентични и се отнасят за основният цвят. \2c е за вторичен цвят - използва се само при караоке ефекта. \3c е за контура на буквите, а \4c за цвета на сянката. Цветовете се изписват с hexadecimal и са Синьо<bb> Зелено<gg> и Червено<rr>, т.е. обратно на стандартното RGB (да не се стреснете ако просто копи-пейснете rgb цветен код). Командата на цвета винаги започва с &H и завършва с &. AegiSubs си има бутони за това, а при Subtitle Edit е с десен бутон след селекция. Освен класическото c&HFFFFFF&\3c&H000000& - бели букви с черен контур (FF е пълна стойност, 00 е липса и липса в началото може да бъде пропусната), ето някои често използвани цветове:
\c&HFF00 \c&HFF0000&  - синьо
\c&H600000& - тъмно синьо
\c&H00FF00& или \c&HFF00& - зелено
\cH002800& - тъмно зелено
\c&H0000FF& or \c&HFF& - червено
\c&HFF00FF& - магента
\c&H808080& - сиво

\alpha&H<aa>, \1a&H<aa>, \2a&H<aa>, \3a&H<aa> и \4a&H<aa>
Това са командите за прозрачност на текста. \alpha е за всичко, докато 1-2-3-4 е както при цвета от основното запълване през контура до сянката. Стойностите от 00 (нула) означава непрозрачен/напълно видимо, а прозрачност FF (т.е. 255 в десетична система) е напълно прозрачен/невидим. \alpha&H80& е 80 в шеснайсетична (hexadecimal ) система, което го прави 128 в десетична - половината на 255 и съответно текста е 50% прозрачен. Звучи объркващо, но бързо се свиква.


Задаване на стил и нулиране

\q<стил>
Определя стила на прекъсване на редовете. Налични са следните стилове:
0: Автоматично подравняване, като прави всеки ред приблизително еднакво дълъг, но горният ред е по-дълъг, когато еднаква дължина не е възможна. Само \N принудително прекъсва реда.
1: Събира възможно най-много текст в един ред, след което сваля на следващия ред. Само \N принудително прекъсва реда.
2: Без прекъсване на реда, като дългите редове ще се излизат извън екрана. Както \n, така и \N налагат прекъсвания на редовете.
3: Автоматично подравняване, подобно на стил 0, но долните редове са по-дълги.
\k<продължителност>, \K<продължителност>, \kf<продължителност>, \ko<продължителност>
са стойности за караоке ефект. Ако имате време да правите караоке ефект (което е обикновено за ОП/ЕД на романджи), значи ще имате време и да прочетете за това отделно, аз няма да се спирам на това.
\r
\r<стил>
Тази команда отменя всички действителни замени на стилове, включително анимации, за целия следващ текст.
Първият вид, който не указва стил, ще нулира стила, дефиниран за целия ред, докато вторият вид, който указва име на стил, ще нулира първоначалният стил и ще започне този конкретен стил. Например:
-Хей\N{\rAlternate}-А?\N{\r}-Кой си ти?
Ако приемем, че текущият стил на реда е "Default", това е стила за първото „Хей“, след което той е нулиран и следва на следващия ред „А?“ в стила "Alternate", а на третия ред стилът отново се нулира на стане пак "Default" за „Кой си ти?“ .


Подравняване и позициониране

\an<стойност>
За подравняване и позициониране на текста се използва командата \an. Работата с нея е малко трики, тъй като тя поставя текста в определена позиция и съответно го подравнява по нея. Стойностите са като на numpad подредбата:
\an7 -
горе вляво
\an8 -
горе център
\an9 -
горе дясно
\an4 -
среда ляво
\an5 -
среда център
\an6 -
среда дясно
\an1 -
долу вляво
\an2 -
долу център
\an3 -
долу дясно

Както се вижда 1, 4 и 7 подравняват текста вляво, 2, 5, 8 - център, а 3, 6, и 9 в дясно. Командата е удобна да се ползва с \pos или \move за да зададе съответно подравняване на текст в дадена точка.
\a
Има същите функции като \an, но използва различни стойности, които са доста объркани и не се препоръчва. Все пак е хубаво да знаете, че \a5-6-7 (качва текста горе ) е еквивалентно на \an7-8-9, \a9-10-11 (подравнява текста в средата) е еквивалентно на \an4-5-6... \а1-2-3 е със същите стойности като \an. \а4 и \а8 понякога се използват за заглавия по средата на екрана.
\pos(<X>,<Y>)
Задава позицията на реда върху екрана не само с предопределените позиции от по-горе.  X и Y са координатите според резолюцията на филма в скрипта (вижте горе в ass файла PlayResX: и
PlayResY:). Съответно и с \an се задава подравняване спрямо точката на позицията - {\an3\pos(325, 200)} края на текста е на координатите 325 за X и 200 за Y, {\an5\pos(325, 200)} средата на текста е на позицията, а {\an7\pos(325, 200)} текста започва от посочените координати. Затова не се изненадвайте, ако напишете позиция на текста в близост до очертанията на екрана, а текста излезе от него. Това означава, че сте задали грешното подравняване на текста.


Движение

\move(<x1>,<y1>,<x2>,<y2>)
\move(<x1>,<y1>,<x2>,<y2>,<t1>,<t2>)
Командата \move работи подобно на \pos, тъй като позиционира реда на субтитрите на екрана, но разликата е, че \move кара субтитрите да се местят. В първият случай за времето на показване се местят от координати x1, y1 до x2, y2 с постоянна скорост в зависимост от разстоянието. Както и при \pos  подравняването е с \an. Втората команда задава и време в милисекунди, като t1  е времето след което да започне движението, а t2 е времето в което текста трябва да е спрял на координати x2, y2. Например:
\move(100,150,300,350) - субтитрите се появяват на координати 100,150 и се движат до 300,350 след което изчезват
\move(100,150,300,350,500,1500) - субтитрите се появяват на координати 100,150 и стоят там 500 милисекунди (половин секунда), след което се придвижват до 300, 350; където стоят 1500 мск (секунда и половина). Това също означава, че времетраенето за показването на текста трябва да е над 2 секунди (500+1500 + времето за движение).
Имайте предвид, че не може да ползвате \pos и \move в един ред, както и повече от една команда \move. Също така няма как да зададете различна скорост, т.е. ако искате това всяка скорост трябва да е на отделен ред с нови време и координати.
\org(<X>,<Y>)
Това е допълнителна точка за командите за завъртане на текста (виж по-горе). Ако липсва, текста ще се завърти по позиция и по подравняване. \org задава допълнителна точка и така например, може да завъртите текст подравнен вляво или дясно, по средата и така нататък. Също така \org точката може да е с координати много извън видимият екран и така да се използват трикове на перспективата, като това създаде илюзията за движение - нещо много полезно примерно за надписи на улични табели и надписи покрай които се минава.

Избледняване

\fad(<fade-in>,<fade-out>)
Със стойностите на fade-in и fade-out се добавя ефекта на появяване или изчезване на текста. Стойностите са в милисекунди - 1000 за секунда, а ако една от стойностите е 0 това задава само един от ефектите т.е \fad(1200,0) само появява текста, а \fad(0,500) само го избледнява. Ако се появява и после изчезва сбора от двете стойности не трябва да е по-голям от времето за текста.
\fade(<a1>,<a2>,<a3>,<t1>,<t2>,<t3>,<t4>)
По сложното избледняване на текста се определя от три стойности за прозрачност - <a1>,<a2>,<a3> и 4 времена - <t1>,<t2>,<t3>,<t4>. Прозрачността е в 0-255 RGB десетичност, а времето в милисекунди.
Преди t1 текста е с прозрачност a1.
Между t1 и t2 текста избледнява/ появява се от стойност за прозрачност a1 до стойност a2.
Между t2 и t3 текста е с прозрачност a2 постоянно.
Между t3 и t4 текста избледнява/ появява се от прозрачност a2 до стойност a3.
След t4 текста има прозрачност a3.


Анимирана трансформация

\t(<нов стил>)
\t(<ускорение>,<нов стил>)
\t(<t1>,<t2>,<нов стил>)
\t(<t1>,<t2>,<ускорение>,<нов стил>)
Прилагането на анимирана трансформация не е възможна за всички команди и стилове. Още повече има доста повече математика от всики други команди. Отново t1 и t2 стойностите за време са в милисекунди. Ново е ускорението, което може да се използва, за да направи анимацията нелинейна и вместо това да следва експоненциална крива. Ако то е зададено 1 си е линейно. Ако е по малко от 1 анимацията да започва бързо и завършва бавно. По-голяма стойност от 1 има обратният ефект. Объркано е, затова ето няколко примера за да е по-ясно:
{\1c&HFF0000&\t(\1c&H0000FF&)}Здравей!
Текстът започва в синьо, но избледнява към червено, така че е напълно червен, когато времето на текста свърши.
{\1c&HFF0000&\t(1.2\1c&H0000FF&)}Здравей!
Текстът започва в синьо, но избледнява бавно към червено и чак в края се забързва и става изцяло червено.
{\an5\t(0,5000,\frz3600)}Юхуууу!!!
Кара текста да се завърти 10 пъти, обратно на часовниковата стрелка, за 5 секунди.
{\an5\t(0,5000,0.5,\frz3600)}Юхуууу!!!
Пак кара текста да се завърти 10 пъти за 5 секунди, но ще започне бързо и ще се забави.
{\an5\fscx0\fscy0\t(0,500,\fscx100\fscy100)}Бау!
Текста започва с размери 0 и за половин секунда става 100%
И така нататък. Ако се прилага с \clip или \iclip работи само с правоъгълници. Не работи за \p изчертани рисунки.

Клип (изрязване на текст)

\clip(<x1>,<y1>,<x2>,<y2>)
\iclip(<x1>,<y1>,<x2>,<y2>)
Командата \clip се използва за да дефинира правоъгълник само в който текста се вижда. Съответно \iclip е с обратната функция.
\clip(<команди за рисуване>)
\clip(<мащаб>,<команди за чертане>)
\iclip(<команди за рисуване>)
\iclip(<мащаб>,<команди за чертане>)
Изрязването/показването може да се използва и с дефинирани форми по координати за изчертаване. Мащаба е една от стойностите за командата \p, а за изчертаването се ползват командите за чертеж с координати разделени от интервал (виж по-долу и за двете)
\clip(1,m 50 0 b 100 0 100 100 50 100 b 0 100 0 0 50 0) - например показва текста само в изчертаният "кръг". Ако е \iclip там няма да се вижда, което е удобно за текст пред който има тяло или предмет.


Изрисуване на форми


Advanced Substation Alpha има предимството и да позволява да се рисуват векторни графики. За разлика от \clip функцията, където изчертаното е невидимо, при графиките можем да имаме освен формата и цвят, контур, прозрачност и т.н.

\p<0/1/..>
Задаването на този маркер означава, че започваме да чертаем фигура. Освен единствено ако не сме задали стойност 0. Стойностите след \p са мащаба в който ще чертаем - 1 е нормално, 2 е с мащаб 2 пъти по-голям и т.н.
\pbo
Определя отместването на базовата линия за чертане. Това е основно отместване по Y за всички координати. напр.:
\pbo-50 - Рисува всичко 50 пиксела над посоченото, \pbo100 - Рисува всичко 100 пиксела под посоченото.

Команди за рисуване

Тези команди се използват или в \clip команда (векторно изрязване) или между \p# и \p0, извън брекетите {}. Точките се определят така - x1 y1 x2 y1 x2 y2 x1 y2. Например:
Квадрат:
{\p1}m 0 0 | 100 0 100 100 0 100{\p0}
Kвадрат със заоблени ъгли:
{\p1}m 0 0 s 100 0 100 100 0 100 c{\p0}
(c е равно на "p 0 0 100 0 100 100" в този случай). Всяка страна на квадрата е с по 100 px, ако чертаем правоъгълник (170 на 120 px), той примерно ще има следната команда:
 {\p1}m 0 0 | 170 0 170 120 0 120{\p0}
Кръг (почти):
{\p1}m 50 0 b 100 0 100 100 50 100 b 0 100 0 0 50 0{\p0}
(имайте предвид, че второто "b" не е задължително тук)

Така скачайки от координати на координати линията ви следва и когато се затвори, формата се запълва с цвят, има определеният контур и сянка, зададени по горните команди за текст.
{\c&H00FF00&\3c&H0000FF&\p1\bord2}m 0 0 | 100 0 100 100 0 100{\p0} - ще изчертае зелен квадрат с размери 100 на 100px със червен контур от 2px.
В зависимост от формата командите извън {} могат да са:
m <x> <y> - придвижва линията до следващата точка. Така автоматично затваря формата.
n <x> <y> - пак придвижва точката до координати x, y, но не затваря линията.
l <x> <y>  - чертае линия от текущата позиция на курсора до x,y и премества курсора там след това.
b <x1> <y1> <x2> <y2> <x3> <y3> - чертае крива на Безие до x3, y3 като използва x1,y1 и x2,y2 за контролни точки.
s <x1> <y1> <x2> <y2> <x3> <y3> .. <xN> <yN> и p <x> <y> - изчертават кубични b-сплайн функции на криви на Безие, а c - ги затваря.

Надявам се макар и дълго, да е било полезно четиво. Реших да не го разделям на части, за да могат всички команди да се намират на едно място. И да за описването на действието на командите съм използвал информацията налична в официални и фен източници, като съм адаптирал обясненията и примерите на български.

Публикуване на коментар

0 Коментари