So dass ich auf der After Effects Forum, Und dachte, vielleicht wäre es passender, um hier.
Ich versuche, ein Effekt, wo kann ich ein Video und ersetzen sie durch ASCII-Zeichen.
Kevin Lager kam mit diesem Ausdruck, die Werke großer, Macht, sondern nur ein einzelnes Zeichen pro Textfeld:
Asciiarray = [ "","a","b","c","d","e","f","g","h","I","j"]; / / Eingabe von Zeichen, um von hell bis dunkel Werte
Numcharacters = 10; / / Geben Sie die Anzahl der ASCII-Zeichen in der obigen Tabelle
Imagemap = thiscomp.Schicht ( "Quelle").Sampleimage ([Position [0], Position [1]], [1, 1]);
A = Mathematik.Runde (lineare (imagemap [0], 0, Numcharacters));
Asciiarray [a]
Ich habe versucht, dieses auf einen Text ein und duplizieren Sie es an einem Gitter, Problem ist, dass es ein paar tausend Schichten (alle laufenden Ausdrücke), um den Bildschirm auszufüllen Raum mit einer ausreichenden Anzahl von ASCII-Zeichen und After Effects Abstürze, lange bevor ich habe genug.
Enthält, die ein Ausdruck, der auf einer Zeile Text, So habe ich weniger Schichten (ich habe nur zu duplizieren es nach der Anzahl der Zeilen), Aber das Problem ist, regelt sie nicht die Breite des Textfeldes, So dass die wechselnden Breite der Zeichen die Lage der folgenden Zeichen.
Ich bin wirklich stecken, und ich habe mit diesem Problem für Tage. Wer weiß, wie ich erreichen kann, diesen Effekt?
Re: Video in ASCII-Effekt Dan Ebberts - 10-26-2007
Wenn Ihr Video Schicht namens "Ziel", Sie können einen Ausdruck davon zu einer Textebene:
For (var i = 0; I Zeilen; i + +) (
For (var j = 0; j cols; j + +) (
Center = [W / 2 + j * w, H / 2 + I * h];
Sample = Ziel.Sampleimage (Mitte,[(w-1) / 2,(h-1) / 2]);
S + = Dichte [math.Runde (lineare ([0],0,1,0,Dichte.Länge - 1))];
}
S + = "\ r";
}
s
Sie müssen auch mit der Schriftgröße, Tracking, Führenden, Etc. Bearbeiten Sie die Zeilen und cols Variablen an Ihre Bedürfnisse
Dan
Re: Video in ASCII-Effekt jporter313 - 10-26-2007
Thanks a lot Dan, Ich werde versuchen, dass eine.
Re: Video in ASCII-Effekt moldyboot - 10-26-2007
Dan, Das ist sehr beeindruckend in ihrer Einfachheit (zumindest bis zu einem Mann ohne Scripting-Kenntnisse).
, in der Hoffnung, das Lernen mehr über Scripting...
[ Dan ebberts]"for (Var i = 0; I < rows; i++){"
Var i = 0, Wird der ursprüngliche Wert von 'I' auf 0. Sie vergleicht den Wert von "I" auf den Wert der Reihen. Und I + + erhöht den Wert von "I" bis "I" den Wert der Reihen, , an welcher Stelle der "Schleife" endet (ist richtig, dass es eine Schleife, Oder ist es wie ein Unterprogramm).
[ Dan ebberts]"s =" ""
Diese Einstellung ist nur eine Variable "s", die zunächst nichts Renditen? Und Dann wird erhöht (+ =) mit dem Wert der Dichte Array... Bis zum "Ich" über den Wert der Reihen, Punkt, an dem "s" ist nicht wieder (und die "Schleife" Haltestellen).
Kevin Lager
Designer - kcpq, Kmyq & krcw
Re: Video in ASCII-Effekt Dan Ebberts - 10-26-2007
Ziemlich viel. Wird die Schleife ausführen, solange ich weniger als Zeilen. S = "" wird nur als ein leerer String. Das "+" = fügt ein neues Zeichen der Zeichenkette.
Ich habe gerade festgestellt, dass ein Backslash-Zeichen verloren gegangen, wenn ich den Code eingefügt in. Ich werde versuchen es erneut, Dieses Mal mit dem html Code-Tag.
density = " .'`,^:" + '";~-_+<>i!lI?/|()1{}[]rcvunxzjftLCJUYXZO0Qoahkbdpqwm*WMB8&%$#@';
target = thisComp.layer("target");
cols = 80;
rows = 60;
w = thisComp.width/cols;
h = thisComp.height/rows;
s = ""
for (var i = 0; i < rows; i++){
for(var j = 0; j < cols; j++){
center = [w/2 + j*w, h/2 + i*h];
sample = target.sampleImage(center,[(w-1)/2,(h-1)/2]);
s += density[Math.round(linear(sample[0],0,1,0,density.length - 1))];
}
s += "r";
}
s
Dan
Re: Video in ASCII-Effekt Patrick Deen - 10-30-2007
Dan Du machst mich krank mit scheinbar einfachen Lösungen kommen Sie mit!
Ich war auf der Suche nach einem Weg, dies zu tun, bevor CS3 Nach der Besichtigung des "schwarzen Tamburine" video von Beck. Ich habe lange auf die Idee, dass ich könnte es mir.
Das einzige, was ich möchte ist, dass, wenn Sie experimentieren mit verschiedenen Video ist es bequemer, die "Schicht (Index)"-Attribut (nur eine andere praktische Sache, die ich aus Dan )
Einrichtung das Ziel als "target = thiscomp.Schicht (Index -1); "
Jetzt können Sie einfach das Video, das Sie wollen "ascciisize" auf die Ebene über dem Skript Textebene.
, um ein wenig mehr Tiefe zu meiner ASCII-Video, das ich aus einer zweiten Schicht mit Text fett gedruckt und der Stichprobe der gleichen Video mit gepackten Ebenen, um die fett zu den dunkelsten Bereichen. Sie brauchen, um die Buchstaben-Abstand, um den Fett-und Normalschrift. Beachten Sie, dass das Hinzufügen einer zweiten Schicht gescriptete wirklich zeigt, dass es sich hierbei um ein Prozessor-intensiven Ausdruck.