Aller Anfang ist schwer - Getting started from the scratch (global)

Aus WiFX - The Karaoke Wiki for ASSCalc, NyuFX, Lua, AFX, Tenfex & Templater
Wechseln zu: Navigation, Suche

Vorwort

Aller Anfang ist schwer. Das trifft wohl besonders auf die Effekterstellung für ein Karaoke zu. Es gibt oft keine Anleitung, Hilfe findet man selten und allgemein sind Informationen zu dem Thema spärlich gesäht. Aber woran liegt das eigentlich?

Um diese Frage zu beantworten muss man zu den Anfängen des Fansubbens zurück springen. Als Karaoke zum ersten mal in Fansubs auftauchten, wurden sie mit standard Effekt der Scriptsprache SSA (SubStationAlpha) erstell. Dies war nicht nur sehr mühselig zu erstellen, sondern wurde natürlich schnell langweilig. Man fing also an, die Zeiten des Karaokebefehls umzurechnen. Aus {\k44} (Karaoke Zeit) wurde ein Transform Befehl {\t(0,440,\fs40)}, welcher einen Zustand, wie z.B. die Größe einer Silbe, in einen anderen Zustand transformieren kann in der Zeit A bis B. Natürlich war dies lästig und dauerte bei 20 Karaoke Lines und je nach Aufwand auch mal seine 10 bis 20 Stunden.

Um sich diese Rechenarbeit zu ersparen, entwickelten ein paar findige Leute mit der Zeit diverse Tools, welche sich zwar in der Anwendung meißt deutlich unterschieden, aber im Ergebniss oft ziemlich ähnlich waren. Natürlich war man ein ziemlich gefragter Mann/Frau, wenn man diese Tools bedienen konnte und das führt uns zur Antwort unserer Frage, warum man so wenig zu diesem Thema findet. Es ist quasi der große Populismus und teilweise auch Personenkult, welcher die Leute davon abgehalten hat, sowas wie diese Wiki aufzubauen.

So ein Handeln rächt sich aber spätestens, wenn eine kleine Szene noch kleiner wird. Wenn man nicht aktiv Leute antrainiert und ihnen das gesammelte Wissen einer kleinen Gruppe vermittelt, ist es sehr schnell wieder ausgestorben und nur noch ein Relikt der viel zu schnell laufenden Internetzeit. Somit ist dies der Versuch, den interessieten Leuten, die für ihre Serie ein Karaoke mit oder auch ohne Effekt erstellen wollen, praktisches Wissen zu vermitteln, was sich weit über die technische Ebene hinaus bewegt.

Standard Karaoke

Was verstehen wir unter Karaoke?

Karaoke ist eine von 4 implementierten Effekten in ASS oder eher noch SSA, was damals das aktuelle Format war. Es gibt, Scroll, Karaoke, Banner und XXX (ergänzen), welche bei SSA noch zwingen erforderlich war, da anderenfalls der Effekt nicht als Karaoke angezeigt wurde, sondern nur als Text. Der Effekt Karaoke wird über diverse SSA/ASS Tags angefahren.

Wie wird das benutzt?

An dieser Stelle kommt der erste Einwand. Solltest du (Leser) noch gar keine Ahnung von ASS haben, empfehlen wir Aegisub runter zu laden und erstmal einen Untertitel zu erstellen und auszuprobieren, wie die sogenannten ASS Overide Tags funktionieren. Sonst wirst du ab jetzt gar nichts mehr verstehen, von dem was hier geschrieben steht.

Ein Karaoke Tag ist immer wie folgt aufgebaut:

\ + Karaoke Art + Karaoke Zeit

Er gibt die relative Zeit bis zum nächsten Karaoke Tag an. Die Zeit wird in 10ms Schritten angegeben. Durch die verschiedenen Arten der Benennung wird ein etwas ander Effekt ausgeführt.

Info: Karaoke FXer sprechen gerne von Siben oder Chars. Eine Silbe ist immer der Bereich, welcher von \k angesprochen wird, wärend ein Chars die Zeichen der von \k angesprchenen Silbe darstellen. Words sind dann alle Silben die ein Wort bilden.

Beispiel Gehen wir in die Fansubschule.

{\k20}Ge{\k34}hen {\k23}wir {\k18}in {\k40}die {\k33}fan{\k26}sub{\k43}schu{\k36}le

Silben Ge hen wir in die fan sub schu le

Chars g e h e n w i r i n d i e f a n s u b s c h u l e

Words Gehen wir in die Fansubschule.

Relative Karaoke Zeiten 20__34__23__18__40__33__26__43__36

Absolute Zeiten in ms (relativ zur Startzeit der jeweiligen Zeile in der man Arbeitet) 0-200__200-540__540-770__770-950__950-1350__1350-1680__1680-1940__1940-2370__2370-2730

Das \k

Beim \k wird ASS Farbe 2 zu ASS Farbe 1 mit beginn der Karaoke Silbe komplett gewechselt. Es ist sozusagen ein harter Übergang. In unserem Beispiel oben wäre das bei 0ms für Silbe 1 und bei 200ms für Silbe 2 usw.

Das \kf

Beim \kf wird ASS Farbe 2 zu ASS Farbe 1 mit Beginn der Karaoke Silbe ist zum Ende der Karaoke Silbe von links nach rechts gewechselt. Dies nennt man auch Laufkaraoke. In unserem Beispiel oben wäre die Startzeit der ersten Silbe 0ms und der Farbdurchlauf endet bei 200ms und die nachfolgende Silbe übernimmt diesen.

Das \K (großes K)

Dieser Effekt ist gleichwertig mit \kf, reagiert aber deutlich genauer und ist nicht ganz so träge in der Darstellung des Effekts. Durch den Genauigkeitsgewinn muss man aber auch deutlich genauer Karaoke timen.

Das \ko (O für Outline)

Funktioniert genau wie \k, nur wird diesmal von unsichtbarer Outline nach sichtbare Outline transfomiert (hart).

Die Pause, die Pause

Beim timen von Karaoke, wird man irgendwann an den Punkt kommen, wo zwar Text für zwei Lines vorhanden ist, aber der Sänger sich überlegt dazwischen ne kleine Pause einzuschieben. Was nun? \k sind ja Relativ zueinander, das heißt kan müsste ja nun die letzte Silbe des ersten Abschnittes bis zur ersten Silbe des zweiten Abschnittes timen. Ist aber doof weil da wird ja nicht gesungen. Der Trick ist nun eine Leersilbe anzulegen. Dies macht ihr so:

ohne Pause von 200ms {\k20}Ge{\k34}hen {\k23}wir {\k18}in {\k40}die {\k33}fan{\k26}sub{\k43}schu{\k36}le

mit Pause von 200ms {\k20}Ge{\k34}hen {\k23}wir {\k18}in {\k20}die {\k20}{\k33}fan{\k26}sub{\k43}schu{\k36}le

Ihr seht, man kann durch auffüllende Karaokezeiten die Line manipulieren. Warum aber {\k20}{\k33} und nicht {\k20} {\k33}? Ganz einfach, das liegt an den meisten effekt Tools. Diese reagieren manchmal etwas dämlich auf leeren Text (Leerzeichen) in einer Silbe, aber mit gar keinem Text kommen sie ganz gut klar.

Ich splitte die Lines

Aber nicht so wie beim Blackjack. Wenn man nun davon ausgeht, dass unsere Line bei 00:00:00.00 anfängt, und genau mit unserer letzten Silbe endet, dann wäre sie 2730ms lang, was in Timecode 00:00:02.73 ist. Wir wollen jetzt nur, dass unsere Line in zwei gesplittet wird. Dies können wir ohne auch nur einmal das Timing Tool anfassen zu müssen, ganz leicht errechnen. Wir nehmen wieder unser Beispiel von oben:

{\k20}Ge{\k34}hen {\k23}wir {\k18}in {\k40}die {\k33}fan{\k26}sub{\k43}schu{\k36}le

=> {\k20}Ge{\k34}hen {\k23}wir {\k18}in {\k40}die Startzeit der Line wissen wir, diese ist natürlich die gleiche wie beim ersten Abschnitt. um jetzt die Endzeit zu bilden müssen wir nur alle Silbenzeit addieren: 20+34+23+18+40 = 135 nun noch mit den 10ms multiplizieren ergibt? 1350ms, in Timecode ausgedrückt 00:00:01.35

=> {\k33}fan{\k26}sub{\k43}schu{\k36}le Wir wissen das der vorherige Abschnitt bis 00:00:01:35 geht. Da in dem Fall keine Pause benötigt wird (diese sollte man aufgrund nachfolgender Effekte beim Split trotzdem mitnehmen und nicht eine echte Pause erzeugen!!) wissen wir schon unsere Anfangszeit der Line. Da wir einen Split machen, wissen wir auch die Endzeit der ursprünglichen Line, nämlich 00:00:02:73. Somit muss man beim zweiten Abschnitt nichts mehr errechnen und kann aus den vorhandenen Werten schöpfen.

Info Effektwissen Um einen Hall oder eher ein Delay im Gesang nachzubilden und dieser oft nur spärlich getimed oder alleine getimed ist, ist es ratsam sich ein Konstrukt aus Linesplits zu bilden. In dem Fall kopiert man die Original Line und extrahiertnur das zu wiederholende Wort aus der Line. Dafür muss wieder die Summe aller Silben bis zur wiederholenden Silbe gebildet, davor eingefügt und der Rest auf 0 gesetzt werden:

{\k20}Ge{\k34}hen {\k23}wir {\k18}in {\k40}die {\k33}fan{\k26}sub{\k43}schu{\k36}le

{\k0}Ge{\k0}hen {\k0}wir {\k0}in {\k0}die {\k135}{\k33}fan{\k26}sub{\k43}schu{\k36}le

Da die anderen Silben = 0 sind, kann wird nur noch fansubschule als Effektteil behandelt (wenn man die richtige if Abfrage schreibt, falls benötigt). Man muss aber die Position nicht anpassen, da der Text trotzdem vorhanden ist und auch als solcher behandelt wird. Er ist sozusagen unsichtbar durch dieße Maßnahme. Dies funktioniert natürlich auch bei Zwischenworten:

{\k0}Ge{\k0}hen {\k0}wir {\k0}in {\k95}{\k40}die {\k0}fan{\k0}sub{\k0}schu{\k0}le

Pretiming - Der Tod jedes guten Effekts

Wenn man nun aus der Timing Ecke kommt, mag man sich denken "Hey dass ist doch sicher ne super Idee, wenn ich die Lines früher anzeigen lasse, dann kann man die schonmal lesen". Falsch gedacht, oder eher Eindimensional. Wenn ich dieses Timing Script nun zu meinem FXer gebe, wird dieser sich ziemlich abnerven und am Ende alles wieder zurück timen. Warum? Weil ein FXer immer ein FadeIN oder FadeOUT einfügt, welcher den Text ins Bild holt und wieder raus. Quasi der Folienübergang von Powerpoint ;) Da diese Übergänge eine gewisse Zeit benötigen, ist es fatal, wenn diesen z.B. 400ms durch ein pretiming "geklaut" werden. Somit sollte ein guter Karaoke Timer immer so knapp wie möglich timen, da der FXer den Rest für ihn erledigt. Das gleiche gilt selbstverständlich auch für LeadOut Timing!

Sollte es euch doch einmal passieren, hier der passende fix dazu:

{\k44}{\k20}Ge{\k34}hen {\k23}wir {\k18}in {\k40}die {\k33}fan{\k26}sub{\k43}schu{\k36}le bei start von 00:00:00.00

fixed Line

{\k20}Ge{\k34}hen {\k23}wir {\k18}in {\k40}die {\k33}fan{\k26}sub{\k43}schu{\k36}le bei start von 00:00:04.40


Unsichtbares Karaoke

Es fragen sich oft Leute, wie man ein Laufkaraoke erzeugt, welches Anfangs nur eine Outline besitzt und dann erst mit einer Farbe als Laufeffekt gefüllt wird. Nun dies ist recht simpel. ASS behandelt Farben als RGBA, sprich der Alphawert, welcher im Style für jede Farbe angegeben werden kann oder auch manuel pro Line gesetzt werden kann hat durchaus relevanz beim Karaoke Effekt. Wenn man also die zweite ASS Color auf alpha = FF setzt (\2a&HFF&) wird diese auch unsichtbar angezeigt.


Effekt Karaoke

Die Verwandlung kann beginnen

Viele der oben erklärten Begriffe und Effekte benötigt man erst gar nicht für einen richtigen Karaoke Effekt. Das Script sollte einfach nur mit \k getimed sein und sonst keine ASS Overide Tags enthalten. Farbwechsel, auch Colorchanges genannt, bilden hier eine kleine Ausnahme, genau wie Identifier, welche man im Zuge der Effekterstellung gerne mal benutzt. Aber das ist erst für Fortgeschrittene. Wichtig ist erstmal, dass du mit den oben erklärten Begriffen zurrecht kommst!

Im ersten Beispiel auf dieser Seite wird erklärt wie Karaokezeiten aufgebaut sind. Dieses Wissen werden wir nun permanent brauchen, von daher sollte man keine Probleme haben, Karaokezeiten in Milisekunden und wieder zurück zu rechnen.

Auch der Transform (\t) Tag wurde angesprochen, dieser ist in den ASS Overide Tags nachzulesen, falls noch nicht bekannt.

Wenn Transform als Tag bekannt ist, sollte direkt auch bekannt sein, das dieser viele verschiedene Wertangaben wie Farbe und Größe in einer angegebenen Zeit ändern kann. Dies machen wir uns jetzt zu nutzen, indem wir uns überlegen, was alles in einer Zeitspanne von Silben Start bis Silben Endzeit passieren soll. Wir wollen erstmal nur die Größe ändern. Zur Erinnerung, die Größe ist mit dem Tag \fs angegeben, da dieser aber unflexibel ist, wenn man die Schriftart tauschen will, benutzt man einen relativen Wert wie \fscx und \fscy, da diese relativ zur \fs Größe sind und sich somit der Basiswert der Schriftart ändern kann.

Wenn man nun einen Text größer und wieder kleiner machen will, benutzen wir Transform und überlegen uns ma eine Zeit, zum Beispiel, 400ms. Was können wir damit anfangen?

{\t(0,200,\fscx130\fscy130)}{\t(200,400,\fscx100\fscy100)}TEXT

In unserem Beispiel würde nun der Text von 100% Größe auf 130% Größe in 200ms transformiert und wieder zurück auf 100% in weiteren 200ms. Wie aber soll man nun dieses Wissen auf unsere vorherigen Karaokelines anwenden? Ganz einfach, ihr rechnet es schnell um:

{\k20}Ge{\k34}hen ergibt

{\t(0,100,\fscx130\fscy130)}{\t(100,200,\fscx100\fscy100)}Ge{\t(200,370,\fscx130\fscy130)}{\t(370,540,\fscx100\fscy100)}hen

Wenn ihr nun einmal hoch Scrollt und in einem der ersten Beispiele euch die absoluten Zeite anschaut, wird euch einiges klar. Die Zwischenzeiten wie 100 oder 370 ergeben sich einfach aus der Absoluten Startzeit der Silbe + halbe Duration (Durchlaufzeit einer Silbe) einer Silbe.

Es ist letztlich stumpfes Umrechnen von statischen \k Werten in einen Transformationscontainer, welcher andere Werte von X nach Y Transformiert. Auf dieses Prinzip lässt sich alles reduzieren. Wenn man sich nun noch überlegt, dass man keine Limitierung besitzt bei der Ausgabe von Transformationslines, wird schnell klar, dass einem beim FXen keine Grenzen gesetzt sind. Man kann dieses Beispiel ganz leicht in der Praxis anwenden, nur wo? Richtig beim Effekt designen. Wenn ihr einen guten Effekt bauen wollt und technisch nicht genug Ahnung habt, hilft es oft sich zwei Silben in Aegisub zu bauen und mit diesen den Effekt per Hand nachzustellen. Wenn man nun einen einigermaßen brauchbaren Effekt geschrieben hat, lässt sich dieser spielend einfach in ein FX Tool umsetzen, da man die Anforderung kennt und nun gezielt nach der Lösung suchen kann. Kreatives und technisches lässt sich nämlich oft schwer verbinden und so bleibt die Kreativität oft auf der Strecke bei der Suche nach der technischen Lösung.

Deswegen an dieser Stelle nochmal, seid fit in ASS Overide Tags und Aegisub und fangt dann erst mit Karaokeeffekten an!

Wie funktionieren FX Tools?

FX Tools haben diverse Ansätze. Grundsätzlich tun sie aber nichts anderes als das Basisscript zu lesen und es anders Auszugeben. Als Beispiel kann man sagen, es liest eine Line, stellt alle Werte aus dieser Bereit, der FXer schreibt einen völlig neuen Effekt, welchen man quasi als Hülle sehen kann, welcher dann mit den Basiswerten jeder zugehörigen Line gefüllt werden kann. Sprich das was wir oben manuel errechnet haben, steht uns in einem FX Program als Werte zur verfügung und muss quasi nur neu Angeordnet werden, um dann als FX ausgegeben zu werden. Dies geht teilweise so weit, dass man die Line mit einem Befehl 1 zu 1 ausgeben könnte und sich dann selber nur Ersatzwerte für Start und Endzeit überlegen muss oder für den TEXT. Ein Tool nimmt einem sehr viel Arbeit ab und bietet oft Funktionen, die nicht manuel zu errechnen wären (nur als Matheprofessor).


Wie kann ich jetzt einen FX erstellen?

Du solltest nun das Basiswissen besitzen um ein Karaoke Script zu erstellen und dieses manuel umrechnen können in \t(). Desweiteren sollte dir klar sein, dass Effektprogramme dir diesen Schritt abnehmen mit Befehlen. Um diese zu lernen schau bitte in einen anderen Beitrag von einem Tool. Es sollte dir aber nicht schwer fallen, das Prinzip des Tools zu verstehen, weil du am Ende alles darauf reduzieren kannst, dass eine Kopie der Basisline als neue Line anders Ausgeben wird. Die Ausgabe von Lines pro Zeichen/Silbe ist dabei nicht limitiert!

Solltest du also Iinteresse an weiteren Ausführungen haben, schau dich auf der Wiki weiter um!