ConditionalReader(clip clip, string filename, string variablename [, bool show])
ConditionalReader erlaubt es Informationen aus einer Datei auszulesen, um eine Variable mit unterschiedlichen Werte f�r jeden Frame oder f�r einen bestimmten Bereich zu erhalten.
Parameter:
clip
Der Quell Clip. Dieses wird nicht ver�ndert, es sei denn man setzt show=true.
filename
Hier gibt den Dateipfad zu der Variablendatei, die man setzen will.
variablename
Der Name der Variable, die die importierten Einstellungen enthalten soll.
show
Bei diesem optionalen Parameter wird bei true der �bergebene Wert im Frame eingeblendet. Standard ist false.
Dateiformat:
Die Datei ist eine einfache Textdatei. Als Separator reicht ein einfaches Leerzeichen und eine neue Zeile zeigt einen neuen Datensatz an. Es wird nicht auf Gro�-/Kleinschreibung geachtet.
Parameter:
TYPE <int|float|bool>
Man kann pro Datei nur einen Typ an Daten definieren. Man sollte den Typ immer am Anfang definieren, weil ConditionalReader erst nach dem Typ sucht und dann erst die Daten ab da liest. Man kann den Typ nicht zwischendurch wechseln.
Die Typen k�nnen float, int oder bool sein:
int Ist eine ganze Zahl und kann wahlweise auch ein Vorzeichen enthalten.
float Ist eine Dezimalzahl, die einen Dezimalpunkt enth�lt. Wahlweise auch ein Vorzeichen oder gefolgt vom e oder E Buchstaben und einer Dezimalzahl. G�ltige Werte sind z.B. -732.103 oder 7.12e4.
bool Kann entweder true (wahr) oder false (falsch) sein.
DEFAULT <Wert>
Gibt einen Standardwert f�r alle Frames an. Diesen sollte man direkt nach der Definition von Type setzen, da er die Werte f�r alle Frames �berschreibt. Man kann den Standardwert auch nicht setzen, muss dann aber auch wirklich f�r alle Frames eine Wert so setzen, da es sonst zu unerwarteten Ergebnissen kommt.
<Framenummer> <Wert>
Dies setzt den Wert nur f�r den Frame Framenummer.
R <Erster Frame> <Letzter Frame> <Wert>
Dies wendet den Wert auf einen Bereich an Frames an. Sowohl der Startframe als auch der letzte Frame sind im Frame-Bereich enthalten.
I <Erster Frame> <Letzter Frame> <Startwert> <Stopwert>
Dies interpoliert zwischen den beiden Werte �ber den angegebenen Bereich an Frames. Dies funktioniert nur f�r int und float Werte. Sowohl der Startframe als auch der letzte Frame sind im Frame-Bereich enthalten.
Beispiele:
Diese Datei liefert Gleitkommazahlen als Werte. Standardm��ig ist der Werte 3.45567. Von Frame 45 bis 300 ist der Wert aber 76.5654. Und der Wert von Frame 2 und 72 ist -671.454.
Wie man sieht, �berschreiben sp�tere �nderungen die Einstellungen davor. Dies sieht man gut am Frame 72: obwohl der Frame innerhalb des Bereiches 45-300 ist, wird der Wert sp�ter ge�ndert. W�rde man zuerst den Frame und dann den Bereich spezifisieren, w�rde der Wert von -671.454 auf 76.5654 ge�ndert werden.
Datei.txt:
Type float
Default 3.45567
R 45 300 76.5654
2 -671.454
72 -671.454
Hier ein Skript, dass die obigen Datei nutzen w�rde.
Hier wird der Wert in die Variable "MeineVar" importiert, welche von Subtitle - aufgerufen von ScriptClip wegen dem bedingten Wert - angezeigt wird.
ColorBars(512,512)
Trim(0,500)
ScriptClip("Subtitle(String(MeineVar))")
ConditionalReader("Datei.txt","MeineVar",false)
An sich werden nur Schl�sselframes f�r x-offset und opacity definiert. Bei Frame 25->50 wird die Transparenz von 0.0 bis 1.0 skaliert, w�hrend sich der Text von links nach rechts bewegt. Dann bleibt der Text stehen von Frame 50 bis 250 und wandert dann weiter nach rechts und wird dabei ausgeblendet.
Es ist einfacher, sich den Clip anzusehen, als ihn zu beschreiben ;-)
AviSynth Skript:
ColorBars(512,256)
a1 = Trim(0,600)
a2 = MessageClip("Text Clip")
Overlay(a1,a2,y=100,x=110,mode="Subtract",opacity=0,pc_range=true)
ConditionalReader("opacity.txt","ol_opacity_offset",false)
ConditionalReader("xoffset.txt","ol_x_offset",false)
xoffset.txt:
Type int
Default -50
I 25 50 -50 100
R 50 250 100
I 250 275 100 250
opacity.txt:
Type float
Default 0.0
I 25 50 0.0 1.0
R 50 250 1.0
I 250 275 1.0 0.0
Changelog:
v2.54: Erstes Release