SubStationAlpha-Benutzerhandbuch

Aus Fansub-Wiki
Version vom 25. Juli 2006, 14:26 Uhr von 84.169.81.133 (Diskussion) (interne Links auf Detail-Beschreibungen für Header-Zeilenformate)
Zur Navigation springen Zur Suche springen

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.


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 auftreten, dann wird 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 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 Header und 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-, Ton- und Video-Dateien sowie interne Kommandos. Im Wesentlichen enthält er alles, was im Raster (?) des Haupt-Bildschirms von SubStationAlpha sichtbar ist.

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 textcodierte 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.

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 (Fansubber-Gruppen 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

Ereignisse (Events) in einem SSA-Skript

Dialog-Ereignisse (Texteinblendungen)

Kommentarzeilen im Ereignis-Abschnitt

Einbindung von Bild-Dateien

Einbindung von Sound-Dateien

Einbindung von Video-Dateien

Spezielle Kommandos

Anhänge

Anhang A: Style-Markierungen innerhalb von Untertiteltexten

Einfache Markierungen

Funktionen

Operationen zum Zeichnen von Graphiken

Anhang B: Codierung eingebundener Zeichensatz- bzw. Bilddateien