Schritt 6: MEL Script
Jetzt schreiben wir eine rekursive Funktion, die genannten Fraktal-Algorithmus implementiert. Es gibt viele Möglichkeiten der Umsetzung, aber ich werde zeigen, die am einfachsten um zu verstehen (hoffe ich)!
Zunächst deklarieren Sie die Funktion GenerateFractal, dauert es ein paar Eingabeparameter, Vektor, Float und int.
Wir haben, schreiben eine Überprüfung, inwieweit Rekursion wir sind. Diese Rekursion Ebene bezieht sich, wie tief wir innerhalb des Prozesses sind. Wenn wir die ersten Cube erstellen wir sind Ebene 0, und dann beim zweite Satz der Würfel (Kinder) gemacht werden, dann sind wir auf Ebene 1, etc.. Für unsere Zwecke wollen wir eine maximale Rekursionstiefe festlegen und diese Zahl verringern, bis wir-1 erreichen, wird nur dann die Funktion beendet.
Die nächste Zeile erstellt eine PolyCube mit einer Breite, Höhe und Tiefe der $size, gehört der input-Parameter der Funktion GenerateFractal. Wir werden sehen, wie dies in den Code ein bisschen festgelegt ist.
Dann gehen wir den Würfel in Position. Man könnte denken, mal oh, Moment, haben wir nicht den Cube zuerst auswählen? Nö! Standardmäßig ausgewählt Maya das letzte Objekt in der Szene erstellt. Das ist praktisch.
Jetzt berechnen wir, dass die nächste Cubes Größe und wie weit es ausgeglichen wird aus dem Cube wir nur (aka übergeordneten) erfolgen. Die nächste Cube werden halb so groß wie seine Eltern und wird durch ein Viertel des übergeordneten Größe und Hälfte seiner eigenen Größe ausgeglichen werden. Wenn das Sinn macht, mach dir keine Sorgen. Sobald wir anfangen, Ausführung dieser Funktion um Fraktale generieren können Sie mit diesen Zahlen spielen und sehen, wie sie das Fraktal Ästhetik beeinträchtigen.
Okay, haben wir berechnen Zentrum Positionen für die neuen Cubes, die wir erstellen. Wir berechnen bereits den Offset, so dass die neuen Positionen der früheren Mitte entsprechen, sowie einen Offset in die entsprechende Richtung.
Schließlich rufen wir die GenerateFractal-Funktion in sich! Woohoo Rekursion :) Beachten Sie, dass wir die Funktion die neuen Positionen für die Zentren, die Größe und die Rekursion Ebene übergeben!
Beim Erstellen und testen diese Funktion, werden Sie wahrscheinlich mit Tonnen von Würfel in der Szene am Ende. Dann wird Maya verlangsamen und schließlich abstürzen. Also bevor wir unsere Fraktal erzeugen, wir Maya für alle Objekte mit dem Präfix pCube Abfragen und löschen Sie sie. Dies wird uns eine saubere Szene geben.
Wir werden jetzt die ursprünglichen Parameter einrichten, die wir an unsere GenerateFractal-Funktion übergeben wird! Wir unsere ersten Würfel (0,0,0) zentrieren und beginnen Sie mit einer Größe von 100 Einheiten, und wir gehen 6 Stufen (eigentlich 7 zählen null) tief.
Dann rufen wir die Funktion! Maya wird eine Sekunde lang hängen und verarbeiten, was Sie gerade gesagt haben es zu tun. Maya könnte für eine Sekunde oder zehn einfrieren. Keine Sorge, das ist völlig normal. Ich habe festgestellt, dass 6 die höchste Ebene, kann, die ich auf meinem Rechner erreichen kann ist, bevor ich Maya zu verwirren und dazu führen, es zum Absturz zu bringen dass! Aufruf dieser Funktion ist wie "die rote Pille"... Ich hoffe, dass es dein Geist weht: