Damit wir uns auf die Arbeit mit den neuen Funktionen konzentrieren können, habe ich im Paket mit den Begleitmaterialien eine Projektdatei vorbereitet:
PSD_R21_VektorVolumen_start.c4d. Sie enthält ein parametrisches
Kugel-Objekt und zwei
Partikel-Emitter, die von oben bzw. unten auf die Kugel gerichtet sind. Ziel dieses Tutorials soll sein, dass die ausströmenden Partikel auf die Kugel treffen und sich dort in alle Richtungen verteilen.
Sehen wir uns die Bestandteile der Szene kurz an. Beide
Partikel-Emitter besitzen die gleichen Einstellungen: Sie stoßen 500 Partikel bis Bild 300 aus, wobei die
Lebensdauer der Partikel 1000 Bilder beträgt, was bis zum Ende der Animationslänge reicht.
Ein Klick auf den Abspielbutton zeigt, dass die Partikel beider Emitter im Moment noch unbeeindruckt durch die Kugel wandern. Das wollen wir jetzt ändern.
Aufbau des ersten Vektoren-Feldes
Wir beginnen, indem wir aus der von der Kugel vorgegebenen Geometrie ein erstes Vektoren-Feld generieren. Es soll die auftreffenden Partikel per Zufallsmuster um die Kugel leiten.
Dazu holen wir uns als Erstes einen
Volumenerzeuger aus dem Menü
Volumen.
Anschließend legen wir das
Kugel-Objekt per Drag-and-drop über den
Objekt-Manager als
Unterobjekt in den
Volumenerzeuger. Im Moment ist dort als
Volumentyp noch das
Distanzfeld angegeben, deshalb baut der Volumene
rzeuger unsere Kugel derzeit noch aus Voxeln nach.
Um die Kugel stattdessen zu einem Vektoren-Feld zu machen, ändern wir den
Volumentyp über das zugehörige Menü einfach in den Typ
Vektor.
Die noch etwas grobe Unterteilung des Vektoren-Felds ändern wir nun noch über die
Voxelgröße. Ein Wert von 5 cm reicht vollkommen für unsere Zwecke.
Aus unserem vormaligen
Kugel-Objekt ist nun dank Volumenmesher ein radiales Feld von unzähligen Vektoren geworden.
Wenn wir etwas näher an das Vektoren-Feld heranzoomen, sehen wir die einzelnen Vektoren, die allesamt senkrecht zur Position auf der Kugeloberfläche stehen. Daraus resultierende Kräfte weisen also allesamt von unserer Kugel weg. Nicht wirklich das, was wir für die Umleitung der Partikel um die Kugel gebrauchen können.
Wir müssen uns also um zwei Dinge kümmern: Die Vektoren müssen parallel zur Oberfläche der Kugel liegen und zudem ein Zufallsmuster aufweisen, damit die Partikel auf der Oberfläche in verschiedenste Richtungen umgelenkt werden.
Für das Zufallsmuster sorgt ein
Zufallsfeld, das wir uns über das Menü
Erzeugen>Feld in unsere Szene holen.
Wir legen das
Zufallsfeld per Drag-and-drop über den
Objekt-Manager als Unterobjekt in den
Volumenerzeuger. Im Einstellungsdialog des Volumenerzeugers ist das
Zufallsfeld daraufhin als Ebene oberhalb unserer Kugel gelistet.
Ein Blick in die 3D-Ansicht zeigt, dass die beiden Vektor-Felder noch nicht so arbeiten, wie wir es benötigen. Das
Zufallsfeld soll schließlich auf die in der Liste unter ihm liegende Vektoren-Kugel wirken.
Um dies zu erreichen, selektieren wir den Eintrag des
Zufallsfelds in der Liste der
Objekte im
Volumenerzeuger und setzen in den darunter befindlichen Einstellungen für das
Zufallsfeld den
Erzeugungsraum auf
Objekte davor.
Jetzt wirkt das
Zufallsfeld wie gewünscht auf alle von der Kugel bereitgestellten
Vektoren. Nun müssen wir nur noch erreichen, dass die chaotisch verdrehten Vektoren entlang der Kugeloberfläche zeigen.
Der Verrechnungsmodus von
Zufallsfeld und Kugel scheint also noch nicht ganz zu passen. Über das
Modus-Menü in der Objekt-Liste wählen wir für das
Zufallsfeld die Verrechnungsmethode
Kreuz. Dieser Modus ist genau dafür gemacht, die Senkrechte zu zwei miteinander verrechneten Vektoren per Kreuzprodukt zu ermitteln.
Wie ein Blick in unsere 3D-Ansicht zeigt, verlaufen die Vektoren nach diesem Schritt wie gewünscht tangential um unsere Kugel.
Einsatz des Kraftfelds
Nun haben wir das erste Vektoren-Feld für den Weg der Partikel um die Kugel vorbereitet, doch leider nehmen die Partikel bislang noch keine Notiz von unseren Vektoren.
Damit die Vektoren unseres selbst erzeugten Feldes als Kräfte wirken können, benötigen wir ein sogenanntes
Kraftfeld-Objekt. Wir finden es im Menü
Simulieren>Kräfte.
Damit unser Vektor-Volumen als
Kraftfeld wirkt, öffnen wir den Einstellungsdialog des
Kraftfelds und ziehen den
Volumenerzeuger per Drag-and-drop über den
Objekt-Manager in das
Objekt-Feld des
Kraftfeld-Objekts.
Direkt beim Loslassen werden wir über ein kleines Auswahlmenü gefragt, ob der
Volumenerzeuger als
Punkt- oder
Volumenobjekt behandelt werden soll. Wir wählen natürlich die Option
Volumenobjekt.
Nun sollte unser vom
Volumenerzeuger definiertes Vektor-Volumen als Eintrag in der Liste der Kraftfelder stehen. Wie wir sehen, arbeitet das
Kraftfeld ebenfalls über Ebenen und Verrechnungsmodi, was die neu entstandenen Möglichkeiten mit dem
Kraftfeld-Objekt erahnen lässt.
Wenn wir die Animation nun per Abspielbutton starten, sehen wir, dass die Partikel nun von unserem Vektoren-Feld beeinflusst werden.
Das ist noch nicht ganz das erwünschte Ergebnis. Im Moment ist im
Kraftfeld-Objekt noch der
Geschwindigkeitstyp Zu Geschwindigkeit addieren aktiv, die Partikel werden also lediglich mit etwas mehr Schwung abgelenkt. Wir wollen aber, dass die Partikel ihre
Richtung gemäß der Vektoren ändern, was wir im Menü
Geschwindigkeitstyp entsprechend auswählen.
Nach dieser Änderung sieht die Animation schon besser aus. Viele Partikel suchen sich bereits ihren Weg über die Kugeloberfläche, einige andere werden aber von der Kugel weg abgelenkt. Es fällt außerdem auf, dass diese abgelenkten Partikel sich auf sehr seltsamen Bahnen bewegen.
Letzteres können wir sehr einfach beheben, indem wir im Einstellungsdialog des
Kraftfeld-Objekts den
Volumenerzeuger in der Objekt-Liste auswählen und in dessen Einstellungen auf der
Ebenen-Seite den
Samplemodus von
Nächster auf
Linear setzen. Dadurch wird nicht einfach zum nächsten Voxel auf- bzw. abgerundet, sondern ein linearer Mittelwert verwendet.
Nach dieser Änderung bewegen sich die von der Kugel abgelenkten Partikel schon wesentlich freier umher. Gleich sorgen wir dafür, dass auch diese Partikel auf der Kugeloberfläche bleiben.
Damit die Bahnen der an der Kugeloberfläche laufenden Partikel nicht zu filigran ausfallen, erhöhen wir im Einstellungsdialog des
Zufallsfelds noch die
Größe des zugrunde liegenden
Noise. Natürlich steht es jedem frei, noch ein bisschen weiter mit den Einstellungen des Zufallsfelds zu experimentieren.
Wenn wir das
Zufallsfeld-Objekt selektiert haben, können wir den Parameter
Größe übrigens über einen eigenen Greifer interaktiv in der 3D-Ansicht ändern.
Ich habe mich für eine
Größe von 300 % entschieden, damit der
Noise bei den Vektoren deutlich zu erkennen ist.
Aufbau des zweiten Vektoren-Feldes
Wie der Name unseres Kugel-Objekts „Kugel innen“ von Anfang an schon andeutet, soll es neben dem eben fertiggestellten Vektoren-Feld für die innere Kugel auch ein zweites Vektoren-Feld für eine äußere Kugel geben. Diese zweite, etwas größere Kugel soll dafür sorgen, dass eventuell reflektierte Partikel wieder zurück auf die Oberfläche der inneren Kugel geschickt werden.
Wir duplizieren uns dazu das Kugel-Objekt durch Ziehen mit gedrückt gehaltener
Strg- bzw.
Ctrl-Taste im
Objekt-Manager, belassen es als Unterobjekt des
Volumenerzeugers und geben ihm den Zusatz „aussen“, um beide Kugeln unterscheiden zu können. Dieser äußeren Kugel geben wir außerdem einen um 2 cm größeren
Radius als Spielraum für die Partikel mit.
Der
Volumenerzeuger hat aus der zweiten, äußeren Kugel auch gleich das entsprechende Vektor-Feld generiert und zu den bereits bestehenden Objekten hinzuaddiert.
In der Liste der Objekte im Einstellungsdialog des
Volumenerzeugers steht die äußere Kugel nun an oberster Stelle und würde als Letztes abgearbeitet. Doch wir wollen ja, dass die äußere Kugel zunächst von den Partikeln durchdrungen wird und die Partikel anschließend nicht mehr entlässt.
Bringen wir also etwas Ordnung in die
Objekt-Liste. Zunächst versetzen wir die „Kugel aussen“ an die unterste Stelle der Reihenfolge. Weil das
Zufallsfeld auf die darunter liegende „Kugel innen“ wirkt, dabei aber direkt nach der „Kugel aussen“ abgearbeitet werden soll, legen wir einfach einen
Ordner an, in den wir das
Zufallsfeld und die innere Kugel verschieben können. Dazu klicken wir auf den
Ordner-Button unterhalb der
Objekt-Liste.
Nun legen wir das
Zufallsfeld und die innere Kugel aus der
Objekt-Liste des
Volumenerzeugers per Drag-and-drop in diesen neuen Ordner.
Da die äußere Kugel, deren Vektoren senkrecht zur Kugeloberfläche stehen, als Erstes wirkt, werden auftreffende Partikel im Moment noch komplett reflektiert. Um das Vektoren-Feld der äußeren Kugel umzudrehen, verwenden wir einen
Volumenfilter, von denen uns auch für die Arbeit mit Vektoren einige zur Verfügung stehen. Wir finden das
Volumenfilter-Menü unterhalb der
Objekt-Liste und wählen uns daraus den
Invertieren Vektor-Filter.
Da wir möchten, dass der
Volumenfilter ausschließlich auf die Vektoren der äußeren Kugel wirkt, setzen wir ihn per Drag-and-drop direkt oberhalb der „Kugel aussen“.
Jetzt sollte alles wie gewünscht funktionieren. Ein Klick auf den Abspielbutton zeigt, dass alle Vektor-Felder korrekt eingestellt sind. Die Partikel treffen auf der Kugel auf und verteilen sich zufällig über die Oberfläche.
Wir können noch ein bisschen mehr Leben in die Partikelströme bringen, indem wir das
Noise-Muster des
Zufallsfelds animieren.
Dazu rufen wir den Einstellungsdialog des
Zufallsfelds auf und setzen eine
Anfangsgeschwindigkeit fest, in meinem Beispiel 50 %.
Die Partikelströme werden nun durch das animierte
Noise-Muster kürzer, sie brechen an mehr Stellen auseinander.
Umwandeln der Partikel zu Spline-Pfaden
Als Partikel können wir jetzt natürlich jedes beliebige – vorzugsweise kleine – Objekt auf die Reise über die Kugeloberfläche schicken. Eine Alternative ist, die Wege der Partikel automatisch nachzeichnen und in Spline-Pfade umwandeln zu lassen. Dafür benötigen wir das
Tracer-Objekt aus dem Menü
MoGraph.
Damit die Partikelströme beider
Emitter in Spline-Pfade umgewandelt werden, ziehen wir die beiden
Emitter-Objekte per Drag-and-drop über den
Objekt-Manager in das Feld
Tracer Verknüpfung im Einstellungsdialog des
Tracer-Objekts.
Weil die Emitter über die Zeit doch eine ganze Menge Partikel ausstoßen, begrenzen wir die Länge der vom
Tracer generierten Spline-Pfade. Im Einstellungsdialog des
Tracer-Objekts wählen wir dazu als
Grenze das
Ende ...
... und legen über den Parameter
Bilder die Länge der Spline-Pfade fest. Ich habe mich für eine
Länge von 100 Bildern entschieden. Niedrigere Werte ergeben entsprechend kürzere Spline-Pfade.
Nach einem Klick auf den Abspielbutton können wir nun beobachten, wie sich die vom
Tracer generierten Spline-Pfade animiert über die Kugeloberfläche ziehen.
Für das Aufmacherbild dieses Tutorials habe ich mir noch ein Duplikat des Kugel-Objekts erstellt und dieses mit einem roten Material bedacht. Mit Ausnahme des
Tracer-Objekts können wir die Sichtbarkeit aller anderen Objekte im
Objekt-Manager deaktivieren.
Um aus den vom
Tracer-Objekt generierten Spline-Pfaden dreidimensionale Objekte zu erzeugen, könnt ihr das
Tracer-Objekt zum Beispiel zusammen mit einem
Kreis-Objekt einem
Sweep-Objekt unterordnen. Achtet in diesem Fall aber auf die Anzahl der Partikel und deren Lebenszeit, da der Rechner sonst sehr schnell in die Knie geht ...
Interessantes Tutorial, Danke!
es ist immer wieder erstaunlich was sich in cinema 4d so tut :)
Vielen Dank für das Tutorial.
Vielen Dank für das Tutorial :)
Danke für das Tutorial.
Danke, interessanter Effekt! :-) Ginge auch etwas wie Einfallswinkel = Ausfallswinkel...?
Danke für das Tutorial !
Danke!
Danke.
Vielen Dank für das Tutorial.
vielen Dank für dein Tutorial
vielen Dank für dein Tutorial
vielen Dank für dein Tutorial