Karaoke Schritt 2: Templates

Wir haben alles wie in Schritt 1 fertiggestellt, dann können wir einen Stufe zulegen.
Wir fügen ihnen extra Effekte hinzu, und zwar mit einem Template. Ein Template ist eine Formel die den gewünschten Silben-Effekte beschreibt. Es gibt das
  • template line, das auf die ganze Zeile angewandt wird, und ziemlich unflexibel was Bewegungen angeht ist, und
  • template syl, dass für jede Silbe eine eigene Zeile erzeugt, so dass die Silben unabhängif von einander aggieren können.
    Beiden werden so erzeugt dass man vor der allerersten Song-Zeile eine neue hinzufügt.

  • Also die erste Zeile anklicken, dann unter Subtitles-> Insert Line-> Before current wählen (die Zeitdauer der Zeile ist ganz egal).
    Jetzt wählen wir diese neue Zeile aus und setzen im Textfeld bei Comment ein Häkchen und am Ende tragen wir im Effect-Feld Template Line oder Template syl ein (mit Enter weitergeben).
    WICHTIG: Diese Zeile muss den selben Style haben wie die japanischen Zeilen.
    Jetzt müssen wir im Textfeld nur noch das Template selber eintragen (unten erklärt wie).

    Dann muss man nur noch unter Automation->Apply Karaoke Template anklicken (erst anwählbar wenn man eine Template-Zeile erzeugt hat) und schon werden alle Zeilen vom selben Style umgewandelt.
    Das Programm ersetzt jedes der \k in der getimten Zeile mit der angegebenen Formel und den entsprechenden Variabelwerten.
    Die alten Zeilen werden als karaoke markiert und somit nicht abgespielt (die nicht abspielbaren Zeilen sind lila eingefärbt).
    An deren Stelle kommen unten am Ende die neuen Zeilen als fx markiert, die jetzt zum Einsatz kommen.
    Weiter mit Einbrennen.

Das Template selbst

Die Grundbasis für das Template ist:      { \r   [von Anfang an geltende Eigenschaften]    [später eintretende Eigenschaften]}

Das \r benutzt man nur bei Line-Templates, um die einzelnen Silben unabhängig von einernander zu behandeln. Bei Syl-Templates braucht man es nicht.
Die Eigenschaften die von Anfang ihres Erscheinens mit der ganzen Zeilen gelten, setzt man einfach als Tag (siehe Liste aller Aegisub-Tags und ihrer Funktionen auf der Extra-Seite). Unter den Anfangs-Eigenschaften sollte immer ein \pos oder \move Tag dabei sein, besonders bei den Syl-Templates, da sonst alle Silben übereinander an der selben Stelle landen. Bei den line-Templates nicht unbedingt nötig.
Beispiel für die von Anfang an geltenden Eigenschaften:
  • {\r\pos(40,50)\1c&H00FF1F&} ... Positioniert die Zeile und färbt sie hellgrün ein

  • Die Action kommt ins Template erst durch die später eintretenden Eigenschaften, die man mittels einem Transformations-Tags eingibt:
Transformationstag:      \t(startzeit, endzeit, [Beschleunigung], Eigenschaften)
Startzeit wann die Transformation beginnen soll (in Millisekunden)
Endzeit wann die Transformation aufhören soll (in Millisekunden)
Beschleunigung Gibt das Tempo der Transformation fest (optional, kann man weglassen)
  • Werte zwischen 0 und 1 lassen es schnell anfangen und langsam enden
  • 1 ist gleichmäßig, das selbe wie wenn man es weglässt
  • Werte ab 1 lassen es langsam anfangen und schnell aufhören
Eigenschaften Tags die in der angegeben Zeit 'anwachsen', vom Wert den sie früher hatten, bis zum neuen.
Die Eigenschaftstags die vom Transformationstag unterstützt werden:
  • Farbtags: \c,\1c,\2c,\3c,\4c
  • Durchsichtigkeitstags: \alpha,\1a,\2a,\3a,\4a
  • Fontgrößen-Tags: \fs,\fscx,\fscy,\fsp,\bord,\shad
  • Fontrotations-Tags: \frx,\fry,\frz
  • Zeichentags: \clip (nur Rechtecke)
Beispiel:
  • \t(0,1200,\frz3600)    …    von der 0. bis 1200. Millisekunden dreht sich die Silbe um 3600° (10 mal im Kreis)
  • \t(0,1200,4,\frz3600)    …    das selbe nur mit der Beschleunigung von 4
  • \t(0,1200,\frz3600\fscy200)   …    hier wird gleichzeitig gedreht und die Buchstaben wachsen auf 200%.

In die Template-Formel kann man mehrere solcher Transformationstags einbauen, wenn andere Eigenschaften zu anderen Zeitpunkten stattfinden sollen.

Da man die einzelnen Zeiten für jede Silbe ja nicht selber eingeben will, arbeitet man bei Transformations-Tags mit Variabeln.
Man erkennt eine Variable an dem Dollar-Zeichen $ am Anfang.
Folgende Variablen gibt es bei Aegisub:
ZEILENVARIABELN (fangen alle mit l für Line an)
$lstart Anfangszeit der Zeile (in Millisekunden, von Anfang der Untertitel-Zeitrechnung)
$lend Endzeit der Zeile (in Millisekunden, von Anfang der Untertitel-Zeitrechnung)
$lmid Mittelzeit der Zeile (in Millisekunden, von Anfang der Untertitel-Zeitrechnung)
$ldur Dauer der Zeile (in Millisekunden)
$li Nummer der Zeile (1 ist die erste)
$lx x-Koordinate der Zeile (dort wo sie landen würde ohne jegliche Positionstags)
$ly y-Koordinate der Zeile (dort wo sie landen würde ohne jegliche Positionstags)
$lleft Position des linken Zeilenrandes (x-Koordinate)
$lright Position des rechten Zeilenrandes (x-Koordinate)
$lcenter Position des Zeilenmitte (x-Koordinate)
$ltop Position des oberen Zeilenrandes (y-Koordinate)
$lbottom Position des unteren Zeilenrandes (y-Koordinate)
$lmiddle Position der Zeilenmitte (y-Koordinate)
$lwidth Breite der Zeile (in Pixeln)
$lheight Höhe der Zeile (in Pixeln)
$margin_l frei zu bleibender Abstand vom linken Bildschirm-Rand
$margin_r frei zu bleibender Abstand vom rechten Bildschirm-Rand
$margin_t frei zu bleibender Abstand vom oberen (top) Bildschirm-Rand
$margin_b frei zu bleibender Abstand vom unteren (bottom) Bildschirm-Rand
SILBENVARIABELN (fangen mit s für sylable an)
Diese entsprechen den oben: $sstart, $send, $smid, $sdur, $si, $sx, $sy, $sleft, $sright, $scenter, $stop, $sbottom, $smiddle, $swidth, $sheight,
$skdur Dauer der Silbe (in Centisekunden = $sdur:10, benötigt für Karaoke-Tags)
$syln Anzahl der Silben in Zeile
UNIVERSELLE VARIABELN (je nach ob man template line oder template syl anwendet, sind das entweder Zeilen- oder Silbenvariabeln)
Diese entsprechen den oben: $start, $end, $mid, $dur,$kdur, $i, $x, $y, $left, $right, $center, $top, $bottom, $middle, $width, $height,
! Inline-Code-Grenzen, zum Beisiel für Variabeln und Rechenbefehle die Aegisub für dich ausrechnen soll. Der mathematische Ausdruck wird damit von beiden Seiten eingebettet.

Beispiele:

HINWEIS: SEIT DER 2.1.3 VERSION VON AEGISUB DÜRFEN IM TEMPLATE KEINE LEERZEICHEN MEHR VORKOMMEN (Das Template funktioniert auch so beim Einbrennen, aber Aegisub zeigt es in seinem Video-Fenster nicht an. Ich benutze die Leerzeichen trotzdem um etwas Struktur reinzubekommen, aber ihr könnt sie ja dann löschen)

  • Für Line-Templates:
  • {\r \pos($x,30) \1c&H00FF00& \t($start,$mid,\fscy120) \t($mid,$end,\fscy100)}
    • Bei den Positionstags \pos($x,30) kann man ruhig die Standard x-Koordinate $x benutzen, aber die y-Koordinate $y habe ich einfach mal durch einen konkreten Wert ersetzt.
    • Das Farb-tag \1c&H00FF00& bestimmt die Primärfarbe der Silbe, die die ganze Zeit gelten soll (das kann man auch weglassen, da diese normalerweise gleich im Style gesetzt wird, und nicht erst im Template.)
    • Das erste Transformationstag \t($start,$mid,\fscy120) besagt dass von Anfang bis Mitte ihres Einsatzes die Silbe auf 120% wachsen soll
    • Das zweite \t($mid,$end,\fscy100) besagt dass von Mitte bis Ende ihrer Zeit es wieder von den 120% auf die alten 100% schrumpft.
    Es entstehen diese typischen leicht hüpfenden Silben. Die Verse sollten besser nicht zweizeilig sein, da sonst alles mithüpft. Aber, wie schon gesagt, ist Bewegung mit dabei, lieber Syl-Templates nutzen.
  • {\r \kf$kdur \t($end,!$end+500!,\alpha&HFF&)}
    • Das \kf bewirkt die Farbänderung von links nach rechts (da Karaoketags Centisekunden brauchen, benutzt man $kdur). Lässt man alle Karaoke-Tags weg, verändert sich die Farbe nicht automatisch beim Einsetzen der Silbe.
    • Das Transformations-Tag lässt die Silbe nach ihrem Ende innerhalb von 500 Milisekunden (=1/2sec) verschwinden. Da die zweite Zeitangabe des Transformationstags zwischen Ausrufe-Zeichen steht, wird Aegisub das immer ausrechnen. Also mathematische Operationen immer in Ausrufezeichen packen!
  • {\r \k$kdur \t($start,!$start+$dur*0.3!,\fscy120) \t(!$start+$dur*0.3!,$end,\fscy100)}
    Ähnlich wie das erste Template oben, nur dass das wachsen im ersten 1/3 der Zeit geschieht, und das zurückschrumpfen in den restlichen 2/3 (naja, fast, da 0.3 nicht 1/3 ist). Es entsteht das Gefühl von schnellem wachsen, und langsameren zurückschrumpfen.

  • Für Syl-Templates:
  • {\pos($x,$y) \k!$start/10!\k$kdur \t($start,!$start+$dur*0.3!,\fscy120) \t(!$start+$dur*0.3!,$end,\fscy100) }
    • Wie gesagt, bei Syl-Templates kann man das /r weglassen.
    • Dafür ist aber unbedingt das /pos oder /move nötig, dass die Silben positioniert.
    • Hier ein Unterschied zum Line-Template: die /k-Tags.
      Beim Line-Template bleiben ja alle Silben zusammen, so dass das /k-Tag stets weiß wann die vorrige aufhört.
      Beim Syl-Template müssen das \k!$start/10! davorstellen, das uns sagt wann die aktuelle Silbe erst zum Einsatz kommt.
    • Danach lassen wir die Zeilen wie auch oben anwachsen und abschwellen, wobei bei dem Syl-Template die anderen Silben davon unbetroffen bleiben.
  • {\move($x,$y,!$x-10!,!$y-10!,$start,$start)\c&HFFF000& \t($start,$start,\1c&H38F126&) \t($end,$end,\c&HFFF000&) }
    • Mit dem \move($x,$y,!$x-10!,!$y-10!,$start,$start) lassen wir die Silbe diesmal bewegen, bei Einsatz leicht versetzt nach rechts-oben.
    • Anstatt den Farbwechsel dem \k-Tag zu überlassen, dass sie Farbe danach so lässt, setzen wir diesmal die Farben manuell.
      • Mit \c&HFFF000& setzen wir die Anfangsfarbe auf Gelb,
      • mit \t($start,$start,\1c&H38F126&) färben wir die Silbe bei ihrem Einsatz in grün,
      • und mit \t($end,$end,\c&HFFF000&) färben wir sie nach ihrem Einsatz zurück in gelb.