K a g e P r o j e c t 24.02.17 / Файлов: 10254 / Скачано: 364  
  Формат Скрипта Sub Station Alpha v4.00+  
     
  Автор: Ramzes-III  
     
 

1. Основная информация
2. Основные термины и понятия
3. Разделы скрипта Sub Station Alpha
4. Типы строк в SSA-скрипте
5. Заголовок скрипта, раздел [Script Info]
6. Определение стилей, раздел [v4 Styles]
7. Событие Dialogue, раздел [Events]
8. Событие Comment, раздел [Events]
9. Событие Picture, раздел [Events]
10. Событие Movie, раздел [Events]
11. Событие Sound, раздел [Events]
12. Событие Command, раздел [Events]

Приложение A: Коды переопределения стиля

Приложение B: Правила кодирования шрифтов/изображений

Этот документ содержит описание формата SSA (англоязычный вариант доступен на сайте http://www.eswat.demon.co.uk). Все изменения и отличия формата ASS от стандартного SSA выделены жирным красным шрифтом.

1. Основные сведения

Этот документ содержит перевод оригинальной спецификации описывающей внутреннюю структуру субтитров в формате SSA/ASS. Однако это не дословное изложение спецификации. Некоторые моменты описаны так, как я их понимаю, а также дополнены кое-каким собственным опытом.

При написании перевода я в первую очередь ориентировался на скрипты пригодные для размещения в сети, поэтому описания того, как вставить в скрипт шрифт, изображение, звук или видео даны в сокращенном варианте, так как они существенно "утяжеляют" скрипт.

Оригинальную спецификацию на английском языке, вы можете найти на сайте http://www.eswat.demon.co.uk.

Отдельно хотелось бы поблагодарить моего друга Дмитрия, благодаря которому (пусть и косвенно) появился этот перевод. Ибо он попросил меня написать справочку, как сделать караоке в Medusa, а в результате получилось вот что J

Замечания и претензии по точности, понятности и правильности перевода не принимаются - за неделю тестирования этого перевода на форуме Кейджа никто из тамошних знатоков никаких предложений и замечаний не прислал.

1. Формат скрипта SSA v4.00 отличается от предыдущих форматов SSA
SSA v4.00 обладает возможностью читать скрипты старых форматов, но скрипты формата v4.00 не смогут правильно загрузиться в старых версиях SSA.

Некоторые из изменений формата предназначены для совместимости SSA v4.00 со скриптами более поздних версий. В частности новая строка "Format" можно содержать информацию любой последовательности параметров стиля, однако SSA прочтет только те параметры, которые ему понятны.

2. Скрипт записывается в формате неформатированного (DOS) текстового файла.
Это означает, что вы можете редактировать его "вручную" в любом текстовом редакторе, но будьте внимательны, SSA воспринимает скрипты написанные в соответствии с правилами, изложенными в этом документе. Загрузка в SSA скрипта, отредактированного с ошибками, может привести к потере информации.

3. Скрипт отличается от "ini"-файлов.
Поскольку скрипт, это не ini-файл Windows, их внутреннее устройство серьезно различается!

4. Большинство строк в разделах начинаются со специального слова - "дескриптора", описывающего их содержимое. Дескриптор оканчивается "двоеточием".

5. Информационные поля в строках разделяются "запятыми".

В SSA скрипте значения параметров в строке разделяются "запятыми", поэтому нельзя использовать "запятые" в именах стиле и прочих текстовых параметрах, за исключением собственно текста субтитров.

6. SSA не обращает внимания на порядок событий (в частности субтитров).

Не важно, в каком порядке события записаны в скрипте. Они все равно будут проигрываться в соответствии с таймингом. Но будьте внимательны, если есть два субтитра с одинаковым начальным таймингом, и вертикальным отступом, то тот субтитр, который идет в скрипте первым будет располагаться ниже, чем тот, который идет следующим.

7. Ошибочная информация игнорируется.
SSA игнорирует неправильно написанные служебные слова и имена параметров. В результате, может быть потеряна информация о форматировании субтитров. Будьте внимательны при редактировании скрипта вручную в текстовом редакторе!

8. Строки не должны быть разорваны.

Все информационные записи содержаться в виде строк со строго определенным набором параметров. Разрыв такой строки на несколько частей недопустим.

9. Если Стиль не определен, то будет использован стиль Default.

Если используемый стиль не описан в соответствующем разделе, то будет использован стиль с именем Default. Если стиль Default также не описан, то последствия непредсказуемы. (мой VobSub при это использует стиль "жирный Arial, кегль 16, все отступы - 20, цвет - белый")

10.Если шрифт используемый в Стиле не установлен, то будет использоваться шрифт Arial.

Это может случиться при использовании чужих скриптов - набор установленных шрифтов на вашем компьютере и компьютере автора может различаться. При написании скрипта желательно использовать стандартные шрифты. Если используется нестандартный шрифт, его необходимо приложить к скрипту, или вшить в него.

2. Основные термины и понятия

Координатная сетка. Ось X, это воображаемая осевая линия расположенная горизонтально. Ось Y - расположенная вертикально. Ось Z - расположенная перпендикулярно плоскости экрана. Центр координат - левый верхний угол кадра. Координаты измеряются в пикселях (точках).

Координатная точка субтитра. Точка, координаты которой задаются при абсолютном позиционировании и перемещении. При выравнивании по центру эта точка находится в середине строки. При выравнивании по правому или левому краям эта точка находится соответственно на правом или левом крае строки (строк). Тоже самое и в отношении вертикального выравнивания. При выравнивании по нижнему краю, точка выравнивания находится внизу строки (строк). По середине - в середине строки (строк). По верхнему - сверху.

Коллизия - Взаимопересекающиеся тайминги у двух разных (не обязательно соседних) субтитров

3. Разделы скрипта Sub Station Alpha

[Script Info]

Этот раздел содержит заголовок и основную информацию о скрипте.

Строка "[Script Info]" должна быть первой строкой в скрипте формата v4.

[v4 Styles]

Этот раздел содержит описание стилей. Все стили, используемые для показа субтитров, должны быть определены в этом разделе.

Для субтитров формата ASS это будет раздел [v4 Styles+]

[Events]

Этот раздел содержит все события, которые должен отработать скрипт - все субтитры, комментарии, команды на показ изображения и видео, проигрывания звука и выполнения программ. Фактически это основной раздел скрипта. Именно его содержимое отображается в таблице строк субтитров в программах редактирования.

[Fonts]

Этот раздел содержит шрифты, закодированные в текстовом формате. За детальной информацией обращайтесь к оригинальной англоязычной спецификации.

[Graphics]

Это раздел содержит растровые изображения, закодированные в текстовом формате. За детальной информацией обращайтесь к оригинальной англоязычной спецификации.

4. Типы строк в SSA-скрипте

Здесь приводится краткое описание строк встречающихся в SSA-скрипте. За детальным описание обращайтесь в следующие разделы.

!: Комментарий. Используется только в файле. Невиден при загрузке файла в редактор субтитров.

Title: Название скрипта.

Original Script: Автор скрипта.

Original Translation: (optional) Переводчик.

Original Editing: (optional) Редактор.

Original Timing: (optional) Таймеровщик

Synch Point: (optional) Описание кадра, позволяющее синхронизировать скрипт с видео.

Script Updated By: (optional) Редактор, не связанный с автором скрипта.

Update Details: Детальное описание внесенных сторонним редактором изменений.

ScriptType: Версия формата.

Collisions: Обработка коллизий (субтитров со взаимоперекрывающимся таймингом).

PlayResY: Разрешение по вертикали.

PlayResX: Разрешение по горизонтали.

PlayDepth: За более детальной информацией обращайтесь к английской версии спецификации.

Timer: За более детальной информацией обращайтесь к английской версии спецификации.

Style: Описание стиля, определяющего внешний вид субтитров.

Dialogue: Событие "диалог", то есть текст субтитра.

Comment: Строка комментария. Комментарий игнорируется при показе субтитров, но виден в редакторе субтитров. Может использоваться для временного исключения из показа событий типа "диалог" и т.п.

Picture: Событие "рисунок", означает, что в этот момент будет отображаться определенное изображение в формате .bmp, .jpg, .gif, .ico или .wmf

Sound: Событие "звук", означает, что в этот момент будет проигрываться определенный звук из .wav-файла.

Movie: Событие "видео", означает, что в этот момент будет проигрываться определенный .avi-файла.

Command: Событие "команда", означает, что в этот момент начнет выполняться определенная программа в режиме фоновой задачи.

5. Заголовок скрипта, раздел [Script Info]

; Комментарии. Текст, следующий за "точкой с запятой", не отображается ни в каких программах и виден только при просмотре скрипта в текстовом редакторе.

Необязательные строки, не влияющие на работоспособность скрипта

Title: Название скрипта.

Original Script: Автор скрипта.

Original Translation: Переводчик.

Original Editing: Редактор.

Original Timing: Таймировщик.

Synch Point: Описание, ключевого кадра по которому можно понять, как точно скрипт синхронизирован с видео.

Script Updated By: Редактор скрипта. (при более поздней, неавторской редакции)

Update Details: Детальное описание изменений, внесенных в авторский скрипт.

Строки, влияющие на работоспособность и правильность отображения субитров

Script Type: Версия формата, для которого создан скрипт. Для SSA-скриптов - "V4.00"

Для ASS-скриптов - "V4.00+".

Collisions: Указание на то, как обрабатывать "коллизии", строки со взаимоперекрывающимся таймингом. Важно, только в том случае, когда у строк одинаковый отступ по вертикали, т.е. строки будут накладываться друг на друга (даже если строки имеют разные стили). Не влияет на строки с разными значениями параметра Layer.

Может принимать значения "Normal" и "Reverse". Чем они отличаются, я так и не понял. За более детальной информацией обращайтесь к английской версии спецификации.

PlayResY: Вертикальное разрешение, на которое настроен скрипт. При наложении скрипта на фильм с другим разрешением DirectShow фильтр автоматически отмасштабирует скрипт.

PlayResX: Горизонтальное разрешение, на которое настроен скрипт. При наложении скрипта на фильм с другим разрешением DirectShow фильтр автоматически отмасштабирует скрипт.

PlayDepth: Глубина цвета (возможно, насыщенность). Понятие не имею, что это такое и на что влияет. За более детальной информацией обращайтесь к английской версии спецификации.

Timer: Масштабирование тайминга в процентах.

"100.0000" соответствует 100%. Должно содержать 4 знака после запятой.

Не знаю, как это работает. За более детальной информацией обращайтесь к английской версии спецификации.

WrapStyle: Определение стиля переноса слов (когда строка не влезает в отведенное для нее место):

0: автоматический перенос, возможен принудительный перенос с помощью тегов \n и \N,

1: перенос по символу "конец строки", работает только тег \N

2: нет переноса, теги \n и \N игнорируются

3: аналогично 0, но нижняя строка всегда будет длиннее верхней.

6. Определение Стилей, раздел [v4+ Styles]

Стиль определяет внешний вид субтитра (цвет, шрифт, размер букв) и его положение на экране. Все стили используемые в скрипте, должны быть определены в этом разделе.

Большинство (в случае ASS - все) параметры установленные в стиле, могут быть переопределены в конкретном субтитре с помощью управляющих кодов - тегов.

Определению стилей всегда должна предшествовать строка начинающаяся словом "Format:". Эта строка определяет, в каком порядке будут следовать устанавливаемые параметры. Соблюдайте правильность написания названий параметров (с учетом регистров):

Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding

Строка определения параметров необходима для совместимости последующих версий формата со старым программным обеспечением.

Field 1: Name. Имя стиля. Чувствительно к регистру. Не должно содержать "запятые".

Field 2: Fontname. Имя шрифта, так как оно определено в Windows. Чувствительно к регистру.

Field 3: Fontsize.

Field 4: PrimaryColour. Основной цвет субтитров в формате BGR (голубой-зеленый-красный). В шестнадцатеричном формате это будет выглядеть как BBGGRR.

Белый - FFFFFF, черный - 000000, голубой - FF0000, зеленый - 00FF00, красный - 0000FF.

Это основной цвет для отображения субтитров.

Field 5: SecondaryColour. Дополнительный цвет субтитров в формате BGR (blue-green-red).

Этот цвет используется при организации спецэффектов, таких как караоке.

Field 6: OutlineColor (TertiaryColour). Цвет окаймления букв в субтитре в формате BGR (blue-green-red).

При установке внешнего вида "Outline+Shadow" - цвет окаймления, при установке "Opaque Box" - цвет поля, но котором размещены субтитры. Для лучшего восприятия рекомендуется делать его контрастным по отношению к Основному цвету.

Field 7: BackColour. Цвет тени под буквами в субтитре в формате BGR (blue-green-red).

Field 4-7: Описание цвета также содержит число определяющее прозрачность букв. В шестнадцатеричном формате это будет выглядеть как AABBGGRR. При этом АА=00 - непрозрачные буквы, AA=FF - абсолютно прозрачные буквы.

Field 8: Bold. Определяет, будет ли текст отображаться жирным шрифтом (-1) или обычным (0). Не исключает применение наклонного шрифта.

Field 9: Italic. Определяет, будет ли текст отображаться наклонным шрифтом (-1) или обычным (0). Не исключает применение жирного шрифта.

Field 9.1: Underline. Подчеркивание. [-1 (есть) или 0(нет)]

Field 9.2: StrikeOut. Зачеркивание. [-1 (есть) или 0(нет)]

Field 9.3: ScaleX. Изменение ширины шрифта [в процентах]. Если без изменений, то 100.

Field 9.4: ScaleY. Изменение высоты шрифта [в процентах]. Если без изменений, то 100.

Внимание: при установке BorderStyle=3 (фон под субтитрами), возможно не пропорциональное изменение ширины или высоты шрифта и фоновой полосы.

Field 9.5: Spacing. Расстояние между буквами. [в пикселях]

Field 9.6: Angle. Угол поворота субтитра вокруг оси Z (ось, перпендикулярная плоскости экрана) против часовой стрелки. Может быть дробным и отрицательным. [в градусах]

Field 10: BorderStyle. 1=Окаймление + тень, 3=фон под субтитрами

Field 11: Outline. Если BorderStyle - 1, то определяет толщину окаймления в пикселях. Если BorderStyle - 2, то определяет размер фонового бокса.

Field 12: Shadow. Определяет глубину размещения тени под субтитрами.

Field 13: Alignment. Число, определяющее горизонтальное и вертикальное выравнивание субтитров. По умолчанию вертикальное выравнивание идет по нижнему краю кадра.

Горизонтальное: 1=по левому краю, 2=по центру, 3=по правому краю.

Для вертикального выравнивания по верхнему краю, добавьте к значению горизонтального выравнивания 4. Для вертикального выравнивания по центру кадра, добавьте к значению горизонтального выравнивания 8.
Например. 5 = выравнивание по верхнему левому углу.

Field 13: В ASS выравнивание определяется так, как расположены кнопки на дополнительной числовой клавиатуре (1-3 по нижнему краю, 4-6 по центру, 7-9 по верхнему краю).

Field 14: MarginL. Отступ от левого края кадра в пикселях. Определяет расстояние от левого края кадра до левой границы области отображения субтитров.

Field 15: MarginR. Отступ от правого края кадра в пикселях. Определяет расстояние от правого края кадра до правой границы области отображения субтитров.

Field 16: MarginV. Вертикальный отступ в пикселях.
Когда выравнивание по нижнему краю - отступ от нижнего края кадра до нижней границы обрасти отображения субтитров.
Когда выравнивание по верхнему краю - отступ от верхнего края кадра до верхней границы.
Когда выравнивание по вертикальному центру - игнорируется, так как субтитр должен располагаться по центру

Field 17: AlphaLevel. Определяет прозрачность текста. В SSA ЕЩЕ не используется.

Field 17: В ASS УЖЕ не используется. J

Field 18: Encoding. Число определяющее кодовую страницу для шрифта. Для поддержки русского языка - 204.

Когда файл в Уникоде, это параметр может быть полезен при преобразовании формата.

7. Событие Dialogue, раздел [Events]

Содержит тайминг, текст субтитров и параметры, определяющие отображение субтитров.

Определению диалогов всегда должна предшествовать строка начинающаяся словом "Format:". Эта строка определяет, в каком порядке будут следовать устанавливаемые параметры. Соблюдайте правильность написания названий параметров (с учетом регистров):

Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text

Строка определения параметров необходима для совместимости последующих версий формата со старым программным обеспечением.

Field 1: Marked
Marked=1 означает, что в Sub Station Alpha строка будет показана как "отмеченная"

Marked=0 означает, что в Sub Station Alpha строка не будет показана как "отмеченная"

* По всей вероятности, нигде кроме самой SSA этот параметр не используется.

Field 1: Layer

Любое целое число. В случае коллизий, субтитр с большим значением данного параметра будет располагаться поверх субтитра с меньшим значением параметра.

Field 2: Start
Время начала показа субтитра в формате Час:Минуты:Секунды:Сотые_доли_секунды. (Ч:ММ:СС:ДД). Час должен содержать не более одной цифры.

Field 3: End
Время окончания показа субтитра в формате Час:Минуты:Секунды:Сотые_доли_секунды. (Ч:ММ:СС:ДД). Час должен содержать не более одной цифры.

Field 4: Style
Имя стиля определенного в разделе описания стилей.

Field 5: Name
Имя героя. Дополнительная информация не имеющая значащего значения для показа субтитра.

Field 6: MarginL
Отступ от левого края кадра в пикселях для текущего субтитра. Должен содержать четыре цифры. Если имеет значение 0000 - то используется отступ, определенный в стиле.

Field 7: MarginR
Отступ от правого края кадра в пикселях для текущего субтитра. Должен содержать четыре цифры. Если имеет значение 0000 - то используется отступ, определенный в стиле.

Field 8: MarginV
Вертикальный отступ в пикселях для текущего субтитра. Должен содержать четыре цифры. Если имеет значение 0000 - то используется отступ, определенный в стиле.

Field 9: Effect
Эффекты движения. Может содержать информацию для реализации одного из трех встроенных эффектов движения доступных в SSA v4.x

Имена эффектов чувствительны к регистру и должны быть записаны в точности так, как это показано ниже.

Karaoke - означает, что текст субтитра будет высвечиваться последовательно, слово за словом.

Эффект Karaoke устарел и не применяется.

Scroll up;y1;y2;delay[;fadeawayheight] - эффект прокрутки текста вверх по экрану. Параметры отделяются от имени эффекта и друг от друга "точкой с запятой".

Величины y1 и y2 определяют вертикальные границы области прокрутки. Задаются в пикселях от верхней границы кадра. Последовательность значения не имеет, прокрутка будет осуществляться от большей границы к меньшей.

Параметр delay определяет скорость прокрутки и может находиться в пределах от 0 до 100. Чем больше значение, тем медленнее скорость.

Banner;delay - эффект горизонтального перемещения текста вдоль экрана справа на лево. Текст будет показан в одну строку независимо от длины и кодов переноса строки.

Параметр delay определяет скорость прокрутки и может находиться в пределах от 0 до 100. Чем больше значение, тем медленнее скорость.

Scroll down;y1;y2;delay[;fadeawayheight] - эффект прокрутки текста вниз по экрану. Аналогичен Scroll up.

Banner;delay[;lefttoright;fadeawaywidth] - улучшеный эффект горизонтального перемещения текста вдоль экрана.

Параметр lefttoright может иметь значения 0 или 1. Значение 0 означает перемещение справа на лево и может отсутствовать. Значение 1 означает перемещение слева на право.

Когда параметр delay больше 0, перемещение буде идти со скоростью 1 пиксель за (1000/delay) секунд.

(ВНИМАНИЕ: Avery Lee's фильтр субтитров воспринимает параметры эффекта "Scroll up" как delay;y1;y2)

Параметы fadeawayheight и fadeawaywidth определяют длину (в пикселях) промежутка, на котором субтитры постепенно появляются и постепенно исчезают.

Field 10: Text
Текст субтитра. Может содержать "запятые", так как все, что расположено после 9-ой запятой считается текстом субтитра.

Может содержать управляющие коды (см. Приложение А)

8. Событие Comment, раздел [Events]

Эта строка может содержать комментарии видимые в редакторе субтитров и невидимые в плеерах. Заголовок строки - "Comment" - может использоваться для исключения из показа строк с субтитрами.

9. Событие Pictur, раздел [Events]

Содержит те же параметры, что и Dialogue, но в Параметре 10 (Field 10), вместо текста субтитра содержится полный маршрут и имя файла с изображением.

Стили игнорируются. К изображению может быть применен эффект движения "scroll up".

Поля, переопределяющие левое и вертикальное выравнивания определяют (в пикселях) положение нижнего левого угла изображения. Нули в соответствующем параметре указывают, что изображение будет располагаться по центру.

10. Событие Sound, раздел [Events]

Содержит те же параметры, что и Dialogue, но в Параметре 10 (Field 10), вместо текста субтитра содержится полный маршрут и имя звукового файла (.wav).

Стили и выравнивания игнорируются. Время окончания субтитра также игнорируется - звуковой файл будет проигрываться пока не закончится, или пока не начнется проигрывание другого звукового файла.

Если до окончания проигрывания текущего звукового файла, будет дана команда на проигрывание видео файла со звуком, то будет идти звук из того файла, который начал проигрываться последним.

11. Событие Movie, раздел [Events]

Содержит те же параметры, что и Dialogue, но в Параметре 10 (Field 10), вместо текста субтитра содержится полный маршрут и имя файла видео (.avi).

Стили игнорируются. Эффекты движения игнорируются.

Время окончания субтитра указывает, когда прекратить показ видео, но если видео файл длиннее, то звук будет продолжать звучать.

Поля, переопределяющие левое и вертикальное выравнивания определяют (в пикселях) положение ВЕРХНЕГО ЛЕВОГО угла изображения. Нули в соответствующем параметре указывают, что изображение будет располагаться по центру.

Если до окончания проигрывания текущего видео файла, будет дана команда на проигрывание звукового файла, то будет идти звук из того файла, который начал проигрываться последним.

12. Событие Command, раздел [Events]

Содержит те же параметры, что и Dialogue, но в Параметре 10 (Field 10), вместо текста субтитра содержится полный маршрут и имя файла программы

Стили, эффекты движения и выравнивание игнорируются. Время окончания также игнорируется - программы будет работать пока не остановится сама или пока её не остановят вручную.

Есть несколько внутренних SSA команд, которые могут быть использованы в SSA скрипте.

За более детальной информацией обращайтесь к оригинальной английской спецификации.

Приложение A: Коды переопределения стилей

Здесь описано, как и с помощью каких кодов можно переопределить настройки показа субтитра установленные в Стиле.

Все коды должны находится в фигурных скобках { }, за исключением кодов переноса строки \n и \N.

Все коды должны начинаться с обратного слеша \

В фигурных скобках может располагаться любое количество кодов.

Большинство тэгов влияет только на тот текст, который расположен непосредственно за ними.

Некоторые коды влияют на всю строку целиком, не зависимо от того, где они в ней находятся. Это коды выравнивания и коды анимации.

\n код переноса строки. Игнорируется, если в ASS-скрипте установлен режим "smart-wrapping". Не заключается в фигурные скобки!

\N безусловный коды переноса строки. Работает всегда, за исключением режима, когда перенос полностью запрещен. Не заключается в фигурные скобки!

\b<0 or 1> жирный шрифт. \b1 - включение жирного шрифта, \b0 - отключение жирного шрифта.

В ASS значение может быть больше единицы, и это должно на что-то влиять, но не совсем понятно, на что. За более детальной информацией обращайтесь к оригинальной англоязычной версии.

\i<0 or 1> наклонный шрифт. \i1 - включение наклонного шрифта, \i0 - отключение наклонного шрифта.

\u<0 or 1> подчеркивание

\s<0 or 1> зачеркивание

\bord<толщина> изменение толщины окаймления символов. <толщина> - значение толщины окаймления в пикселях.

\shad<глубина> изменение тени. <глубина> - значение глубины расположения тени в пикселях.

\be<0 or 1> размытые края.

\fn<имя шрифта> изменение шрифта. <имя шрифта> - имя шрифта установленного в Windows. Чувствителен к регистру.

Если имя шрифте не определено, будет использован шрифт Arial.

\fs<размер шрифта>

изменение кегля (величины символов) шрифта.

\fsc<x или y><проценты>

масштабирование символов по осям X и Y. <проценты> - масштаб в процентах от номинала (нормального размера).Масштабирование происходит относительно координатной точки субтитра

Внимание: при установке BorderStyle=3 (фон под субтитрами), возможно не пропорциональное изменение ширины или высоты шрифта и фоновой полосы.

\fsp<расстояние> изменения расстояния между соседними символами. <расстояние> - расстояние между соседними символами в пикселях.

\fr[<x/y/z>]<угол>

поворот строки вокруг осей X,Y и Z. <угол> - угол поворота в градусах (может быть и отрицательным). Тег \frz имеет сокращенную форму \fr. Поворот происходит вокруг координатной точки субтитра.

\fe<номер> изменение кодовой страницы. <номер> - номер кодовой страницы (для кирилицы - 204).

\c&H<bbggrr>& изменение цвета. <bbggrr> - шестнадцатиричный код цвета.

\1c&, \2c&, \3c& и \4c& - изменение основного цвета шрифта (синоним \c&), дополнительного цвета шрифта (используется при караоке), цвета окантовки символов и цвета тени соответственно.

\a&H<aa>& изменение альфа-канала (прозрачность символов). <aa> - число в шестнадцатеричном коде от 0 (абсолютная непрозрачность) до 255 (абсолютная прозрачность). \1a&, \2a&, \3a& и \4a& - изменение альфа-канала для основного цвета, дополнительного цвета, окантовки и тени соответственно. \alpha синоним \1a.

\a<выравнивание> изменение выравнивания. <выравнивание> - цифровой код выравнивания

По умолчанию вертикальное выравнивание идет по нижнему краю кадра.

Горизонтальное: 1=по левому краю, 2=по центру, 3=по правому краю.

Для вертикального выравнивания по верхнему краю, добавьте к значению горизонтального выравнивания 4.

Для вертикального выравнивания по центру кадра, добавьте к значению горизонтального выравнивания 8.

0 или отсутствие значения - устанавливает выравнивание по умолчанию (соответствует коду 2)

Действует на всю фразу независимо от местоположения!

\an<выравнивание> выравнивание в соответствии с дополнительной цифровой клавиатурой.

Действует на всю фразу независимо от местоположения!

\k<задержка> Создание Караоке. <задержка> - время ожидания в миллисекундах перед применением следующего тега \k.

\k - мгновенное изменение цвета шрифта с дополнительного на основной с последующей задержкой на <длительность> миллисекунд.

\kf или \K - постепенное изменение цвета шрифта c дополнительного на основной слева на право (<длительность> - время изменения в мс).

\ko - мгновенное изменение цвета окантовки символов с дополнительного на нормальный цвет окантовки с последующей задержкой на <длительность> миллисекунд.

\q<номер> изменение стиля переноса.

\r[<Стиль>] Отмена всех ранее введенных переопределений стиля.

Переход к стилю <Стиль> взамен ранее установленного.

Любой код с нераспознанным параметром будет применен как код с параметрами по умолчанию.

Коды Анимации:

\t([<t1>, <t2>, ] [<скорость>,] <коды>)

Основной код анимации.

<t1>, <t2> - смещение времени начала и окончания анимации относительно начального времени показа субтитра (в миллисекундах), при t2<t1 - изменения происходят мгновенно.

<скорость> - дополнительный показатель влияющий на скорость анимации, 1 - нормальная линейная скорость, равномерная анимация (по умолчанию),

меньше 1 - сначала скорость быстрая, но постепенно замедляется (зависит от величины, чем ближе к 1 тем скорость более равномерна)

больше 1 - наоборот сначала скорость медленная но постепенно увеличивается (зависит от величины, чем ближе к 1 тем скорость более равномерна),.

<коды> - любой код, который может быть анимирован:

\c,\1-4c,\alpha,\1-4a,\fs,\fr,\fscx,\fscy,\fsp,\bord,\shad,\clip (только обычный \clip)

\move(<x1>, <y1>, <x2>, <y2>[, <t1>, <t2>])

Произвольное перемещение субтитра по кадру.

<x1>, <y1> координата начальной точки (в пикселях).

<x2>, <y2> координаты конечной точки (в пикселях).

<t1>, <t2> смещение времени начала и окончания анимации относительно начального времени показа субтитра (в миллисекундах)

Координаты определяют положение координатной точки.

\pos(<x>, <y>) абсолютное позиционирование субтитра в точке с координатами <x>, <y> (в пикселях).

Координаты определяют положение координатной точки.

\org(<x>, <y>) принудительное задание положения координатной точки субтитра (в пикселях).

ВНИМАНИЕ: \t, \move и \pos игнорируют коллизии.

\fade(<a1>, <a2>, <a3>, <t1>, <t2>, <t3>, <t4>)

плавное появление и исчезновение субтитра (полный вариант).

<a1> прозрачность до момента времени <t1>

<a2> прозрачность в промежутке времени между <t2> и <t3>

<a3> прозрачность после момента времени <t4>

<t1>-<t4> Смещение временных точек относительно времени начала субтитра в миллисекундах.

<t1> - <t2> прозрачность линейно изменяется от <a1> до <a2>

<t2> - <t3> прозрачность постоянна и определена значением <a2>

<t3> - <t4> прозрачность линейно изменяется от <a2> до <a3>

\fad(<t1>, <t2>) плавное появление и исчезновение субтитра (сокращенный вариант).

<t1> - время проявления субтитра (величина отрезка времени, за который субтитр полностью проявится) (в миллисекундах)

<t2> - время исчезновения субтитра (величина отрезка времени, за который субтитр полностью исчезнет) в мс.

\clip(<x1>, <y1>, <x2>, <y2>)

обрезает части строки субтитра (текст или рисунок - без разницы), выходящие за границы прямоугольной области определенной координатами.

\clip([<масштаб>,] <команды рисования>)

обрезает вокруг замкнутого контура, определенного командами рисования.

<масштаб> означает тоже, что и а случае с \p<масштаб>

Коды Рисования:

ВНИМАНИЕ: VobSub версии 2.23 и ниже, а также, возможно, и некоторые более старшие версии рисунки не отображают, хотя место под них отводят. Рекомендую устанавливать более позднюю версию VobSub.

\p<масштаб>

Включает режим рисования и устанавливает масштаб увеличения координатной сетки как 2 в степени (<масштаб>-1). То есть при <масштаб>=1 координаты будут отсчитываться один к одному, при <масштаб>=3 величина координатной сетки увеличивается в 4 раза, и так далее. Под координатной сеткой подразумевается не абсолютная координатная сетка (как в случае с кодом \pos), а относительная, используемая только в рисунке. При этом рисунок подвержен большинству кодов переопределения стиля, таких как \bord, \shad, \с, \a и др. Текст идущий после закрывающей фигурной скобки интерпретируется как команды рисования.

Если <масштаб>=0 режим рисования отключается и следующий за кодом текст интерпретируется как обычный текст субтитра.

\pbo<y> <y> - смещение базовой линии. По умолчанию, весь рисунок располагается на базовой линии субтитра (линии проходящей по нижней границе строки) так, что самая нижняя точка(точки) рисунка расположена на этой линии . С помощью этой команды можно переместить базовую линию вверх или вниз на <y> пикселов. (вверх: y<0, вниз: y>0)

Команды рисования:

m <x> <y> Переместить курсор в точку с координатами <x>, <y> (предыдущий контур будет автоматически замкнут.

n <x> <y> Переместить курсор в точку с координатами <x>, <y> (не замыкая предыдущий контур)

l <x> <y> провести линию из текущей точки в точку с координатами <x>, <y>

b <x1> <y1> <x2> <y2> <x3> <y3>

Провести кривую Безье, используя точки 1 и 2 как начало и окончание, а точку 3, как точку направления и величины изгиба.

s <x1> <y1> <x2> <y2> <x3> <y3> .. <xN> <yN>

Провести сплайн-кривую через N точек. Команда должна содержать не менее 3-х точек.

p <x> <y> продлить сплайн из текущей точки в точку с координатами <x>, <y>

c замкнуть сплайн

Важно:

Команды должны располагаться между кодами {\p<x>} и {\p0}. (за исключением кода \clip(..))

Рисунок должен начинаться с команды m.

Рисунок должен содержать только замкнутые контуры.

Все разомкнутые контуры будут автоматически замкнуты прямыми линиями.

Замкнутые контуры заливаются основным цветом. Сама линия показывается цветом окаймления и имеет толщину, как у окаймления букв. Можно сделать контурный рисунок, для этого необходимо сделать основной цвет прозрачным с помощью соответствующих кодов или в установках стиля.

Взаимоперекрывающиеся контуры объединяются с помощью операции XOR (исключающее или).

Если одноименные команды следуют друг за другом, их имена писать не обязательно.

Все команды и координаты отделяются друг от друга пробелами.

Команды "p" и "c" должны следовать только за другими командами рисования сплайна, хотя их применение после обычных команд не приводит к фатальным последствиям.

С точки зрения VobSub рисунок - это просто слово в строке субтитра, поэтому рисунок может располагаться между слов и подвержен действию многих кодов переопределения стиля.

Примеры:

квадрат: m 0 0 l 100 0 100 100 0 100

скругленный квадрат: m 0 0 s 100 0 100 100 0 100 c (в этом случае "c" соответствует команде "p 0 0 100 0 100 100")

Круг: m 50 0 b 100 0 100 100 50 100 b 0 100 0 0 50 0 (замечание - вторая 'b' необязательна)

Приложение B: правила кодирования шрифтов/изображений

За детальной информацией обращайтесь к оригинальной английской версии спецификации.


[Исходный текст в формате RTF]

 
     
  << назад