SubStationAlpha-Benutzerhandbuch

Aus Fansub-Wiki
Wechseln zu: Navigation, Suche

Dieses Dokument ist aus der Spezifikation des Dateiformats für SubStationAlpha (ursprüngliche Adresse im Web: http://www.eswat.demon.co.uk, heute nicht mehr funktionsfähig) hervorgegangen.

Erweiterungen für das Dateiformat des Programms Advanced SubStation sind an den entsprechenden Stellen eingearbeitet und entsprechend markiert.

Einige Teile des Benutzerhandbuchs beziehen sich spezifisch auf die Bearbeitung von Skripten im SSA- bzw. ASS-Format mit dem Programm SubStationAlpha; die meisten Abschnitte befassen sich jedoch allgemein mit dem Format dieser Skripte, welche von diversen anderen Fansubber-Hilfsprogrammen ebenfalls interpretiert werden. Insofern kann die Lektüre dieses Handbuchs für alle, die ein Skript in diesem Format bearbeiten (Editoren, Timer, Typesetter, Encoder), von mehr oder weniger großem Interesse sein.


Inhaltsverzeichnis

Allgemeines über das Skriptformat "SubStationAlpha v4.00+"

Dieses Dokument setzt voraus, dass der Leser mit den Begriffen und Konzepten des Programms SubStationAlpha (SSA) vertraut ist. Diese sind in der Hilfedatei ssa.hlp beschrieben, welche gemeinsam mit dem Programm ausgeliefert wird.

  • Das Skript-Format v4.00 unterscheidet sich von demjenigen früherer Versionen von SSA. SSA v4.00 kann Skripte älterer Versionen lesen, aber v4.00-Skripte können von älteren SSA-Versionen nicht korrekt geladen werden.
    Einige der Änderungen des Skriptformates haben das Ziel, allen Versionen von SSA ab v4.00 zu ermöglichen, Skripte der aktuellen und jeder künftigen Version lesen zu können; insbesondere die neuen "Format"-Zeilen erlauben es SSA, nur diejenigen Informationen zu lesen, die es verarbeiten kann, und alle zusätzlichen Informationen künftiger Skript-Formate zu ignorieren.
  • Skripte sind einfache (DOS-) Textdateien. Sie können also "manuell" mit jedem normalen Texteditor bearbeitet werden, doch dabei ist entsprechende Vorsicht erforderlich: SSA setzt einen korrekten Aufbau des Skripts gemäß der in dem vorliegenden Dokument beschriebenen Regeln voraus, und jeder Fehler kann zu unvorhersehbaren Folgen führen, sobald das Skript von SSA eingelesen wird.
  • Ein Skript ist unterteilt in Abschnitte, ähnlich einer Windows-ini-Datei.
    SSA-Skripte sind allerdings keine wirklichen Windows-.ini-Dateien, und einige Eigenschaften, die man erwarten könnte, sind deshalb nicht gewährleistet.
  • Die meisten Zeilen innerhalb jedes Abschnittes beginnen mit einer Art Schlüsselwort zur Beschreibung der Art des Inhalts dieser Zeile. Dieses Schlüsselwort wird von einem Doppelpunkt gefolgt.
  • Die Informationsfelder innerhalb jeder Zeile werden durch Kommata voneinander getrennt. Daher darf innerhalb von Charakter- oder Style-Namen kein Komma verwendet werden (was SSA selbst bei der Eingabe auch verhindern würde). Es ist deshalb aber auch relativ einfach, Abschnitte eines SSA-Skripts als CSV-Datei in eine Tabellenkalkulation zu laden und die von anderen Untertitelprogrammen ggf. benötigten Spalten herauszuschneiden.
  • Die Reihenfolge, in welcher die Ereignisse innerhalb eines Skripts eingegeben werden, ist für SSA irrelevant. Selbst wenn sie in exakt umgekehrter Reihenfolge eingegeben worden wären, würde SSA sie immer noch korrekt abspielen. Die Annahme, dass die Reihenfolge der Ereignis-Zeilen der chronologischen Reihenfolge ihres Abspielens entsprechen würde, ist also nicht zulässig.
  • Strukturell fehlerhafte Zeilen werden ignoriert. SSA überliest alle Zeilen, die es nicht verstehen kann, und gibt nach dem Laden des Skripts eine Warnungsmeldung mit der Anzahl der ignorierten Zeilen aus.
  • Es gibt kein Zeichen für die Markierung einer Fortsetzungszeile. Jeder Eintrag in einem Skript enthält seine vollständige Information innerhalb einer einzigen Zeile. (Anm.d.Übers.: Ausgenommen in das Skript eingebundene Binärdateien.)
  • Falls innerhalb eines Skripts undefinierte Styles verwendet werden sollen, dann wird statt dessen der *Default-Style verwendet. Falls beispielsweise Ereignis-Zeilen aus einem anderen Skript eingefügt wurden, ohne die Definitionen der in diesen Zeilen verwendeten Styles ebenfalls zu übernehmen, dann verwendet SSA beim Abspielen des Skripts seine Default-Style-Einstellungen für diese Zeilen.
  • Falls ein Style eine Schriftart verwendet, die nicht installiert ist, wird stattdessen die Schriftart Arial verwendet. Dies kann beispielsweise bei Skripten passieren, die der Anwender nicht selbst erstellt hat - auf dem System des Skript-Autors könnten zusätzliche Schriftarten installiert sein.

Die Abschnitte innerhalb eines SSA-Skripts

Allgemeine Informationen

[Script Info]

Dieser Abschnitt enthält allgemeine Informationen über das Skript.

In einem Skript des Formats der SSA-Version 4 muss die Zeile "[Script Info]" die erste Zeile der Datei sein.

Style-Definitionen

[v4 Styles]

Dieser Abschnitt enthält alle Style-Definitionen, die von diesem Skript benötigt werden. Jeder von einem Untertitel verwendete Style sollte hier definiert sein.

ASS verwendet die Markierung "[v4 Styles+]" für diesen Abschnitt.

Ereignis-Definitionen

[Events]

Dieser Abschnitt enthält alle Ereignisdefinitionen für das Skript - alle Untertitel, Kommentare, eingebundene Bild-, Sound- und Video-Dateien sowie interne Kommandos von SSA. Im Wesentlichen enthält er alle Informationen, die im Tabellen-Raster des Haupt-Bildschirms von SubStationAlpha sichtbar sind.

Eingebundene Schriftarten

[Fonts]

Dieser Abschnitt enthält als Text codierte Schriftartdateien, falls der Anwender sich dafür entschieden hat, Nonstandard-Schriftarten direkt in das Skript einzubinden. Diese Einbindung ist innerhalb von SSA-Skripten nur mit Truetype-Schriftarten möglich.

Jede Schriftartdatei wird durch eine Zeile im Format

fontname: <dateiname>

eingeleitet.

Das Wort "fontname" muss in Kleinbuchstaben notiert werden (Großbuchstaben werden als Teil des Inhalts einer textcodierten Datei interpretiert).

<dateiname> ist der Name der Datei, den SSA beim Abspeichern der Schriftart verwenden wird. Er besteht aus

  • dem ursprünglichen Dateinamen der Truetype-Schriftart,
  • gefolgt von einem Underscore "_",
  • gefolgt von einem optionalen "B", falls die Schrift fett (bold) dargestellt werden soll,
  • gefolgt von einem optionalen "I", falls die Schrift kursiv (italic) dargestellt werden soll,
  • gefolgt von einer Zahl zur Bezeichnung des Codes (Zeichensatz) sowie
  • der Endung ".ttf".

Beispiele für solche Anweisungen:

fontname: chaucer_B0.ttf
fontname: comic_0.ttf

Die fontname-Zeile wird gefolgt von Zeilen druckbarer Zeichen, welche die Binärwerte des Inhalts der Schriftartdatei darstellen. Jede Zeile ist genau 80 Zeichen lang, ausgenommen die letzte Zeile, welche kürzer sein kann.

Die genaue Art der Umwandlung von binären in druckbare Zeichen ist im Anhang B dieses Dokuments genauer beschrieben.

Eingebundene Bilddateien

[Graphics]

Dieser Abschnitt enthält als Text codierte Bilddateien, falls der Anwender sich dafür entschieden hat, Bilddateien innerhalb des Skripts zu verwenden.

Die textcodierte Darstellung dieser binären Bilddateien ist zwar ineffizient, doch sie garantiert, dass die Bearbeitung von SSA-Skripten mit jedem normalen Texteditor weiterhin möglich bleibt.

Jede Bilddatei wird durch eine Zeile im Format

filename: <dateiname>

eingeleitet.

Das Wort "filename" muss in Kleinbuchstaben notiert werden (Großbuchstaben werden als Teil des Inhalts einer textcodierten Datei interpretiert).

<dateiname> ist der Name der Datei, unter dem SSA die Bilddatei abspeichern wird. Er muss dem Namen eines in der Skript-Datei verwendeten Bildes entsprechen.

SSA speichert alle innerhalb des Skripts gefundenen Bilder in einem Unterverzeichnis seines Programm-Installationsverzeichnisses mit dem Namen "Pictures", also beispielsweise im Verzeichnis "c:\Programme\Sub Station Alpha v4.00\Pictures". SSA versucht, Dateien zunächst über den im Skript angegebenen Namen zu laden; wird eine Bilddatei dort nicht gefunden, dann sucht SSA nach dieser Datei in seinem "Pictures"-Unterverzeichnis.

Die filename-Zeile wird gefolgt von Zeilen druckbarer Zeichen, welche die Binärwerte des Inhalts der Bilddatei darstellen; für das Format gilt dasselbe wie bei Schriftartdateien.

Die genaue Art der Umwandlung von binären in druckbare Zeichen ist im Anhang B dieses Dokuments genauer beschrieben.

Zeilentypen innerhalb eines SSA-Skripts

Liste aller Zeilentypen eines SSA-Skripts

Dieses Kapitel enthält eine Kurzbeschreibung aller Zeilentypen, die innerhalb eines SSA-Skripts zulässig sind. Eine vollständige Beschreibung jedes einzelnen Zeilentyps ist den nachfolgenden Kapiteln zu entnehmen.

Zeilentyp Bedeutung
!: Dies kennzeichnet eine Kommentarzeile innerhalb des Skripts. Der Inhalt dieser Zeile ist nicht sichtbar, wenn das Skript mit SSA geöffnet wird.
Title: In dieser Zeile kann man dem Skript einen beschreibenden Namen geben.
Original Script: Der bzw. die ursprünglichen Autor(en) des Skripts
Original Translation: (optional) Der ursprüngliche Übersetzer der Dialoge
Original Editing: (optional) Der bzw. die ursprüngliche(n) Editor(en) des Skripts, üblicherweise der bzw. die Namen derjenigen Person(en), welche die unbearbeitete Übersetzung in idiomatisches und besser lesbares Englisch umgewandelt haben.
Original Timing: (optional) Angaben über den bzw. die Timer, d. h. die Person(en), welche das Timing des Original-Skripts erstellt haben.
Synch Point: (optional) Die Angabe des Zeitpunkts, ab dem innerhalb des Videos das Abspielen dieses Skripts begonnen werden soll.
Script Updated By: (optional) Namen anderer Bearbeiter des Original-Skripts (Fansubgruppen etc.).
Update Details: Eine Beschreibung der während dieser Bearbeitung vorgenommenen Änderungen.
ScriptType: Die Version des verwendeten SSA-Skriptformats, z. B. "V3.00".
Collisions: Eine Festlegung des anzuwendenden Verfahrens für die Bewegung von Untertitel, um Kollisionen bei deren Anzeige zu verhindern.
PlayResY: Die Höhe des Bildschirmformats, welches beim Abspielen des Videos vom Skript-Autor verwendet wurde.
PlayResX: Die Breite des Bildschirmformats, welches beim Abspielen des Videos vom Skript-Autor verwendet wurde.
PlayDepth: Die Farbtiefe, welches beim Abspielen des Videos vom Skript-Autor verwendet wurde.
Timer: Eine Abspiel-Geschwindigkeit für das Skript als Prozentangabe. Der Wert "100.0000" entspricht einer Geschwindigkeit von genau 100%. Diese Timer-Geschwindigkeit wird von SSA als Multiplikator auf alle Zeitangaben der SSA-eigenen Uhr angewendet (to provide a ramp time?).
WrapStyle: Eine Definition einer Strategie zum automatischen Zeilenumbruch für anzuzeigenden Text.
Style: Eine Style-Definition, die verwendet wird, um den vom Skript anzuzeigenden Text zu formatieren.
Dialogue: Ein Dialog-Ereignis, d. h. ein anzuzeigender Text.
Comment: Ein Kommentar-Ereignis. Es kann dieselben Informationen wie ein Dialog-, Bild-, Sound-, Movie- oder Kommando-Ereignis enthalten, wird jedoch beim Abspielen des Skripts ignoriert.
Picture: Ein Bild-Ereignis; SSA zeigt die angegebene Graphik im Format .bmp, .jpg, .gif, .ico bzw .wmf ab.
Sound: Ein Sound-Ereignis; SSA spielt die angegebene .wav-Datei ab.
Movie: Ein Movie-Ereignis; SSA spielt die angegebene .avi-Datei ab.
Command: Ein Kommando-Ereignis; SSA führt das angegebene Programm als Hintergrund-Task aus.

Der Kopfabschnitt eines SSA-Skripts

Zeile ";"

Nach dem Semikolon darf beliebiger Text folgen. Dies ist eine Kommentarzeile innerhalb des Skripts; sie ist nicht sichtbar, wenn das Skript in SubStationAlpha geladen wird.

Das Semikolon muss das erste Zeichen innerhalb der Zeile sein.

Dieses Zeilenformat löst den Zeilentyp "!:" früherer Skript-Versionen ab.

Zeile "Title:"

Diese Zeile enthält einen beschreibenden Titel des Skripts.

Haben der bzw. die Original-Autor(en) hier keinen Wert angegeben, dann wurde automatisch der Wert "<untitled>" eingetragen.

Zeile "Original Script:"

Der bzw. die Original-Autor(en) des Skripts.

Haben der bzw. die Original-Autor(en) hier keinen Wert angegeben, dann wurde automatisch der Wert "<untitled>" eingetragen.

Zeile "Original Translation:"

(optional) Der Original-Übersetzer der Dialoge.

Hat der Autor hier keinen Wert angegeben, dann ist diese Zeile nicht im Skript enthalten.

Zeile "Original Editing:"

(optional) Der Editor des Original-Skripts, üblicherweise also derjenige, der die Rohfassung der Übersetzung in idiomatisches, lesbares Englisch verwandelt hat.

Hat der Autor hier keinen Wert angegeben, dann ist diese Zeile nicht im Skript enthalten.

Zeile "Original Timing:"

(optional) Diejenige Person, welche das Timing des Original-Skripts erstellt hat.

Hat der Autor hier keinen Wert angegeben, dann ist diese Zeile nicht im Skript enthalten.

Zeile "Synch Point:"

(optional) Festlegung eines Zeitpunkts innerhalb des Videos, ab welchem die Auswertung des Skripts beim Abspielen begonnen werden soll.

Hat der Autor hier keinen Wert angegeben, dann ist diese Zeile nicht im Skript enthalten.

Zeile "Script Updated By:"

(optional) Namen beliebiger andere Fansubgruppen, von denen das Original-Skript bearbeitet wurde.

Haben nachfolgende Bearbeiter des Skripts hier keinen Wert angegeben, dann ist diese Zeile nicht im Skript enthalten.

Zeile "Update Details:"

Eine Beschreibung der vorgenommenen Änderungen am Original-Skript (durch andere Fansub-Gruppen).

Haben nachfolgende Bearbeiter des Skripts hier keinen Wert angegeben, dann ist diese Zeile nicht im Skript enthalten.

Zeile "Script Type:"

Dies ist die Version des in diesem SSA-Skript verwendeten Formats, z. B. "V4.00". Sie wird von SubStationAlpha dazu verwendet, um beim Laden eines Skripts in eine SSA-Version, die selbst älter ist als die Version des Skripts, eine Warnung auszugeben.

Die Version von ASS-Skripten lautet "V4.00+".

Zeile "Collisions:"

Diese Angabe legt fest, auf welche Weise Untertitel an einer anderen als der geplanten Stelle angezeigt werden, um eine automatisch erkannte Kollision zwischen mehreren Untertitel-Einblendungen zu verhindern:

  • Falls dieser Eintrag den Wert "Normal" enthält, dann wird SSA versuchen, Untertitel an den durch ihre Randabstands-Definitionen definierten Positionen einzublenden. Es ist allerdings möglich, dass Untertitel vertikal verschoben werden, um Kollisionen zu vermeiden. Die Einstellung "Normal" bewirkt dabei ein "Übereinander-Stapeln" von Untertiteln, welche jedoch so nahe wie möglich am vertikalen (unteren) Rand positioniert werden - wobei eine Einblendung auch in einer "Lücke" zwischen den bereits angezeigten Untertiteln erfolgen kann, falls diese dafür genügend Platz bietet.
  • Falls dieser Eintrag den Wert "Reverse" enthält, dann werden bereits angezeigte Untertitel nach oben verschoben, um Platz für neue, überlappende Untertitel zu schaffen. Die Untertitel können also praktisch immer von oben nach unten in der Reihenfolge ihrer Einblendung gelesen werden - es ist allerdings möglich, dass der zuerst eingeblendete Untertitel etwa in der Mitte des Bildschirms angezeigt wird, bevor nachfolgende überlappende Untertitel sichtbar werden. Diese Methode kann also eine Menge Platz auf dem Bildschirm belegen.

Zeile "PlayResY:"

Dies beschreibt die Höhe des Bildschirmformats, die der Skript-Autor beim Abspielen des Skripts verwendet hat.

SSA v4 wird automatisch die Einstellung mit der geringstmöglichen Abweichung auswählen, falls das Playback-Verfahren "Directdraw" verwendet wird.

Zeile "PlayResX:"

Dies beschreibt die Breite des Bildschirmformats, die der Skript-Autor beim Abspielen des Skripts verwendet hat.

SSA v4 wird automatisch die Einstellung mit der geringstmöglichen Abweichung auswählen, falls das Playback-Verfahren "Directdraw" verwendet wird.

Zeile "PlayDepth:"

Dies beschreibt die Farbtiefe, die der Skript-Autor beim Abspielen des Skripts verwendet hat.

SSA v4 wird automatisch die Einstellung mit der geringstmöglichen Abweichung auswählen, falls das Playback-Verfahren "Directdraw" verwendet wird.

Zeile "Timer:"

Legt die Timer-Geschwindigkeit für das Skript fest, in Form eines Prozentwerts. Beispiel: "100.0000" entspricht exakt 100%. Der Wert wird auf vier Dezimalstellen nach dem Komma genau angegeben.

Die Timer-Geschwindigkeit wirkt als Multiplikator angewendet auf die interne Uhr von SSA, um die Dauer eines Skripts zu strecken bzw. zu stauchen. Eine Geschwindigkeit größer als 100% reduziert die Abspieldauer des Skripts, so dass der Abspielzeitpunkt der Untertitel mit wachsender Laufzeit des Skripts immer weiter nach vorne verschoben wird. Eine Geschwindigkeit kleiner als 100% erhöht die Abspieldauer des Skripts, so dass der Abspielzeitpunkt der Untertitel mit wachsender Laufzeit des Skripts immer weiter nach vorne verschoben wird (ähnlich einer positiven "ramp time").

Diese Streckung oder Stauchung tritt nur während des Abspielens des Skripts auf - die tatsächlichen Zeitangaben der Events innerhalb des Skripts werden durch diese Angabe nicht verändert.

(Check the SSA user guide if you want to know why "Timer Speed" is more powerful than "Ramp Time", even though they both achieve the same result.)

Zeile "WrapStyle:"

Legt die Art des Zeilenumbruchs fest:

  • 0: Intelligenter Zeilenumbruch, die dabei erzeugten Zeilen werden möglichst gleich lang gestaltet, wobei die oberste Zeile breiter wird.
  • 1: Zeilenumbruch nur durch Zeilenende in der Datei und \N.
  • 2: kein Zeilenumbruch außer durch \n bzw. \N.
  • 3: Wie 0, aber die unterste Zeile wird breiter.

Style-Definitionen in einem SSA-Skript

Allgemeines über Style-Definitionen

Styles legen das Erscheinungsbild und die Positionierung der Untertitel fest. Jeder in einem Skript verwendete Styles muss durch eine "Style:"-Zeile innerhalb desselben Skripts definiert werden.

Styles dienen als Hilfsmittel zur Vereinheitlichung der Darstellung; (fast) jede Einstellung innerhalb eines Styles (ausgenommen Typ und Tiefe von Schatten bzw. Umriss) kann jedoch durch Markierungen innerhalb des Untertiteltextes lokal überdeckt werden.

Die Liste aller Felder, die innerhalb jeder Style:-Zeile auftreten, werden in einer besonderen Zeile mit dem Zeilentyp "Format:" aufgelistet. Diese Format:-Zeile muss vor jeglichen Style:-Zeilen auftreten, denn sie legt die Art und Weise fest, in der SSA die nachfolgenden Style-Definitionen interpretiert.

Die in der Format:-Zeile aufgelisteten Feldnamen müssen exakt in der nachfolgend angegebenen Art und Weise geschrieben werden. Folgende Felder stehen zur Verfügung:

Die Existenz dieser Format:-Zeile ermöglicht es nachfolgenden Versionen des Skriptformats, zusätzliche Felder zu verwenden, während ältere Versionen der SSA-Software die ihr bekannten Felder dieser erweiterten Formate nach wie vor erkennen und auswerten können - selbst dann, wenn sich die Reihenfolge der Anordnung der Felder innerhalb einer Zeile geändert haben sollte.

Name des definierten Styles

Style-Feld: Name

Der Name des zu definierenden Styles (case-sensitiv).

Der Name darf kein Komma enthalten (weil dieses als Trennzeichen zwischen den einzelnen Feldern der Format-Definition benötigt wird).

Schriftart und Zeichencodierung

Style-Feld: Fontname

Der Name der Schriftart, wie er in Windows angezeigt wird (case-sensitiv).

Style-Feld: Encoding

Dieses Feld legt den Zeichensatz für die zu verwendende Schriftart fest; auf mehrsprachigen Windows-Systemen ermöglicht dies den gleichzeitigen Zugriff auf Sonderzeichen verschiedener Sprachen. Üblicherweise enthält dieses Feld den Wert "0" für den "westlichen" ANSI-Zeichensatz von Windows.

Falls die Skriptdatei im Unicode-Format vorliegen sollte, kann diese Encoding-Angabe für die Umwandung in andere Dateiformate nützlich sein.

Schriftgrößen und -skalierungen

Style-Feld: Fontsize

Die Schriftgröße in Punkt. Beachte, dass diese Schriftgröße relativ zur Bildschirmauflösung des zu untertitelnden Videos interpretiert wird.

Style-Feld: ScaleX

(nur ASS:) Ein Skalierungsfaktor der Schriftbreite in Prozent.

Style-Feld: ScaleY

(nur ASS:) Ein Skalierungsfaktor der Schrifthöhe in Prozent.

Style-Feld: Spacing

(nur ASS:) 'Gesperrte' Anzeige, d. h. die Anzahl an zusätzlichem freiem Platz (in Pixeln) zwischen je zwei Zeichen des anzuzeigenden Untertiteltextes.

Farbdefinitionen

Style-Feld: PrimaryColour

Die Primärfarbe der Schrift, als sedezimaler BGR-Farbcode (blau-grün-rot, "BBGGRR"). In dieser Farbe wird der Untertitel normalerweise angezeigt.

Style-Feld: SecondaryColour

Die Sekundärfarbe der Schrift, als sedezimaler BGR-Farbcode (blau-grün-rot, "BBGGRR"). In dieser Farbe kann ein Untertitel angezeigt werden, der aufgrund der automatischen Kollisionserkennung an eine andere Bildschirmposition verschoben wurde (um ihn von anderen angezeigten Untertiteln optisch abzugrenzen).

Style-Feld: TertiaryColour (in SSA) bzw. OutlineColor (in ASS)

Die Outlinefarbe der Schrift, als sedezimaler BGR-Farbcode (blau-grün-rot, "BBGGRR").

Style-Feld: BackColour

Die Hintergrundfarbe der Schrift, als sedezimaler BGR-Farbcode (blau-grün-rot, "BBGGRR"). In dieser Farbe werden Umrandung und Schatten der Untertitel angezeigt, falls diese verwendet werden sollen.

Hinweis für Typesetter: Der Sinn der Verwendung von Umrandung bzw. Schatten sollte es sein, die Lesbarkeit der angezeigten Schrift unabhängiger von der Farbe des Hintergrunds zu gestalten, vor welchem diese Anzeige erfolgen soll. Am besten lesbar ist eine Schrift dann, wenn sie gegenüber dem Hintergrund einen starken Kontrast aufweist, also helle Schrift auf dunklem Grund bzw. dunkle Schrift auf hellem Grund. Da die Farbe des Szenenhintergrunds während der Anzeige eines Untertitels jedoch ständig wechseln kann, ist es zu empfehlen, zwischen Primärfarbe und Hintergrundfarbe derselben Styledefinition ebenfalls einen möglichst starken Kontrast zu wählen, weil sich dann je nach Szenen eine dieser beiden Farben auf jeden Fall deutlich vom Szenenhintergrund abheben wird.

Style-Feld: AlphaLevel

Dieses Feld wäre eigentlich dafür gedacht gewesen, über eine Alphakanal-Angabe die Transparenzdefinition der anzuzeigenden Schrift aufzunehmen. Von SSA wird das Feld allerdings nicht in dieser Hinsicht ausgewertet, in der Felddefinition von ASS taucht es sogar überhaupt nicht mehr auf.

(nur bei ASS:) Statt dessen ist die Alphakanal-Definition Teil der jeweiligen Farbdefinitionen geworden. Für alle Farbdefinitionen gilt nämlich: Falls der angegebene Wert 8 statt 6 Sedezimalziffern enthält, dann definieren die beiden höchstwertigen Ziffern (AABBGGRR) den Wert des Alphakanals dieser Farbdefinition.

Optische Hervorhebungen

Style-Feld: Bold

Dieses Feld legt durch einen Schalter-Wert (true/false) fest, ob die Schrift fett (true) oder normal (false) dargestellt wird. "-1" entspricht "true", "0" entspricht "false". Diese Angabe erfolgt unabhängig von der Festlegung, ob die Schrift kursiv dargestellt werden soll - es sind beliebige Kombinationen beider Attribute möglich.

Style-Feld: Italic

Dieses Feld legt durch einen Schalter-Wert (true/false) fest, ob die Schrift kursiv (true) oder normal (false) dargestellt wird. "-1" entspricht "true", "0" entspricht "false". Diese Angabe erfolgt unabhängig von der Festlegung, ob die Schrift fett dargestellt werden soll - es sind beliebige Kombinationen beider Attribute möglich.

Style-Feld: Underline

(nur ASS:) Dieses Feld legt durch einen Schalter-Wert (true/false) fest, ob die Schrift unterstrichen (true) oder normal (false) dargestellt wird. "-1" entspricht "true", "0" entspricht "false".

Style-Feld: StrikeOut

(nur ASS:) Dieses Feld legt durch einen Schalter-Wert (true/false) fest, ob die Schrift durchgestrichen (true) oder normal (false) dargestellt wird. "-1" entspricht "true", "0" entspricht "false".

Schriftumgebung

Style-Feld: BorderStyle

Die Festlegung der Umrahmung der Schriftanzeige. Ein Wert von "1" aktiviert die Umriss- und die Schatten-Darstellung, ein Wert von "3" bedeutet "Opaque box".

Style-Feld: Outline

Falls BorderStyle den Wert "1" hat, legt diese Einstellung die Dicke der Umrissdarstellung in Pixeln. Zulässige Werte für diesen Style-Parameter sind Zahlen von 0 bis 4.

Style-Feld: Shadow

Falls BorderStyle den Wert "1" hat, legt diese Einstellung die Dicke der Schattendarstellung in Pixeln. Zulässige Werte für diesen Style-Parameter sind Zahlen von 0 bis 4.

Die Anzeige eines Schattens impiziert stets die Anzeige eines Umrisses; falls für diesen keine Breite angegeben ist, erzwingt SSA einen Umriss in der Breite von einem Pixel.

Schriftausrichtung

Style-Feld: Angle

(nur ASS:) Ein Rotationswinkel, als Gleitpunktzahl in Grad. Der Ursprung, um welchen die Schrift rotiert wird, hängt von der Ausrichtung der Schrift ab.

Style-Feld: Alignment

Diese Angabe legt die Ausrichtung des anzuzeigenden Textes innerhalb des von den Randdefinitionen des Styles vorgegebenen Bereichs fest.

Die zulässigen Werte entsprechen denjenigen der Markierung zur Textausrichtung. Zu beachten ist allerdings, dass SSA die Werte entsprechend der Markierung "\a" auswertet, während ASS die Werte entsprechend der Markierung "\an" interpretiert, was zwischen beiden Verfahren zu unterschiedlichen Ergebnissen führt.

Randdefinitionen

Durch die drei nachfolgenden Randdefinitionen wird derjenige Bildschirmbereich festgelegt, innerhalb dessen die Untertiteltexte angezeigt werden.

Style-Feld: MarginL

Dieses Feld definiert den linken Rand, d. h. den Mindestabstand das anzuzeigenden Untertiteltextes vom linken Bildschirmrand in Pixeln.

Style-Feld: MarginR

Dieses Feld definiert den rechten Rand, d. h. den Mindestabstand das anzuzeigenden Untertiteltextes vom rechten Bildschirmrand in Pixeln.

Style-Feld: MarginV

Dieses Feld definiert den vertikalen Rand, d. h. den Mindestabstand das anzuzeigenden Untertiteltextes vom oberen bzw. unteren Bildschirmrand in Pixeln.

Die genaue Bedeutung dieses Feldes ist abhängig von der Ausrichtung des Untertitels:

  • Ist der Untertitel am oberen Rand des Bildschirms ausgerichtet, dann legt dieses Feld den Mindestabstand von diesem oberen Bildschirmrand fest.
  • Ist der Untertitel am unteren Rand des Bildschirms ausgerichtet, dann legt dieses Feld den Mindestabstand von diesem unteren Bildschirmrand fest.
  • Ist der Untertitel mittig auf dem Bildschirms ausgerichtet, dann hat dieses Feld keine Bedeutung (der Text wird in jedem Falle mittig ausgerichtet angezeigt).

Ereignisse (Events) in einem SSA-Skript

Dialog-Ereignisse (Texteinblendungen)

Diese Zeilen enthalten

  • den Untertiteltext,
  • Angaben über den Zeitpunkt sowie
  • weitere Angaben über die Art, wie die Anzeige erfolgen soll.

Die Liste aller Felder, welche in einer Ereigniszeile enthalten sind, wird von einer "Format:"-Zeile definiert, die vor allen Ereigniszeilen innerhalb dieses Abschnitts angegeben werden muss. Diese Formatbeschreibungszeile spezifiziert, wie SSA den Inhalt sämtlicher nachfolgenden Ereigniszeilen interpretieren soll. Die Namen der einzelnen Felder müssen exakt wie nachfolgend angegeben geschrieben werden; folgende Feldnamen stehen zur Verfügung:

Das letzte Feld einer Event-Zeile ist immer der Untertiteltext, welcher deshalb selbst Kommata enthalten darf.

(Anmerkung: Diese Art der variablen Formatdefinition ist bewusst so gestaltet, dass bei zukünftigen Format-Erweiterungen weitere Felder hinzu kommen könnten und eine ältere Software-Version dennoch diejenigen Felder lesen könnte, die sie auswerten kann, selbst wenn sich die Reihenfolge der Felder geändert haben sollte - weil sie Felder mit ihr unbekannter Bedeutung einfach ignorieren und über die "Format:"-Zeile die geänderte Reihenfolge der Felder erkennen kann).

Event-Feld 1: Marked

Wertebereich für SSA: Marked=[0 bzw. 1]

Wertebereich für ASS: ganze Zahl

Achtung: Die Bedeutung von Feld 1 unterscheidet sich zwischen dem SSA- und dem ASS-Format!

Im SSA-Format bedeutet "Marked=1", dass die Zeile vom Programm SSA als 'markiert' angezeigt wird.

Im ASS-Format definiert dieses Feld eine logische Ebene, auf der dieser Untertitel liegt. Untertitel verschiedener Ebenen üben während der Prüfung auf Überlappung (Kollisionen) von Einblendungen keinen Effekt aufeinander aus.

Eine Ebene mit einer höheren Nummer überlagert eine Ebene mit einer niedrigeren Nummer.

Event-Feld 2: Start

Wertebereich: 0:00:00:00 (h:mm:ss:nn)

Startzeitpunkt des Ereignisses im Format Stunde:Minute:Sekunde:Hundertstelsekunde. Dies ist der Zeitpunkt seit dem Beginn des Abspielens des Skripts, zu dem die Anzeige des Textes auf dem Bildschirm beginnt.

Achtung: Für die Angabe der Stunde ist nur eine Dezimalziffer vorgesehen!

Event-Feld 3: End

Wertebereich: 0:00:00:00 (h:mm:ss:nn)

Endzeitpunkt des Ereignisses im Format Stunde:Minute:Sekunde:Hundertstelsekunde. Dies ist der Zeitpunkt seit dem Beginn des Abspielens des Skripts, zu dem die Anzeige des Textes auf dem Bildschirm endet.

Achtung: Für die Angabe der Stunde ist nur eine Dezimalziffer vorgesehen!

Event-Feld 4: Style

Wertebereich: Name

Name des für die Textdarstellung zu verwendenden Styles. Falls dieser Name den Wert "Default" hat, dann wird der in SSA eingestellte "*Default"-Style verwendet.

Der vom Skript-Autor definierte Default-Style wird jedoch im Skript gespeichert, obwohl er von SSA ignoriert wird - die Information bleibt für eine eventuelle spätere Verwendung erhalten.

Falls der Name des Default-Style mit Hilfe des Programms SSA in seiner Style-Definition geändert wird, bewirkt dies automatisch die Umwandlung dieses Styles in einen normalen Style.

Event-Feld 5: Name

Wertebereich: Name

Name des Sprechers. Dies ist der Name desjenigen Charakters, der diesen Dialog spricht. Diese Angabe ist nur als interne Information gedacht, um das Skript während des Editierens bzw. Timings lesbarer zu gestalten.

Event-Feld 6: MarginL

Wertebereich: Ganze Zahl (4 Stellen)

Definition eines linken Randes in Anzahl von Pixeln (vorrangig gegenüber dem verwendeten Style).

Ein Wert von Null bedeutet, dass die Definition des linken Randes aus der in dieser Zeile benutzten Style-Definition verwendet werden soll.

Event-Feld 7: MarginR

Wertebereich: Ganze Zahl (4 Stellen)

Definition eines rechten Randes in Anzahl von Pixeln (vorrangig gegenüber dem verwendeten Style).

Ein Wert von Null bedeutet, dass die Definition des rechten Randes aus der in dieser Zeile benutzten Style-Definition verwendet werden soll.

Event-Feld 8: MarginV

Wertebereich: Ganze Zahl (4 Stellen)

Definition eines unteren Randes in Anzahl von Pixeln (vorrangig gegenüber dem verwendeten Style).

Ein Wert von Null bedeutet, dass die Definition des unteren Randes aus der in dieser Zeile benutzten Style-Definition verwendet werden soll.

Event-Feld 9: Effect

Wertebereich: Name

Übergangseffekt, der auf den anzuzeigenden Text angewendet wird. Dieses Feld ist entweder leer oder es enthält Angaben über einen der in SSA v4.x implementierten Übergangseffekte. Groß- bzw. Kleinschreibung der Effekt-Namen ist signifikant, die Namen müssen exakt in der hier beschriebenen Schreibweise angegeben werden (ohne umgebende Hochkommata). Die Werte der Parameter hinter den Schlüsselworten werden jeweils durch Semikolons voneinander getrennt.

(Achtung: Einige der hier beschriebenen Übergangseffekte sind nur im ASS-Format verfügbar, nicht im SSA-Format.)

Mögliche Angaben für Übergangseffekte sind:

Karaoke-Effekt
  • (SSA) "Karaoke" bedeutet, dass der Text Wort für Wort farblich hervorgehoben wird.

("Karaoke" als Effekt-Art ist obsolet im Skript-Format für ASS, welches hierfür detailliertere Möglichkeiten bereitstellt.)

Vertikales Bewegen von Text (Scrolling)
  • (SSA & ASS) "Scroll up;<y1>;<y2>;<delay>" bedeutet, dass der Text bzw. das Bild innerhalb des Bildschirms nach oben bewegt wird.
  • (nur ASS) "Scroll up;<y1>;<y2>;<delay>[;<fadeawayheight>]" - erweitert um einen zusätzlichen Parameter.
  • (nur ASS) "Scroll down;<y1>;<y2>;<delay>[;<fadeawayheight>]" - analog zu "Scroll up;", der Text wird nach unten bewegt.

Die Werte <y1> und <y2> definieren einen vertikalen Bereich des Bildschirms, innerhalb dessen der Text bewegt wird. Diese Werte sind in Pixeln angegeben, und es ist irrelevant, in welcher Reihenfolge die obere und untere Grenze dieses Bereichs angegeben wird. Falls beide Parameter den Wert 0 haben, dann wird der Text über die gesamte Höhe des Bildschirms bewegt.

Der Parameter <delay> kann einen Zahlenwert zwischen 1 und 100 annehmen; er legt die Verzögerung der Bewegung fest. Der Wert 0 bedeutet keine Verzögerung, die Bewegung erfolgt also so schnell wie möglich.

Der Parameter <fadeawayheight> kann dazu verwendet werden, den bewegten Text an den jeweiligen Rändern ein- und auszublenden.

(Achtung: Das "subtitler"-Plugin von Avery Lee interpretiert die Parameter des "Scroll up"-Effekts in der vom Skript-Format abweichenden Reihenfolge "<delay>;<y1>;<y2>".)

Horizontales Bewegen von Text (Banner)
  • (SSA) "Banner;<delay>" bedeutet, dass der Text unbedingt in einer einzigen Zeile (ohne Zeilenumbruch) angezeigt wird, ungeachtet seiner Länge, und dabei von rechts nach links über den Bildschirm geschoben wird.
  • (ASS) "Banner;<delay>[;<lefttoright>;<fadeawaywidth>]"

Der Parameter <delay> kann einen Zahlenwert zwischen 1 und 100 annehmen; er legt die Verzögerung der Bewegung fest. Der Wert 0 bedeutet keine Verzögerung, die Bewegung erfolgt also so schnell wie möglich. Wenn für den Parameter <delay> ein Wert größer als 0 angegeben wird, dann wird die Bewegung des Textes um jeweils einen Pixel (1000/<delay>) Sekunden dauern.

Der Parameter <lefttoright> kann den Wert 0 (Bewegung des Textes von rechts nach links) bzw. 1 (Bewegung des Textes von links nach rechts) annehmen; dieses Feld ist optional, sein Defaultwert ist 0 (um abwärtskompatibel zum SSA-Format zu sein).

Der Parameter <fadeawaywidth> kann dazu verwendet werden, den bewegten Text an den jeweiligen Rändern ein- und auszublenden.

Event-Feld 10: Text

Wertebereich: Text

Untertiteltext. Dies ist der Text, der auf dem Bildschirm angezeigt wird.

Alles hinter dem 9. Komma einer "Event"-Zeile wird als Untertiteltext behandelt; folglich darf dieses selbst auch Kommata enthalten.

Der Text darf die Zeichenkette "\N" enthalten, welche einen Zeilenumbruch bewirkt, und darüber hinaus spezielle Formatierungsanweisungen, die in geschweifte Klammern eingeschlossen werden.

Kommentarzeilen im Ereignis-Abschnitt

Solche Zeilen können dieselben Informationen enthalten wie jede der anderen Ereignis-Zeilen, aber sie werden beim Abspielen des Skripts ignoriert. (Man kann auf diese Weise also vollständige Ereignis-Definitionen "auskommentieren", indem man einfach den Zeilentyp ändert, ohne dabei die Detail-Informationen über das entsprechende Ereignis zu verlieren.)

Einbindung von Bild-Dateien

Solche Zeilen enthalten dieselben Informationen wie Dialog-Ereignisse, aber Feld 10 enthält den vollständigen Pfad- und Dateinamen des statt eines Untertiteltextes anzuzeigenden Bildes.

Die Style-Angabe in einer solchen Zeile wird ignoriert. Der Übergangseffekt Scroll up kann dagegen für Bild-Ereignisse verwendet werden.

Spezifische Angaben über den linken und den vertikalen Rand in einer solchen Zeile werden ausgewertet, um die linke untere Ecke des Bildes entsprechend zu positionieren; ein Wert von "0" für den linken bzw. vertikalen Rand bedeutet hingegen, dass das Bild in der jeweiligen Dimension zentriert eingeblendet werden soll.

Einbindung von Sound-Dateien

Ereignisse dieses Typs enthalten dieselben Informationen wie Dialog-Ereignisse, aber Feld 10 enthält den vollständigen Pfadnamen einer Sounddatei im WAV-Format, welche anstelle der Anzeige eines Untertiteltextes abgespielt werden soll.

Der Style und die Randdefinitionen werden ignoriert. Auch der Endzeitpunkt hat keine Bedeutung: Die Sounddatei wird bis zu ihrem Ende abgespielt (bzw. dem Zeitpunkt, an dem eine weitere Sounddatei abgespielt werden soll, falls dieser Zeitpunkt früher liegt).

Falls eine Sounddatei zur selben Zeit abgespielt werden soll, zu der bereits ein Video abgespielt wird, dann wird von von dieser Sounddatei nichts zu hören sein. Umgekehrt gilt dasselbe: Falls zu einem Zeitpunkt, zu dem bereits eine Sounddatei abgespielt wird, ein Video mit Tonspur abgespielt werden soll, dann wird von der Tonspur der Videos nichts zu hören sein.

Einbindung von Video-Dateien

Ereignisse dieses Typs enthalten dieselben Informationen wie Dialog-Ereignisse, aber Feld 10 enthält den vollständigen Pfadnamen einer Videodatei im AVI-Format, welche anstelle der Anzeige eines Untertiteltextes abgespielt werden soll.

Der Style und eventuelle Übergangseffekte werden ignoriert.

Die Angabe des Endzeitpunktes des Ereignisses gibt an, wann die Anzeige des Videos beendet wird. Ist das Video jedoch länger als dieses Zeitintervall, dann wird die Tonspur des Videos über den Endzeitpunkt hinaus zu hören sein.

Anders als bei der Einblendung eines Bildes legen spezifische Angaben über den linken und den vertikalen Rand hier die Position des linken oberen Ecke des anzuzeigenden Videos fest; ein Wert von "0" für den linken bzw. vertikalen Rand bedeutet auch hier, dass das Video in der jeweiligen Dimension zentriert eingeblendet werden soll.

Falls ein Movie zur selben Zeit abgespielt werden sollte, zu der bereits eine Sounddatei abgespielt wird, dann wird von der Tonspur des Videos nichts zu hören sein. Umgekehrt gilt dasselbe: Falls zu einem Zeitpunkt, zu dem bereits ein Video mit Tonspur abgespielt wird, eine Sounddatei abgespielt werden soll, dann wird von dieser Soundatei nichts zu hören sein.

Spezielle Kommandos

Solche Zeilen weisen dieselbe Struktur auf wie Dialog-Ereignisse, doch statt eines Untertiteltextes enthält Feld 10 den vollständigen Pfad- und Dateinamen eines auszuführenden Programms.

Angaben über Styles, Randdefinitionen und Übergangseffekte werden ignoriert. Auch der Endzeitpunkt hat keine Bedeutung - das Programm wird solange ausgeführt, bis es sein normales Ende erreicht hat oder vom Anwender manuell beendet wurde.

Außerdem dürfen einige SSA-interne Kommandos in SSA-Skripten verwendet werden: Die beiden Kommando-Ereignisse

  • "SSA:Pause" und
  • "SSA:Wait for trigger" sowie
  • genlock control commands (?).

All diese Kommandos beginnen mit der Zeichenkette "SSA:".

Das Kommando "SSA:Pause" hat dieselbe Wirkung wie ein Druck auf die Taste P während des Abspielens des Skripts. Es ist hilfreich als Synchronisationspunkt, um die Untertitelung an dieser Stelle fortzusetzen, falls beim Abspielen des Videos eine Laserdisk umgewendet werden muss.

Das Kommando "SSA:Wait for audio trigger" hat ebenfalls denselben Effekt wir ein Druck auf die Taste P während des Abspielens des Skripts, aber das Abspielen wird automatisch fortgesetzt, sobald die Audio-Eingabe an den Computer ein bestimmtes Trigger-Niveau überschreitet. Dies ist nützlich als eine zweite Art von Synchronisationspunkt, um die Untertitelung nach dem Umwenden einer Laserdisk fortzusetzen. Der Audio-Trigger kann durch einen Druck auf die Taste P außer Kraft gesetzt werden.

Die Wirkung eines Audio-Triggers endet spätestens nach 10 Minuten - falls bis dahin weder ein entsprechender Audio-Peak erreicht oder die Taste P gedrückt wurde, wird das Abspielen des Skripts automatisch fortgesetzt.

Anhänge

Anhang A: Markierungen innerhalb von Untertiteltexten

Die nachfolgende Liste kann sich als nützlich für Anwender erweisen, die Markierungen zur Beeinflussung von Darstellungsattributen lernen wollen, um sie direkt per Tastatur eingeben zu können, anstatt hierfür die Override Style-Dialogbox des Programms SSA zu verwenden.

Alle Markierungen werden in geschweifte Klammern "{" und "}" eingeschlossen, ausgenommen die Zeilenumbruch-Markierungen "\n" bzw. "\N". Jede Markierung wird mit einem Backslash "\" eingeleitet. Innerhalb einer Klammerstruktur kann eine beliebige Anzahl von Markierungen notiert werden.

Jede Markierung tritt ab derjenigen Stelle innerhalb des Textes, an der sie notiert wurde, in Kraft und wirkt bis zum Zeilenende. Um eine Markierung nur auf einen ausgewählten Abschnitt des Textes anzuwenden, muss am Ende dieses Abschnitts ein 'Gegenbefehl' notiert werden, um die zuvor notierte Markierung unwirksam zu machen.

Einige Markierungen haben generell eine Wirkung auf den gesamten Text einer Ereigniszeile. Bislang gilt dies lediglich für Ausrichtungs-Markierungen, doch können in späteren Erweiterungen dieser Syntax zusätzliche Markierungen dieser Art hinzu kommen (beispielsweise Markierungen für Schatten oder Umrandungen der verwendeten Schrift im ASS-Format).

Einfache Markierungen

(Achtung: Jede Markierung, die einen unzulässigen Parameterwert enthält, bewirkt das Setzen der entsprechenden Eigenschaft auf deren Default-Wert!)

Zeilenumbruch innerhalb von Untertiteltexten
"weicher" Zeilenumbruch

(SSA & ASS) \n

Bewirkt einen Zeilenumbruch. \n wird ignoriert, wenn der "intelligente Umbruch" in SSA aktiviert ist.

Beispiel:
Dies ist die erste Zeile\nund das die zweite.
"harter" Zeilenumbruch

(SSA & ASS) \N

Bewirkt einen Zeilenumbruch (auch dann, wenn der "intelligente Umbruch" in SSA aktiviert ist).

Zeilenumbruch-Strategie

\q<num>

Hiermit kann die Art des automatischen Zeilenumbruchs für den Text dieses Ereignisses separat definiert werden, abweichend von der zentralen Einstellung für das gesamte Skript.

Die möglichen Werte des Parameters <num> haben hierbei dieselbe Bedeutung wie die Werte des intelligenten Umbruchs.

Hervorhebung von Text
Hervorhebung von Text als fett

(SSA & ASS) \b<schalter>

Der Parameter <schalter> schaltet den Effekt ein bzw. aus:

  • \b1 bewirkt eine fette Darstellung,
  • \b0 eine normale Darstellung des Textes.
Beispiel:
Dieses Wort ist {\b1}fett{\b0} hervorgehoben.

Wird für den Parameter <schalter> ein Wert größer als 1 angegeben, dann wird dieser als Gewicht für die Schriftart interpretiert (400 = normal, 700 = fett; die meisten Schriftarten erlauben zwei oder drei effektiv unterschiedliche Gewichte).

Hervorhebung von Text als kursiv

(SSA & ASS) \i<schalter>

Der Parameter <schalter> schaltet den Effekt ein bzw. aus:

  • \i1 bewirkt eine kursive Darstellung,
  • \i0 eine normale Darstellung des Textes.
Beispiel:
Dieses Wort ist {\i1}kursiv{\i0} hervorgehoben.
Hervorhebung von Text als unterstrichen

(nur ASS) \u<schalter>

Der Parameter <schalter> schaltet den Effekt ein bzw. aus:

  • \u1 bewirkt eine unterstrichene Darstellung,
  • \u0 eine normale Darstellung des Textes.
Beispiel:
Dieses Wort ist {\u1}unterstrichen{\u0} hervorgehoben.
Hervorhebung von Text als durchgestrichen

(nur ASS) \s<schalter>

Der Parameter <schalter> schaltet den Effekt ein bzw. aus:

  • \s1 bewirkt eine durchgestrichene Darstellung,
  • \s0 eine normale Darstellung des Textes.
Beispiel:
Dieses Wort ist {\s1}durchgestrichen{\s0} hervorgehoben.
Textumrandung
Randdicke

(nur ASS) \bord<width>

Diese Anweisung legt durch den Parameter <width> die Dicke des Randes der verwendeten Schrift in Pixeln fest, vorrangig gegenüber der entsprechenden Style-Definition.

Schatten

(nur ASS) \shad<depth>

Diese Anweisung legt durch den Parameter <depth> die Tiefe des Schattens der verwendeten Schrift in Pixeln fest, vorrangig gegenüber der entsprechenden Style-Definition.

Unscharfe Ränder

(nur ASS) \be <0 bzw. 1>

\be1 bewirkt eine scharfe, \be0 eine leicht unscharfe Darstellung der Ränder des Textes.

Schriften
Schriftart

(SSA & ASS) \fn<fontname>

<fontname> beschreibt eine Schriftart, die auf dem verwendeten Windows-System installiert sein muss. Groß- bzw. Kleinschreibung des Dateinamens ist signifikant.

Beispiel:
Hier folgt ein {\fnCourier New}Text mit fester Zeichenbreite

Falls eine Schriftart verwendet wird, die nicht installiert ist, dann wird stattdessen die Schriftart Arial verwendet.

Schriftgröße

(SSA & ASS) \fs<fontsize>

<fontsize> ist eine Zahl, welche eine Schriftgröße in Punkt festlegt.

Beispiel:
{\fs16}Dies ist kleiner Text. {\fs28}Dies ist großer Text.
Schriftfarben

(SSA & ASS) \[<colorid>]&H<colorcode>&

<colorcode> ist ein sedezimaler RGB-Wert für die Schriftfarbe in umgekehrter Reihenfolge ("bbggrr" als blau-grün-rot-Werte jeweils von "00" = 0 bis "FF" = 255). Führende Nullen können weggelassen werden.

Beispiel:
{\c&HFF&}Dies ist reines, intensives Rot
{\c&HFF00&}Dies ist reines, intensives Grün
{\c&HFF0000&}Dies ist reines, intensives Blau
{\c&HFFFFFF&}Dies ist weiße Schrift
{\c&HA0A0A&}Dies ist dunkelgraue Schrift

(nur ASS) Der optionale Parameter <colorid> gibt dabei an, welche der vier Farben eines Textes gesetzt werden soll:

  • "\1c" setzt die Primärfarbe der Schrift (Schriftfarbe)
  • "\2c" setzt die Sekundärfarbe der Schrift (Karaokefarbe)
  • "\3c" setzt die Umrandungsfarbe der Schrift
  • "\4c" setzt die Schattenfarbe der Schrift
Schrifttransparenz (Alphakanäle)

(nur ASS) \[<colorid>]&H<channelcode>&

<channelcode> ist ein sedezimaler Wert von "00" = 0 bis "FF" = 255).

Der optionale Parameter <colorid> gibt dabei an, für welche der vier Farben der Alphakanal gesetzt werden soll:

  • "\1a" setzt den Alphakanal der Primärfarbe der Schrift
  • "\2a" setzt den Alphakanal der Sekundärfarbe der Schrift
  • "\3a" setzt den Alphakanal der Umrandungsfarbe der Schrift
  • "\4a" setzt den Alphakanal der Schattenfarbe der Schrift

Statt \1a ist auch die Notation \alpha zulässig.

Schriftbreitenskalierung

(nur ASS) \fscx<percent>

Durch diese Anweisung wird der Text in der Breite gedehnt bzw. gestaucht. <percent> ist der jeweilige Dehnungsfaktor in Prozent; "100" als Parameterwert hat also keine Veränderung zur Folge.

Beispiel:
{\fscx80}Dieser Text ist sehr lang und deshalb Platz sparend zusammengestaucht
Schrifthöhenskalierung

(nur ASS) \fscy<percent>

Durch diese Anweisung wird der Text in der Höhe gedehnt bzw. gestaucht. <percent> ist der jeweilige Dehnungsfaktor in Prozent; "100" als Parameterwert hat also keine Veränderung zur Folge.

Beispiel:
{\fscy80}Dieser Text ist ein bisschen flach geraten und wird ab {\fscy60}hier noch flacher
Zeichenabstand (spacing)

(nur ASS) \fsp<pixels>

<pixels> legt den zu verwendenden Abstand in Pixeln zwischen je zwei Buchstaben fest. Ohne diese Anweisung beträgt der Abstand jeweils 0 Pixel.

Zeichensatz

(SSA & ASS) \fe<charset>

Der Parameter <charset> bezeichnet die Nummer eines Zeichensatzes für den darzustellenden Text. Diese Anweisung kann zur Darstellung bestimmter Sonderzeichen erforderlich sein.


Textausrichtung
Ausrichtung und Positionierung

(SSA & ASS) \a<alignment>

<alignment> ist ein Zahlenwert, der Ausrichtung und Positionierung des Textes auf dem Bildschirm festlegt.

  • Der Wert 1 beschreibt einen horizontal nach links und vertikal nach unten ausgerichteten Untertitel
  • Der Wert 2 beschreibt einen horizontal zentrierten und vertikal nach unten ausgerichteten Untertitel
  • Der Wert 3 beschreibt einen horizontal nach rechts und vertikal nach unten ausgerichteten Untertitel
  • Ein um 4 erhöhter Wert setzt die vertikale Ausrichtung auf den oberen Bildschirmrand
  • Ein um 8 erhöhter Wert setzt die vertikale Ausrichtung auf die Mitte des Bildschirms
  • Ein Wert von 0 setzt die Ausrichtung auf den Wert der Style-Definition zurück (welche üblicherweise 2 sein wird, d. h. unten zentriert).

Es gibt also 9 mögliche Ausrichtungen auf dem Bildschirm:

\a5 (links oben) \a6 (zentriert oben) \a7 (rechts oben)
\a9 (links mittig) \a10 (zentriert mittig) \a11 (rechts mittig)
\a1 (links unten) \a2 (zentriert unten) \a3 (rechts unten)

(nur ASS) \an<alignment>

Durch diese alternative Anweisung wird die Ausrichtung gemäß der (leichter zu merkenden) Position der Ziffern auf dem Ziffernblock der Tastatur (numpad) durchgeführt:

\an7 (links oben) \an8 (zentriert oben) \an9 (rechts oben)
\an4 (links mittig) \an5 (zentriert mittig) \an6 (rechts mittig)
\an1 (links unten) \an2 (zentriert unten) \an3 (rechts unten)

(Achtung: Nur das erste Auftreten einer dieser beiden Anweisungen innerhalb eines Untertiteltextes hat eine Wirkung!)

Rotation von Text um die X-Achse im dreidimensionalen Raum

(nur ASS) \frx<winkel>

<winkel> legt den Winkel der Rotation des Textes um die X-Achse fest. Als Werte sind sowohl positive (gegen den Uhrzeigersinn) als auch negative (mit dem Uhrzeigersinn) Zahlen zulässig.

Rotation von Text um die Y-Achse im dreidimensionalen Raum

(nur ASS) \fry<winkel>

<winkel> legt den Winkel der Rotation des Textes um die Y-Achse fest. Als Werte sind sowohl positive (gegen den Uhrzeigersinn) als auch negative (mit dem Uhrzeigersinn) Zahlen zulässig.

Rotation von Text um die Z-Achse im dreidimensionalen Raum

(nur ASS) \frz<winkel>

<winkel> legt den Winkel der Rotation des Textes um die Z-Achse fest. Als Werte sind sowohl positive (gegen den Uhrzeigersinn) als auch negative (mit dem Uhrzeigersinn) Zahlen zulässig.

Statt \frz ist auch die Notation \fr zulässig.

Karaoke-Hervorhebung

Der Parameter <duration> beschreibt in den nachfolgenden Anweisungen jeweils die Dauer (in Hundertstelsekunden), für welche der so markierte Textabschnitt mit dem Karaoke-Effekt innerhalb des Dialog-Events hervorgehoben dargestellt werden soll.

Karaoke-Hervorhebung des Textinneren (einfach)

(SSA & ASS) \k<duration>

Für den markierten Textabschnitt wird der Text statt mit der Sekundärfarbe nun mit der Primärfarbe gefüllt; diese Änderung erfolgt schlagartig zu Beginn des Effekts.

Beispiel:
{\k94}Dies {\k48}ist {\k24}eine {\k150}Karaoke-{\k94}Zeile
Karaoke-Hervorhebung des Textinneren (inkrementell)

(nur ASS) \kf<duration> bzw. \K<duration>

Für den markierten Textabschnitt wird der Text statt mit der Sekundärfarbe nun mit der Primärfarbe gefüllt; diese Änderung erfolgt inkrementell von links nach rechts während der angegebenen <duration>.

Karaoke-Hervorhebung inklusive der Umrandung

(nur ASS) \ko<duration>

Für den markierten Textabschnitt wird der Text statt mit der Sekundärfarbe nun mit der Primärfarbe gefüllt; gleichzeitig wird die Umrandung nun mit der definierten Farbe angezeigt, während sie beim noch nicht hervorgehobenen Text fehlt. Diese kombinierte Änderung erfolgt schlagartig zu Beginn des Effekts.


Zurücksetzen von Markierungen
Zurücksetzen aller vorherigen Markierungen

(SSA & ASS) \r

Hiermit werden ab dieser Position alle innerhalb dieser Textzeile zuvor angegebenen Markierungen unwirksam gemacht.

Überschreiben aller Effekte durch einen Style

(nur ASS) \r[<style>]

Durch die Angabe eines Style-Namens werden ab dieser Position alle Werte auf die Standardwerte des so bezeichneten Styles gesetzt.

Funktionen

(Achtung: Bei Verwendung der Funktionen \move, \pos bzw. \t wird der Mechanismus zur Erkennung von Kollisionen außer Kraft gesetzt!)

Bewegung

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

Bedeutung der Parameter:

  • <x1>, <y1>: X- und Y-Koordinate des Startpunkts der Bewegung.
  • <x2>, <y2>: X- und Y-Koordinate des Endpunkts der Bewegung.
  • <t1> (optional): Zeitlicher Offset zwischen Beginn des Ereignisses und Beginn der Bewegung (in ms)
  • <t2> (optional): Zeitlicher Offset zwischen Ende der Bewegung und Ende des Ereignisses (in ms)

Der exakte Ursprung der Bewegung ist abhängig von der definierten Ausrichtung des Textes.

Positionierung

\pos(<x>,<y>)

Eine Kurznotation der "Nicht-Bewegung" \move(<x>,<y>,<x>,<y>,0,0).

Transformation

\t([<t1>,<t2>,] [<accel>,]<style modifiers>)

Bedeutung der Parameter:

  • <t1> (optional): Zeitlicher Offset zwischen Beginn des Ereignisses und Beginn der Transformation (in ms)
  • <t2> (optional): Zeitlicher Offset zwischen Ende der Bewegung und Ende des Transformation (in ms)
  • <accel> (optional): Beeinflusst die Linearität der Transformation

Der Koeffizient für die Interpolation zwischen den gegebenen Style-Modifikatoren zum Zeitpunkt <t> während dieser Transformation hat den Wert "( (<t>-<t1>) / (<t2>-<t1>) ) hoch <accel>".

<accel> hat allgemein folgende Auswirkung:

Wertebereich Bedeutung
zwischen 0 and 1: Die Transformation beginnt schnell und wird immer langsamer
1: Die Transformation erfolgt linear
größer als 1: Die Transformation beginnt langsam und wird immer schneller

Ein Wert von 2 für <accel> bewirkt beispielsweise, dass das durch die Transformation {\fscx200\fscy200} ausgelöste Wachstum der Zeichengröße eher linear wirkt als langsamer werdend (weil bei konstanter Transformationsgeschwindigkeit die relative Größenänderung der Buchstaben pro Zeiteinheit tatsächlich abnimmt, was durch das zunehmende Transformationstempo kompensiert wird).

Für <style modifiers> sind alle animierbaren Anweisungen zulässig:

Bezugspunkt für Rotationen

\org(<x>, <y>)

Setzt den Koordinaten-Ursprung auf die Koordinaten (<x>,<y>). Dies ist nützlich, wenn Untertitel in die Richtung einer Rotation bewegt werden sollen.

Ein- und Ausblendung

\fad(<t1>, <t2>)

Bedeutung der Parameter:

  • <t1>: Dauer der Einblendung (in ms)
  • <t2>: Dauer der Ausblendung (in ms)
Alphakanal-Transformationen

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

Bedeutung der Parameter:

  • <a1> Wert des Alphakanals vor dem Zeitpunkt <t1>
  • <a2> Wert des Alphakanals zwischen den Zeitpunkten <t2> und <t3>
  • <a3> Wert des Alphakanals nach dem Zeitpunkt <t4>
  • <t1>: Zeitlicher Offset zwischen Beginn des Ereignisses und Beginn der Einblendung (in ms)
  • <t2>: Zeitlicher Offset zwischen Beginn des Ereignisses und Ende der Einblendung (in ms)
  • <t3>: Zeitlicher Offset zwischen Beginn des Ereignisses und Beginn der Ausblendung (in ms)
  • <t4>: Zeitlicher Offset zwischen Beginn des Ereignisses und Ende der Ausblendung (in ms)

Zeitlicher Ablauf der Transformation:

  • Von <t1> bis <t2> wird der Alpha-Wert interpoliert zwischen <a1> and <a2> ("Einblendung")
  • Von <t2> bis <t3> bleibt der Alpha-Wert konstant bei <a2> ("Anzeige")
  • Von <t3> bis <t4> wird der Alpha-Wert interpoliert zwischen <a2> and <a3> ("Ausblendung")
Clipping an einem Rechteck

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

Schneidet jede Zeichnung außerhalb des durch Eckpunkte (<x1>, <y1>), (<x1>, <y2>), (<x2>, <y2>), und (<x2>, <y1>) definierten Rechtecks ab.

Clipping an einer gezeichneten Form

\clip([<scale>,] <drawing commands>)

Schneidet alles außerhalb der durch die angegebenen <drawing commands> beschriebene Form ab.

<scale> has the same meaning as in the case of \p<scale>

(Übersetzung des Kapitels über das Zeichnen von Formen fehlt noch)

Operationen zum Zeichnen von Graphiken

Anhang B: Codierung eingebundener Zeichensatz- bzw. Bilddateien

Die Einbindung von Schriftarten und Bilddateien innerhalb eines SSA-Skripts erfolgt in Form eines 'UUEncoding'.

Dieses Verfahren liest jeweils drei Bytes aus eine Binärdatei und konvertiert die 24 Bits dieser drei Bytes in vier Zahlen zu jeweils 6 Bit. Zu jeder dieser Zahlen wird 33 addiert, und das diesem Wert entsprechende ASCII-Zeichen zu jeder dieser Zahlen wird in die Skript-Datei geschrieben. Die Verschiebung um 33 bewirkt allerdings, dass die codierte Ausgabe keine Großbuchstaben enthalten kann; deshalb müssen "filename"-Angaben stets in Kleinbuchstaben notiert werden. Jede dieser codierten Zeilen ist exakt 80 Zeichen lang, mit Ausnahme der letzten, die kürzer sein kann.

Falls die Länge der codierten Datei in Bytes kein ganzzahliges Vielfaches von 3 ist, dann

  • wird bei einer ungeradzahligen Dateilänge das letzte Zeichen mit sedezimal "100" multipliziert und seine höchstwertigen 12 Bits werden in zwei Zeichen codiert wie oben beschrieben,
  • werden bei einer geradzahligen Dateilänge die beiden letzten Bytes mit sedezimal "10000" multipliziert und die höchstwertigen 18 Bits werden in drei Zeichen codiert wie oben beschrieben.

Es existiert keine Endemarkierung für eingebundene Dateien. Die Datei wird als vollständig angesehen, falls

  • innerhalb des Skripts ein neuer Abschnitt beginnt,
  • eine weitere "filename"-Zeile gelesen wird oder
  • das Ende des Skripts erreicht wird.