Road Generator XPresso Workshop Digitalproduction Ausgabe 01 : 2023

Straßen an Splines generieren? Mit XPresso? Machen wir heute! Hier ein Formula Spline.

Mit XPresso lassen sich kleine Setups sowie komplexe Vorgänge deutlich vereinfachen. Gerade bei der technischen Animation von z. B. ganzen Ma­schinen spielt XPresso seine Stärken voll aus. Man kann z. B. durch Setzen von 2 Key­frames einen Maschinen-Takt vorgeben und alle weiteren Maschinen-Teile an diesem Takt ausrichten/animieren, ohne dass man am Ende die Timeline voller unübersicht­licher Key­frames hat – und wenn man die Geschwindigkeit/Takt verändern möchte, ein großes Chaos ausbricht. Hier hilft es, sehr einfach den Takt in der XPresso-Schaltung zu ändern, und alles überträgt sich automatisch auf die weiteren Bereiche der Maschine. Auch das Drehen eines Autoreifens beim Bewegen des Autos, von z. B. links nach rechts, ist mit XPresso kein Problem.

Road Generator

Wenn man öfters Autos in Szene setzen muss, braucht man meistens dazu eine Straße. Straßen sind aber sehr unterschiedlich. Man kann sich eine einfache Landstraße vorstellen, oder vielleicht sogar eine mehrspurige Autobahn, oder eventuell gibt es auch eine Vorgabe von einem Kunden. Hier ist es dann hilfreich, wenn man sich solch eine Straße oder Autobahn einfach zusammenklicken kann und auch den Verlauf der Straße nach eigenen Vorstellungen gestaltet.

Anwendung im Alltag

Wie erwähnt, hilft gerade bei technischen Animationen XPresso enorm mit kleinen Schaltungen, um z. B. einen Reifen oder 2 Zahnräder in der richtigen Drehung/Geschwindigkeit zu animieren. Es lassen sich sogar einzelne Strings für z. B. einen Formula Effector zusammenbauen, die dann mit bestimmten Benutzerdaten schnell variiert werden können. Man kann z. B. bei einem Klon-Objekt eine bestimmte ID-Range mit einem Formula-Effektor ansprechen und diese ID-Range per XPresso festlegen. Das ist besonders hilfreich, wenn man eventuell viele Kloner mit dieser ID-Range in seiner Szene hat, um nicht jeden Kloner einzeln einstellen zu müssen.

Auch du kannst das!

Da XPresso ein Node-basiertes System ist, lassen sich in XPresso sehr einfache Schaltungen zusammenbauen/programmieren, ohne auch nur eine Zeile Code zu schreiben. Es ist einfach, schnell zu verstehen und zu lernen. Auf YouTube findet man viele Tutorials zu Cinema 4D und XPresso, wenn man es gerne weiter erlernen möchte. Hier findet ihr ein paar Beispiele: Maxon’s Cineversity (bit.ly/cineversity), Rocketlasso (bit.ly/
rocketlasso) und natürlich bei Expresso­MechanicTV (bit.ly/expresso_mechanic). Aber fangen wir von vorne an.

Erste Schritte

Math-Node und Rangemapper sind „King“. Diese beiden Nodes sind die am häufigsten eingesetzten Nodes. Mit dem Math-Node lassen sich einfache Berechnungen durchführen, wie Addieren, Subtrahieren, Dividieren und Multiplizieren. Der Rangemapper ist ein echtes Powertool. Mit ihm lässt sich z. B. ein Prozent-Slider auf eine Rotation anwenden. Bewegt man z. B. den Slider von 0–100 Prozent, so kann sich ein Reifen einmal um 360 Grad drehen. Die Umrechnung kann sogar noch über eine Splinekurve gesteuert werden und auch eine Module-Funktion beherrscht der Rangemapper.

Objekthierarchie

Als Erstes erstellen wir uns eine Objekthierarchie aus Nullobjekten. Das Haupt-Null­objekt benennen wir Strassenkonfigurator. Unter diesem Nullobjekt erstellen wir 4 weitere Nullobjekte mit den Namen Proxy, Straße, Markierung und Leitplanke.

Benutzerdaten

Als Nächstes bauen wir uns ein Benutzer­daten-Tag auf unserem Haupt-Nullobjekt Straßenkonfigurator. Mit dem Menüpunkt Benutzerdaten hinzufügen gelangen wir in das Benutzerdaten-Menü, um uns unsere Daten/Slider zu erstellen, die wir für unseren kleinen Straßen-Konfigurator benötigen. Hier können wir uns Gruppen/Tabs, Slider, Auswahlboxen, Dropdowns und so weiter nach unseren Bedürfnissen erstellen. Für unseren Strassenkonfigurator benötigen wir gleich eine ganze Reihe an Gruppen und Slidern. Als erstes erstellen wir eine Gruppe (Strassenkonfigurator), wo wir ein Linkfeld erstellen (Spline Pfad), um festzulegen, welches Spline wir für die Straße benutzen möchten, sowie einen Slider (Straßenbreite), um festzulegen, wie breit unsere Straße werden soll. Die Einheit stellen wir bei diesem Slider auf „cm“.

Wir erstellen eine zweite Gruppe mit dem Namen „Markierungen“. In dieser Gruppe erstellen wir drei weitere Gruppen mit den Namen (Markierung innen, Markierung mitte, Markierung aussen). In jeder dieser Gruppen erzeugen wir eine Checkbox mit dem Wert Boolean und nennen diese An/Aus, damit wir nicht benötigte Markierungen abschalten können. In der Gruppe Markierung innen erstellen wir eine weitere Checkbox mit dem Namen (1 oder 2 Linien), sowie einen Slider mit dem Namen (2-Linien Abstand), um die Markierung in der Fahrbahnmitte nach unseren wünschen einstellen zu können. In der zweiten Gruppe (Markierung mitte) erstellen wir 3 Slider mit dem Namen (Anzahl Markierungen, Abstand >2 und Offset). In der dritten Gruppe (Markierung aussen) erstellen wir einen Slider mit dem Namen (Abstand), um unsere Linien an die Strassenbreite anpassen zu können.

Wir erstellen eine dritte Gruppe mit dem Namen (Leitplanke). Hier erzeugen wir 2 Linkfelder mit dem Namen (Leitplanke Profil und Leitplankenhalterung), damit wir unseren Leitplanken-Spline und die Halterung
zuordnen und leicht austauschen können. Dazu brauchen wir noch einen Slider mit dem
Namen (Abstand Leitplankenhalterung), um wieder die Abstände nach unseren Bedürfnissen einstellen zu können. Dann erstellen wir 2 weitere Untergruppen mit den Namen Leitplanke innen und Leitplanke aussen. Bei beiden Gruppen erstellen wir wieder eine (An/Aus) Boolean Checkbox und je einen Slider mit dem Namen Distanz.

Jetzt sollten eure fertigen Benutzerdaten in etwa wie folgt ausschauen:

Objekte

Als Nächstes erstellen wir uns unsere Objekte, die wir für den Straßen-Konfigurator benötigen. Dazu zeichnen wir uns zuerst einen
Spline der den Verlauf unserer Straße abbilden soll in der Draufsicht.

Aus diesem Spline erstellen wir eine Instanz und noch eine weitere Instanz für unser Rail-Spline. Die Instanz von unserem Rail-Spline verschieben wir um ca. 5000 cm in der Y-Achse, schalten das Rail-Spline auf „nicht sichtbar“ und schieben beide Instanzen in der Hierarchie unter das Proxy Nullobjekt.

Unter dem Proxy-Null erstellen wir noch ein weiteres Null-Objekt mit dem Namen Proxy Leitplanke)für die Objekte und/oder Splines, die wir für unsere Leitplanke verwenden wollen. Hier erstellen wir uns ein Profil-Spline. Jetzt brauchen wir noch eine Halterung für die Leitplanke. Wir erstellen uns einen H-Spline und ordnen diesen einem Extrude-Nurbs zu.

Dann erstellen wir unter dem Straßen-Null ein Sweep-Objekt. Diesem Sweep ordnen wir einen Rechteck-Spline unter mit
ca. 1200 cm Breite und 0,1 cm in der Höhe. Wir erstellen von unserer Pfad Spline Instanz eine weitere Instanz und ordnen diese dem Sweep unter, sowie eine weitere Instanz
von unserer Rail-Spline Instanz. Die vielen Instan­zen der Splines benötigen wir, damit es später einfacher ist, unsere Pfad-Splines auszutauschen.

Jetzt gehen wir an die Markierungen: Hier erstellen wir ein Null-Objekt mit dem Namen Markierung innen und darunter einen Würfel mit ca. 20 cm Breite, 0,5 cm Höhe und 1000 cm Tiefe sowie 10 Unterteilungen in Z-Richtung. Diesen Würfel ordnen wir einem Klon-Objekt (Kloner A) unter mit den Attributen (Mode: Linear, Anzahl: 15, P.Z: 600 cm). Diesen Kloner ordnen wir einem weiteren Klon-Objekt (Kloner B) mit den Attributen (Mode: Grid, Anzahl: 2/1/1, Größe: 30cm/0cm/0cm) unter. Auf derselben Hierarchie-Ebene, in
der sich Kloner B befindet, erstellen wir
einen Spline-Wrap Deformer mit folgenden Attributen (Spline: „Unser Pfad Spline“,
Rail: „Unsere Rail-Spline Instanz“, Achse: +Z, Mode: Keep Length, End Mode: Clamp).

Das Null-Objekt Markierung innen kopieren wir, fügen es direkt darunter wieder ein und benennen es um in (Markierung mitte). Hier benennen wir das Klon-Objekt (Kloner A) um in Kloner A Links und kopieren diese direkt darunter und benennen die Kopie um in Kloner A Rechts. Das Null-Objekt (Markierung innen) kopieren wir ein weiteres Mal und benennen es um in Markierung Außen. In den beiden Klon-Objekten verschieben wir den Würfel in der Hierarchie eins nach oben und löschen Klon-Objekt Kloner A.

Dann erstellen wir unter dem Leitplanke-Null ein weiteres Null-Objekt mit dem Namen (Leitplanke innen). Hier ordnen wir ein Sweep-Objekt unter, darunter ein Connect Objekt, darunter ein Symetry Objekt und darunter eine Instanz von unserem Leitplanken-Profil Spline. Dem Sweep ordnen wir dann noch eine Instanz vom Pfad-Spline Instanz sowie eine Instanz der Rail­Spline Instanz unter, um unsere Leitplanke zu generieren. Unter dem Null-Objekt (Leitplanke innen) fügen wir ein Klon-Objekt hinzu mit dem Namen (Leitplanke Links A) und den Werten (Mode:Objekt, Instance Mode: Render Instance und Distribution: Step) für unsere Leitplankenhalterung. Von dem Klon­objekt erstellen wir uns eine Kopie und benennen diese in (Leitplanke Rechts A) um. Beiden Klone-Objekten fügen wir eine In­stanz von unserem Leitplanke-Halterung-Objekt hinzu. Jetzt kopieren wir das komplette Null-Objekt Leitplanke innen und benennen es um in Leitplanke außen. Die entsprechenden Unterobjekte mit (A) benennen wir ebenfalls in (B) um.

XPresso Proxy!

Jetzt haben wir alles, was wir benötigen, um eine Straße zu bauen, bzw. unsere XPresso-Schaltung zu bauen. Auf den drei Null-Objekten Straße, Markierung und Leitplanke erstellen wir je ein XPresso-Tag.

Wir öffnen nun das XPresso-Tag auf dem Null-Objekt Proxy. Hier ziehen wir als erstes unser Benutzerdaten-Tag hinein. Auf der Ausgangsseite des Tags benötigen wir den Spline Pfad. Dann ziehen wir unsere beiden Proxy Splines (Spline Instance Proxy und RailSpline Instance Proxy) in den XPresso Editor. Bei den Eingängen wählen wir jeweils Referenz Objekt aus und verbinden nun den Ausgang (Spline Pfad) mit den
Eingängen (Referenz Objekt) der beiden Spline-Nodes.

XPresso Straße

Mit einem Doppelklick öffnen wir das
XPresso-Tag auf unserem Straße-Nullobjekt und fügen wieder per Drag und Drop unser Benutzerdaten Tag ein. Dort wählen wir dann auf der Ausgangsseite die (Straßenbreite) aus. Jetzt ziehen wir unser (Profil Straße) Spline hinein und wählen auf
der Eingangsseite (Breite) aus und ver­binden die beiden Ports. Wenn wir jetzt
alles richtig gemacht haben, können wir
mit dem Slider im Benutzerdaten Tag (Straßenbreite) unsere Straße in der Breite einstellen.

XPresso Markierungen

Wir öffnen das XPresso-Tag auf dem Null-Objekt (Markierung), ziehen hier wieder unser Benutzerdaten Tag rein und fügen folgende Ports hinzu (Linienbreite und
Dashed Linie Länge). Nun ziehen wir das Objekt (Würfel kurz) in den Editor und fü-
gen die Eingangs-Ports (Size.X und Size.Z) hinzu. Den Port (Linienbreite) verbinden wir mit dem Port (Size.X) und den Port (Dashed Linie Länge) mit dem Port (Size.Z).

Auf dem Null-Objekt (Markierung innen) erstellen wir ein weiteres XPresso-Tag und öffnen dieses direkt. Hier ziehen wir wieder unser Benutzerdaten Tag rein und fügen folgende Ports hinzu (An/Aus, 2-Linien Abstand, 1 oder 2 Linien, Spline Pfad, Dashed Linie Abstand, Solid/Dashed und Dashed Linie Länge). Wir erstellen uns einen Condition Node aus dem XPresso Node – Logic Nodes. Den An/aus Port verbinden wir mit dem (Switch) Eingang an unserem Condition Node; Input 1 setzen wir auf den Wert „1“ und Input 2 auf den Wert „2“.

Jetzt ziehen wir uns das Null-Objekt (Markierung innen) rein und erstellen die beiden Ports (Editor Visibility und Renderer Visibility). Den Output Port von dem Condition Node verbinden wir mit den beiden gerade erstellten Ports unseres Null-Objekts (Markierung innen). Jetzt brauchen wir (Cloner B) im Editor, und erstellen hier 2 eingangs Ports für (Size und Count). Wir kopieren unseren Condition Node und erstellen zwei Reals2Vector Nodes aus dem XPresso/Adapter Menü. Wir erstellen eine Verbindung vom Ausgang (2-Linien Abstand) zum Eingang (X) vom Reals2Vector Node und von dort aus eine Verbindung zum (Cloner B) Eingang (Size). Vom Eingang (1 oder 2 Linien) ziehen wir eine Verbindung zum Condition Eingang (Switch). Von dort aus zum Eingang (X) der zweiten Reals2Vector Nodes und von dort aus zum (Cloner B) Eingang (Count).

Spline Node und Kloner

Nun erstellen wir uns einen Spline Node aus dem XPresso/General Menü und verbinden unseren Ausgang (Spline Pfad) mit dem Eingang (Object) des Spline Nodes. Als Nächstes brauchen wir einen Math Node aus dem XPresso/Calculate Menü und stellen diesen auf „Divide“. Am Spline Node erstellen wir den Ausgang (Length) und verbinden diesen mit dem ersten Input Port des Math Nodes. Am zweiten Input Port des Math Nodes verbinden wir unseren Ausgang (Dashed Linie Abstand) unseres Benutzerdaten-Tags. Jetzt ziehen wir das Kloner-Objekt (Cloner A) in den Editor und erstellen drei Eingänge für (Count, P.Z und S.Z). Den Eingang Count verbinden wir mit dem Ausgang unseres Math Node’s und den Eingang P.Z mit dem Ausgang – Dashed Linie Abstand.

Wir kopieren uns den Math Node und verbinden Input 1 mit dem Ausgang (Dashed Linie Abstand) und Input 2 mit dem Ausgang (Dashed Linie Länge). Wir erstellen wieder einen Condition Node und Eingang (Switch) verbinden wir mit Ausgang (Solid/Dashed). Input 1 verbinden wir mit dem Ausgang des eben erstellten Math Nodes; und Input 2 setzen wir aus den Wert (1). Den Ausgang des Condition Nodes verbinden wir mit dem Eingang (S.Z) am (Cloner A).

Auf dem Null-Objekt (Markierung Mitte) erstellen wir wieder ein weiteres XPresso-Tag und öffnen dieses direkt. Hier ziehen wir wieder unser Benutzerdaten Tag rein und fügen folgende Ports hinzu (An/Aus, Spline Pfad, Dashed Linie Abstand, Abstand>2, Anzahl Markierungen und Offset). Wir erstellen uns einen Condition Node aus dem XPresso Node/Logic Nodes. Den An/Aus Port verbinden wir mit dem (Switch) Eingang an unserem Condition Node und Input 1 setzen wir auf den Wert „1“ und Input 2 auf den Wert „2“. Jetzt ziehen wir uns das Null-Objekt (Markierung mitte) rein und erstellen die
beiden Ports (Editor Visibility und Renderer Visibility).

Den Output Port von dem Condition
Node verbinden wir mit den beiden gerade erstellten Ports unseres Null-Objekts. Wir ziehen uns (Kloner A L) und (Kloner A R) in den Editor und fügen bei beiden die Eingänge (P.Z und Count) hinzu. Die Ports (P.Z) der beiden Kloner verbinden wir mit dem Eingang (Dashed Linie Abstand). Jetzt brauchen wir wieder einen Spline Node mit einer Verbindung von (Spline Pfad) zu (Objekt). Jetzt brauchen wir wieder einen (Math) Node mit der Einstellung (Divide) und verbinden den oberen Input mit dem Eingang (Length) des Spline Nodes und den unteren Input mit dem Ausgang (Dashed Linie Abstand) unseres
Benutzerdaten-Tags.

Als Nächstes erstellen wir zwei (Reals2Vector) Nodes, einen (Negate) Node und ziehen die beiden Kloner (Cloner Left und Cloner Right) in den Editor wo wir jeweils drei Eingänge erstellen mit (Size, Count und P.X). Den Ausgang (Abstand>2) verbinden wir an einem (Reals2Vector) Node am (X) Port und den Output Port verbinden wir
bei den beiden Klon-Objekten am Eingang (Size). Den Eingang (Anzahl Markierungen) verbinden wir am Port X des anderen (Reals2Vector) Node. Dessen Ausgang verbinden wir mit dem (Count) Eingang der beiden Kloner Nodes. Den Ausgang (Offset) verbinden wir einmal direkt mit dem Eingang (P.X) des (Cloner Right) und bei (Cloner Left) setzen wir unseren (Negate) Node dazwischen.

Auf dem Null-Objekt (Markierung außen) erstellen wir wieder ein weiteres XPresso-Tag und öffnen dieses. Hier ziehen wir wieder unser Benutzerdaten Tag rein und fügen
folgende Ports hinzu (An/Aus, Straßenbreite, Abstand und Linienbreite). Wir erstellen uns einen Condition Node aus dem XPresso
Node/Logic Nodes. Den An/aus Port verbinden wir mit dem (Switch) Eingang an unserem Condition Node und Input 1 setzen wir auf den Wert „1“ und Input 2 auf den Wert „2“. Jetzt ziehen wir uns das Null-Objekt (Markierung außen) rein und erstellen die beiden Ports (Editor Visibility und Renderer Visibility). Den Output Port von dem Condition Node verbinden wir mit den beiden gerade erstellten Ports unseres Null-Objekts. Als Nächstes brauchen wir einen (Math) Node im Modus (subtract). Den Port Straßenbreite verbinden wir mit dem oberen Port am (Math) Node und den Port (Abstand) mit dem unteren Port am (Math) Node. Den Ausgang des (Math) Nodes verbinden wir mit einem neuen (Reals2Vector) Node am X-Port. Wir ziehen Cloner C in den Editor und erstellen uns ein Port für Size. Diesen verbinden wir mit dem Ausgang des (Reals2Vector) Nodes. Wir benötigen noch (Cube 2) im Editor mit einem Eingangsport Size.X und verbinden diesen mit dem Ausgang Linienbreite.

XPresso Leitplanke

Auf dem Null-Objekt Leitplanke öffnen wir unser XPresso-Tag. Hier ziehen wir wieder unser Benutzerdaten Tag rein und fügen
folgende Ports hinzu (Profil, Halterung, Abstand Halterung und Spline Pfad). Wir ziehen aus der Hierarchie Leitplanke innen und außen jeweils das Leitplanke Profil-Instanz-Objekt in den Editor. Beide Instanz Nodes bekommen einen Eingang (Reference Objekt) und diesen verbinden wir mit dem Eingang (Profil). Jetzt ziehen wir aus allen Klon­objekten unsere Leitplanken Instanzen in den Editor und wählen als Eingang (Refe­rence Objekt). Diesen Eingang verbinden wir mit dem Ausgang (Halterung). Jetzt ziehen wir unsere 4 Klonobjekte in den Editor und fügen jeweils 3 Eingänge (Step, Rail und Object) hinzu. Die Eingänge (Step) verbinden wir mit dem Ausgang (Abstand Halterung). Die Eingänge (Objekt) verbinden wir mit dem Ausgang (Spline Pfad). Für die Eingänge (Rail) benötigen wir noch unser (RailSpline Instance Proxy) Objekt im Editor mit einem Ausgang (Objekt).

Auf dem Null-Objekt (Leitplanke innen) erstellen wir wieder ein weiteres XPresso-Tag und öffnen dieses. Hier ziehen wir wieder unser Benutzerdaten Tag rein und fügen folgende Ports hinzu (An/Aus und Abstand). Wir erstellen uns einen Condition Node aus dem XPresso Menü/Logic Nodes.

Den An/Aus Port verbinden wir mit dem (Switch) Eingang an unserem Condition
Node und Input 1 setzen wir auf den Wert „1“ und Input 2 auf den Wert „2“. Nun ziehen wir uns das Null-Objekt (Leitplanke innen) rein und erstellen die beiden Ports (Editor Visibility und Renderer Visibility). Den Output Port von dem Condition Node verbinden wir mit den beiden gerade erstellten Ports unseres Null-Objekts.

Jetzt ziehen wir das Objekt (Profil In­stance P A) mit einem Eingang (Position.X) sowie die beiden Kloner (Leitplanke Links A und Leitplanke Rechts A) mit jeweils einem Eingang (P.X) in den Editor. Wir erstellen uns noch einen (Negate) Node und verbinden den Eingang mit dem Ausgangs Port (Abstand). Den Output Port vom Negate Node verbinden wir mit dem erstellten Eingang vom (Profil Instance P A) sowie dem Klon-Objekt (Leitplanke Rechts A) am (P.X) Port. Das Klon-Objekt (Leitplanke Links A) verbinden wir direkt mit dem Ausgangs Port (Abstand).

Auf dem Null-Objekt (Leitplanke außen) erstellen wir wieder ein weiteres XPresso-Tag und öffnen dieses. Hier ziehen wir wieder unser Benutzerdaten Tag rein und fügen folgende Ports hinzu (An/Aus, Straßenbreite und Abstand). Wir erstellen uns einen Condition Node aus dem XPresso Menü/Logic Nodes. Den An/Aus Port verbinden wir mit dem (Switch) Eingang an unserem Condition Node und Input 1 setzen wir auf den Wert „1“ und Input 2 auf den Wert „2“.

Nun ziehen wir uns das Null-Objekt (Leitplanke außen) rein und erstellen die beiden Ports (Editor Visibility und Renderer Visibility). Den Output Port vom Condition Node verbinden wir mit den beiden, gerade erstellten Ports unseres Null-Objekts.

Wir erstellen uns einen Math-Node mit der Einstellung (divide). Bei Input 1 erstellen wir eine Verbindung mit dem Port (Straßenbreite) und bei Input 2 geben wir den Wert „2“ ein. Wir erstellen einen weiteren Math Node mit der Einstellung (add) und verbinden Input 1 mit dem Output von dem zuvor erstellten Math Node. Input2 verbinden wir mit dem Port (Abstand).

Wir ziehen das Objekt (Profil Instance P B) in den Editor mit einem Port in (Posi­tion.X) und verbinden diesen mit dem Ausgang vom Math:Add Node. Jetzt brauchen wir noch unsere beiden Klone-Objekte (Leitplanke Links B und Leitplanke Rechts B) mit je einem Eingang (P.X). Eingang (Leitplanke Links B) verbinden wir direkt mit dem Ausgang vom Math:Add Node und bei (Leitplanke Rechts B) schalten wir noch einen (Ne­gate) Node dazwischen.

Finale!

Unser kleines Tutorial ist hier nun fertig. Mit dem Wissen könnt Ihr nun euren Road­generator selbst erweitern. Ihr könnt euch
z. B. mit ähnlichen Schritten, wie wir sie zusammen angewendet haben, noch einen Bordstein oder Gehweg hinzufügen.

Oder Ihr schaut bei „Wer das Ganze schneller will…“ – dort könnt Ihr auch
meinen Road Generator mit weiteren Funk­tionen und prozeduralen Materialien für
Octane erwerben.

Fazit

Auch wenn sich das XPresso-System in Cinema 4D nicht weiterentwickelt, bleibt es ein fester Bestandteil in Cinema 4D, um sich kleine Helfer oder komplexe Schaltungen zu bauen.

Gerade bei technischen Animationen ist XPresso unverzichtbar – und dabei ist es nicht schwer, XPresso zu lernen. Mit etwas logischem Denken und etwas Erfahrung mit den einzelnen Nodes bzw. dessen Funk­tionen lassen sich sehr schnell komplexe Schaltungen oder Setups erstellen.

Zum Onlineartikel der Digitalproduction geht es unter folgrndem Link: https://www.digitalproduction.com/autor/daniel-mozbaeuchel/

Weitere tolle Beiträge gibt es direkt unter Digitalproduction

Wir benutzen Cookies um die Nutzerfreundlichkeit der Webseite zu verbessen. Durch Deinen Besuch stimmst Du dem zu.