ASSCalc

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

to test out one of those sample effects:

create a new folder

put the p*.txt files for the effect in

create a shortcut for the exe

set the working path of the shortcut to the folder where you put the p*.txt files


drag the .ass script on the shortcut

(directly on the exe wont work!)


it should draw a lot of stuff, some ....... and then say done then you have a out.ass which contains the effect

BIG FILES: edit your shortcut to read asscalc.exe split That’ll create out_000.ass, out_001.ass, ...


coding your own scripts:

i'd suggest you to look at the sample source

Geschichte ASSCalc wurde von Hajo Krabbenhoeft alias Tentacle 2003 für seine eigenen Effecte geschrieben. 2004 wurde diese Version als Public-Release auf seiner Webseite http://www.tentacleworks.net/ veröffentlicht, wo man sie heute noch downloaden kann. Dort findet man auch genug Beispielscripte, mit denen sich fast alle Anwendungen abdecken lassen. Da zu dieser Zeit noch kein Aegisub in Aussicht war, wurde das Program auf ANSI Scripte ausgelegt, was bedeutet, dass die Kanjis, welche in UTF8 vorhanden sind, in SHIFT-J gewandelt werden müssen, was oft zu Problemen führt, da Shift-J Zeichen auch }{ enthalten dürfen. Dieße werden dann von ASSCalc falsch interpretiert und es bricht den Prozess ab. Dieses Problem wurde erst im September 2011 behoben, als Tentacle die UTF8 Version als beta heraus gab. Diese gibt es aktuell nur per Mail, da sie noch nicht getestet wurde.

Funktionsweise ASSCalc arbeitet in einem Effekt Layer Prinzip, das heißt es werden Effekt Layer erzeugt, die auf einen Style zugreifen, und diesen dann in einer gewissen Art und Weise berechnen. Es gibt pro Effekt Layer oder auch P-Layer 2 Dateien, welche ein Namensformat haben müssen, damit der Layer angesprochen wird. Beide müssen den gleichen Style ansprechen und die gleiche Nummer haben. ASSCalc fängt immer bei 0 an zu zählen, also ist die erste P-Layernummer 0. Die p0h-Datei ließt den Header einer Line aus und besteht immer aus 3 Komponenten, die p0-Datei besteht mindestens aus einem Komponenten oder kann auch bei speziellen Anwendungen weg gelassen werden. Nun geht ASSCalc hin und liest das Grundscript Line für Line und checkt, ob es einen vorhandene P-Layer mit dem Style für die Line gibt. Es können auch mehrere FX Layer den gleichen Style benutzen, wichtig ist hierbei zu wissen, dass die ganze Line pro FX-Layer ausgeführt wird und dann die gleiche Line nochmal für den anderen Layer usw. Wie oben schon erwähnt wird die Hader Datei nur einmal pro Line pro Layer ausgeführt. In dieser kann auch noch nicht auf Interne Variablen zugegriffen werden, wie die Linebreite und Höhe in Pixeln oder Farben etc. In einer normalen Anwendung wird dort nur der Stylelock definiert. Dieser bestimmt, wie der P0-Layer für die Line ausgeführt wird. Es gibt 5 Berechnungsarten, von denen aber nur 3 relevant sind. Skipspace bedeutet, dass p0 für jedes \k ausgeführt wird, der vorhandene Text in der Text Variable ist also die ganze Silbe. Leerzeichen werden raus gelöscht, sprich auch getimete Pausen, welche keinen Text beinhalten, werden nicht berechnet, um Scriptplatz zu sparen und eine bessere Performance zu erreichen. Charwise hingegen führt die p0 Datei für jedes Zeichen aus, auch Leerzeichen! Die Scriptgröße wird natürlich viel größer, da der Effekt pro Silbe geschrieben werden muss. Der vorhandene Text ist das jeweilige Zeichen. Doublecharwise behandelt zwei Zeichen als eins. Dies wird für Shift-J Karaoke benötigt, da dort ein Kanji mit zwei ANSI Zeichen beschrieben wird.

In einem P0-Layer können nun wiederum andere Dateien n mal eingefügt werden, bzw. geloopt werden. Grundsätzlich gibt es, wie in anderen Sprachen vorhanden, keine Schleifen und keine if-else oder sonstige Abfragen. Calc arbeitet eher wie ein Batch Script aus der guten alten DOS Zeit, sprich an einer gewissen Stelle im Code ist es möglich PRO Datei festzulegen ob der nachfolgende Code ausgeführt wird oder nicht. Zusätzlich können NUR Gleitkommazahlen verwendet werden (0.2;1.7;30), keine Strings oder sonstiges.

Um mit ASSCalc zu arbeiten, sollte man ein Script vorbereiten mit den Auflösungseinstellungen für das größt mögliche Video, z.B. FullHD