Anmeldung
Hinweis: Dies ist eine automatische Übersetzung; Bitte verwenden Sie eine klare Sprache ohne slang.

Erzeugung Zufälliger Motion Mit AE 5.5's Ausdruecke

Dan Ebberts
Tutorials :
Erzeugung Zufälliger Motion Mit AE 5.5's Ausdruecke
Erzeugung zufälliger Motion mit AE 5.5's Ausdruecke


from CreativeCow.net's ''25 Cool Things about After Effects 5.5'' Series


Generating Random Motion with AE 5.5's Expressions
Dan Ebberts Dan ebberts,
Sacramento, Kalifornien, USA

© 2002 by Dan ebberts und creativecow.net. Alle Rechte vorbehalten.

Artikel Fokus:
In diesem Tutorial, Dan ebberts zeigt eine Methode zur Erzeugung von Bewegung, die zufällig in Raum und Zeit und ermöglicht es Ihnen, schnell eine Komposition mit einem angenehm Flüssigkeit, Chaotische Bewegung.


Download Film Projekt-Datei (enthält ai-Datei) Download StuffIt Expander für Windows

Das Problem:

Das Konzept hinter diesem Tutorial kam aus einer Online-Diskussion. Fellow After Effects Enthusiast wurde versucht, einen Ausdruck zu erzeugen, die zufällige Bewegung in Raum und Zeit. Das ist, Ziel handelt es sich um zufällige, als wären sie die Zeit, die man dort erhält. Das Problem, dass, wenn Sie versuchen, eine solche Meinungsäußerung ist, dass es einfach nicht zu sein scheinen eine gute Möglichkeit, um den Wert der Variablen, die in der Zeit von einem Bild zum nächsten. Alle Variablen, die Sie wird sich auf den nächsten Frame. FolgEndees Beispiel Ausdruck für die Deckkraft:

If (time = 0) (
X = 10
}
Else (
X = x + 1
}

Dies funktioniert auf den ersten Frame. Auf das zweite Bild erhalten Sie eine Fehlermeldung, denn x ist undefiniert. Der Ausdruck nicht vergessen, dass x 10 auf der vorigen Frame. Dies wird eine ernsthafte Einschränkung, wenn Sie versuchen, etwas zu tun, mehr als eine zufällige Zeit, denn wenn Sie sich entscheiden, wie lange es sollte, Müssen Sie bei jedem Bild zu sehen, wenn Sie fertig sind noch. Schwer zu tun, wenn Sie nicht passieren kann, dass die Wert von einem Frame zum nächsten.


Seed_random zur Rettung:

Es stellt sich heraus, dass man um dieses Problem mit der verbesserten (für AE 5.5) seed_random Funktion. Diese Funktion ermöglicht es Ihnen, eine reproduzierbare Folge von Zufallszahlen und regenerieren sie wird, Nur durch die Wiederherstellung der Samen zu einem vorherigen Wert und dann nach dem Zufallsprinzip ()-Funktion. Das gibt uns eine Lösung für das Problem, denn auch wenn wir nicht in unser zufällige Werte von einem Frame zum nächsten, Wir können sie mit Hilfe neu seed_random. Laß uns anschauen, wie seed_random Arbeiten.

Öffnen Sie die Projekt-Datei und öffnen Sie dann die "grundlegEndeen comp". Dies ist nur ein 640x480 comp mit einem 50x50 feste Schicht hinzugefügt. Wählen Sie "massiv 1" und zeigen die Position Eigentum. ALT-Taste (Option-Klick) auf die Stoppuhr, um den Ausdruck für diese Eigenschaft. Geben Sie den folgEndeen Ausdruck:

[random (0,This_comp.Breite),Random (0,This_comp.Höhe)];

Dies führt dazu, dass der Platz zu springen, um eine zufällige Position im Wettbewerb. Vorschau auf die NOA. Sie werden bemerken, dass der Platz springt an eine neue Position für jeden Frame. Nicht sehr nützlich. Füge eine neue Zeile zum Ausdruck, so dass es jetzt heißt:

Seed_random (1,True);
[random (0,This_comp.Breite),Random (0,This_comp.Höhe)];


Feststellen, dass wieder das Quadrat springt auf eine zufällige Position, aber wenn Sie eine Vorschau bleibt es. Dieses neue Verhalten ist darauf zurückzuführen, dass eine Änderung Adobe auf die Funktion für seed_random AE 5.5. Sie haben einen zweiten Parameter, Dass, wenn auf "true" gesetzt wird nach dem Zufallsprinzip Funktion, so dass zufällige Zahlen, die nicht auf Zeit. Der zufällige Zahlen hängen von der Anzahl Layer, Die Zahl, Der Wert des ersten Parameters in der seed_random-Aufruf (die "Seed"), Und die Anzahl der Random-Funktion aufgerufen wurde. Das bedeutet, dass die gleichen Ausdruck werden verschiedene zufällige Zahlen in einer anderen Schicht oder Eigentum (später werden wir nutzen, um schnell Komplexität unserer COMP). Versuchen Sie, die "Seed"-Parameter auf eine andere Zahl. Sie werden bemerken, dass das Quadrat bewegt sich auf einem anderen Ort und bleibt dort. Die zweite Parameter auf "false" und stellen fest, dass, wenn Sie eine Vorschau, Platz springt über den Ort wieder.

Ein wenig mehr Code, um Ihren Ausdruck, so dass er sieht wie folgt aus:

If (Zeit 1) (
Seed_random (1,True)
}
Else (
Seed_random (2,True)
}
[random (0,This_comp.Breite),Random (0,This_comp.Höhe)];


Jetzt werden Sie feststellen, dass, wenn Sie eine Vorschau, Das Quadrat bleibt an einem Ort für die ersten Sekunde und springt dann an einen anderen Ort für den Rest des COMP.

So, wie wir mit dieser neuen, Stärker seed_random Funktion? Hier ist der Schlüsselbegriff: Mit dem zweiten Parameter auf "true" gesetzt, Für eine bestimmte Schicht, Eigentum, Und Saatgut-Wert, Der Zahl, die Sie erhalten beim Aufruf nach dem Zufallsprinzip ()-Funktion nur davon abhängt, wie viele Male Sie haben die Funktion, da die Einstellung Saatgut. Das ist, Das erste Mal, rufen Sie random (), nachdem der Saatgut erhalten Sie eine particlar Zufallszahl (nennen wir sie x). Den zweiten Anruf wird eine zweite Zufallszahl (nennen wir dieses Jahr) und so weiter. Aber wenn Sie seed_random wieder mit der Original-Saatgut, Die Reihenfolge wird über. Das ist, Die nächste zufällige ()-Aufruf wird regenerieren die ursprüngliche Zufallszahl (x in diesem Fall). Mit einem anderen Startwert wird eine völlig andere Sequenz erzeugt werden soll. FolgEndees Beispiel:

Seed_random (1,True), / / die Saatgut-Wert
A = random ();
B = random ();
C = random ();

Seed_random (1,True), / / das Saatgut auf den gleichen Wert
I = random ();
J = random ();
K = random ();

Seed_random (2,True) / / neues Saatgut
Q = random ();
R = random ();
S = random ();

Seed_random (1,True); / / Original wieder Saatgut
X = random ();
Y = random ();
Z = random ();

In diesem Fall, A,B, Und c werden alle verschiedenen Zufallszahlen. Jedoch, A und I wird die gleiche, B und j werden die gleichen, Und C und K werden die gleichen sein, weil das Saatgut wurde zurückgesetzt (auf 1 in diesem Fall) und der Sequenz beginnt. Q,R und s wird eine neue Folge von Zufallszahlen, da das Saatgut wurde geändert zu 2. Die Folge x,Y,Z wird wie ein,B,C und I,J,K, weil das Saatgut wurde auf 1 wieder. So können wir wieder zu einer Folge von Zufallszahlen durch die Wiederherstellung der Saatgut-Wert generiert, dass diese Zahlen.

Wie funktioniert das uns helfen,? , um unsere zufällige Bewegung, Zu einem bestimmten Rahmen müssen wir wissen, ein paar Dinge über das aktuelle Segment der Bewegung: Start-Zeit, Startposition, Endzeit, Und Endlage. Diese werden alle zufällige Zahlen, die wir erzeugen, mit einem anderen Startwert für jedes Segment der Bewegung. Und wir werden bei der Seed-Wert, auf dem Segment sind wir derzeit in. Also alles, was wir zu tun haben, ist der Begriff in der Lage herauszufinden, welche es im Segment (von denen es in der Lage herauszufinden, die Seed-Wert), Das Saatgut, Und regenerieren die Folge von Zufallszahlen, die uns die Start-Zeit, Startposition, Endzeit, Und Endlage für das aktuelle Segment.

Ok - und das sollten wir prüfen, was unser Ziel wird für diesen Ausdruck. Wir wollen, dass der Platz auf einen reibungslosen Übergang von einer zufälligen Position auf dem Bildschirm, um ein anderes. Wir wollen auch, dass die Zeit, die zu tun, dass es sich hierbei um zufällige (sagen wir zwischen .5 und 2 Sekunden). Dieser Ausdruck wird, dass:

Seg_start_time = 0; / / ursprünglichen Bedingungen
Seg_Ende_time = 0;
I = 1;
Tmin = .5; / / Mindest-Zykluszeit (nicht Null)
Tmax = 2; / / maximale Zykluszeit
While (time = seg_Ende_time) (
I = I +1; seed_random (I,True);
Seg_start_time = seg_Ende_time;
Seg_Ende_time = seg_Ende_time + random (Tmin,Tmax);
}
Prozent = (time - seg_start_time) / (seg_Ende_time - seg_start_time);
Target_x = random () * This_comp.Breite;
Target_y = random () * This_comp.Höhe;
Seed_random (I-1,True);
X = random (); / / Dies ist ein Wegwerf-Wert
Old_x = random () * This_comp.Breite;
Old_y = random () * This_comp.Höhe;
Leichtigkeit (in Prozent,[old_x,Old_y],[target_x,Target_y]);

Kopieren Sie diesen Ausdruck, und fügen Sie ihn in die Lage Ausdruck (oder einfach "Basic comp + Ausdruck"). Vorschau auf die NOA. Sie werden bemerken, dass der Platz hat jetzt eine schöne, Flüssigkeit, Bewegung, die zufällig in Dauer und Richtung.

In diesem Ausdruck, "Ich" ist unser Segment Zähler, Die wir auch als Startwert für dieses Segment. "tmin" und "Tmax" Definieren Sie den Bereich der zufälligen Zeiten möglich für die Dauer der einzelnen Segmente. In diesem Fall, Ein Segment wird zwischen .5 und 2 Sekunden. Die "while"-Schleife ist, in dem die Meinungs-Zahlen, welche Segment ist es in. Es tut dies durch Inkrementieren des Saatguts und zufällige Anhäufung Segment Laufzeiten bis zu einem Wert größer als die aktuelle Uhrzeit erreicht ist. An dieser Stelle wird es weiß, der Beginn, Ende, Und die aktuelle Uhrzeit des aktuellen Segment so kann der Anteil dieses Segments ist, dass. Er ruft nach dem Zufallsprinzip ()-Funktion noch zwei weitere Male, um die Ziel-X-und Y-Koordinaten für die End-Position in diesem Segment. Der nächste Teil ist ein wenig schwierig. Der Ausdruck noch zu wissen, die Startposition für dieses Segment, so kann sie berechnen (basierEnde auf dem Prozentsatz abgeschlossen) die aktuelle Position. Seit dem Start ist die gleiche wie die Ende des letzten Segment, Decrement wir nur das Saatgut, um den Samen der vorherigen Segment. Der Begriff ruft dann nach dem Zufallsprinzip ()-Funktion, um Ende X-und Y-Koordinaten des vorherigen Segment. Sie werden bemerken, dass es sich um ein "throw-away"-Aufruf an random () vor der letzten X-und Y-Werte werden. Dies liegt daran, dass für jedes Saatgut, Die erste random ()-Aufruf wird immer verwEndeet, für die Ende-Zeit (die wir schon kennen) - der 2. und 3. fordert die für X-und Y-Koordinaten.

Öffnen Sie den "Ausdruck comp". Dieser comp ist das gleiche wie zuvor, mit Ausnahme comp für den Zusatz von zufällig ähnliche Ausdrücke für Opazität und Rotation. Die Deckkraft Ausdruck:

Seg_start_time = 0; / / ursprünglichen Bedingungen
Seg_Ende_time = 0;
I = 1;
Tmin = .5; / / Mindest-Zykluszeit (nicht Null)
Tmax = 2; / / maximale Zykluszeit
While (time = seg_Ende_time) (
I = I +1; seed_random (I,True);
Seg_start_time = seg_Ende_time;
Seg_Ende_time = seg_Ende_time + random (Tmin,Tmax);
}
Prozent = (time - seg_start_time) / (seg_Ende_time - seg_start_time);
Target_Deckkraft = random () * 100;
Seed_random (I-1,True);
X = random (); / / Dies ist ein Wegwerf-Wert
Old_Deckkraft = random () * 100;
Leichtigkeit (in Prozent,Old_Deckkraft,Target_Deckkraft);

Und die Rotation ist Ausdruck:

Seg_start_time = 0; / / ursprünglichen Bedingungen
Seg_Ende_time = 0;
I = 1;
Tmin = .5; / / Mindest-Zykluszeit (nicht Null)
Tmax = 2; / / maximale Zykluszeit
While (time = seg_Ende_time) (
I = I +1; seed_random (I,True);
Seg_start_time = seg_Ende_time;
Seg_Ende_time = seg_Ende_time + random (Tmin,Tmax);
}
Prozent = (time - seg_start_time) / (seg_Ende_time - seg_start_time);
Target_rotation = random () * 360;
Seed_random (I-1,True);
X = random (); / / Dies ist ein Wegwerf-Wert
Old_rotation = random () * 360;
Leichtigkeit (in Prozent,Old_rotation,Target_rotation);

Diese Begriffe sind praktisch identisch mit dem für Position der Ausnahme, dass sie geändert wurden, um eine Reihe von Werten für die Trübung und Rotation. Vorschau auf die NOA und feststellen, dass der Platz nun Zufallsrotation und AusblEndeen sowie Bewegung.

Hier kommt der spaßige Teil. DUPLICATE "massiv 1" ein paar Mal (oder einfach "Multi comp") und eine Vorschau des COMP. Erinnern - Sie können dies tun, sehr schnell, indem Sie die STRG + d Verknüpfung (Befehl + D auf dem MAC ). Jetzt, wenn Sie eine Vorschau gibt es eine Vielzahl von Aktivitäten. Der zufällige Zahlen für die einzelnen Layer sind unterschiedlich, auch wenn die Ausdrücke sind genau das gleiche für jedes.


Jetzt geht es immer interessant


Offen "Spaß comp" und Vorschau. Für diese comp, Ich dupliziert "massiv 1" zwei mal und dann jeweils der Feststoffe mit einem der Illustrator-Dateien. Dann habe ich doppelt jeder der Ebenen eine Menge Zeit. Sie können sehen, dass, wenn man die Ausdrücke eingerichtet, Duplizieren Schichten schnell fügt Komplexität Ihrer comp.


Es ist ganz einfach, eine komplexe comp schnell mit diesen Ausdrücken


Sie zerlegen die Ausdrücke, um zu sehen, wie sie funktionieren, Oder können Sie einfach kopieren und fügen Sie sie in Ihren eigenen comps. Die drei Beispiele, die ich habe (Position, Deckkraft, Und Rotation) sollten Sie eine ziemlich gute Vorstellung davon, wie der Ausdruck auf, für andere Eigenschaften. Ich hoffe, dass dies inspiriert einige von Ihnen zu spielen und um mit diesen etwas wirklich cool!

# # Dan ebberts

Fühlen Sie sich frei, um diese Technik in der After Effects Forum Hier auf creativecow.




Bitte besuchen Sie unsere Foren und um weitere Artikel auf creativecow.net Wenn Sie finden diese Seite aus eine direkte Verbindung.


FORENTUTORIALSMAGAZINSERVICESVIDEOSNEWSBLOGS


© CreativeCOW.net Alle Rechte vorbehalten.

Creative Gemeinschaften der Welt

[nach oben]

Englishالعربية中文FrançaisDeutschעבריתहिन्दीItaliano日本語PortuguêsРусскийEspañol