Erstellen eines autonomen Türsystems mit Xpresso in Cinema 4D

In diesem Tutorial lernen Sie, wie Sie mit dem Xpresso-System in Cinema 4D ein autonomes Türsystem erstellen. In diesem einführenden Tutorial lernen Sie die Grundlagen des Xpresso-Systems und die Anwendung seiner eigenen Module kennen und können dieses Wissen an jede andere kreative Idee anpassen.


Endgültige Effektvorschau


Schritt 1

Beginnen wir mit dem Erstellen einer Etage und einer Kugel. Dies sind sehr grundlegende Formen, die Sie unter den Menüs finden können. Ich empfehle Ihnen, das "Bodenobjekt" zu verwenden, anstatt ein "ebenes Objekt" zu erstellen, da das Bodenobjekt Ihnen eine unendlich lange Oberfläche bietet.


Schritt 2

Erstellen Sie nun eine geneigte Fläche. Denken Sie einfach, erstellen Sie einfach ein neues Box-Objekt und machen Sie es bearbeitbar (Tastenkombination: C-Taste). Senken Sie eine der Kanten, um eine Rampe zu erhalten.


Schritt 3

Weisen Sie nun allen drei Objekten den Tag "Rigid Body" zu: Boden, Kugel und Rampe.


Schritt 4

Da der Boden und die Rampe wie stationäre Objekte wirken, müssen Sie deren Dynamik ausschalten. Klicken Sie dazu auf den Tag "Rigid Body", den Sie zuvor zugewiesen haben, und ändern Sie die zuvor genannte Einstellung in "Aus"..


Schritt 5

Erstellen Sie nun ein "Nullobjekt" und weisen Sie ihm dann ein "Xpresso-Tag" zu.


Schritt 6

Bevor wir uns für Xpresso entscheiden, müssen wir die Türen erstellen, die wir steuern werden. Erstellen Sie also ein neues Box-Objekt und formen Sie es nach Ihren Wünschen. Kopieren Sie nun die Tür, indem Sie ein Symmetrieobjekt verwenden. Wenn Sie also eine Seite der Tür bewegen, sagen wir nach rechts. Die andere Seite bewegt sich nach links.


Schritt 7

Doppelklicken Sie nun auf das zuvor zugewiesene Xpresso-Tag. Sie sehen ein Xpresso-Editorfenster. In der linken Spalte befinden sich zwei Registerkarten X-Manager und X-Pool. Wechseln Sie zu X-Pool. Unter den "Systembedienern" sehen Sie "Xpresso". Dies werden wir in diesem Tutorial verwenden. Alle Module sind in den entsprechenden Kategorien aufgeführt.


Schritt 8

In diesem Xpresso-System interagieren Ball und Türen auf eine Art und Weise. Also müssen wir sie in den Xpresso-Editor bringen. Ziehen Sie dazu einfach das Sphere-Objekt und zunächst eine der Türen (aber nur das Cube-Objekt, nicht die gesamte Tür mit dem Symmetrieobjekt).


Schritt 9

Wenn sich das Ballobjekt der Tür nähert, öffnet sich die Tür langsam. Dazu müssen wir zunächst die Entfernung zwischen diesen beiden Objekten berechnen. Wir verwenden einfach das Modul "Entfernung" in der Kategorie "Berechnen". Finden Sie es einfach und ziehen Sie es in den Arbeitsbereich.


Schritt 10

Jetzt gibt es zwei Eingänge und einen Ausgang im Modul "Distance". Was wir tun müssen, sind zwei Eingaben. Dies ist die Position des Kugelobjekts und der Tür. Um diese Informationsbündel sowohl von der Kugel als auch von der Tür zu erhalten, müssen wir eine Ausgabe darauf erstellen.


Klicken Sie dazu einfach auf die rote Ecke des Kugelobjekts und aktivieren Sie "globale Position x". Wie Sie entscheiden, welche Koordinate Sie für die globale Position (x, y oder z) verwenden müssen, hängt vom Koordinatendrehpunkt im Sucher ab. Links unten befindet sich ein kleiner Drehpunkt, der Ihnen hilft.


Schritt 11

Wir haben also die beiden Ausgänge der Objekte, jetzt müssen wir diese Informationen zur Berechnung an das Distanzmodul leiten. Klicken Sie einfach auf den roten Punkt und ziehen Sie, während Sie die Maustaste gedrückt halten, bis Sie über den blauen Eingabepunkt kommen. Das ist ziemlich intuitiv.


Schritt 12

Die Bewegung der Tür wird entsprechend dem Abstand zwischen Kugel und Tür ausgelöst. Wir müssen also eine bestimmte Entfernung bestimmen, und wenn der Ball diese Entfernung überschreitet, beginnt die Tür sich zu öffnen. Je näher der Ball kommt, desto weiter öffnet sich die Tür. Dazu müssen wir das "Compare" -Modul als Auslöser verwenden. Wieder haben wir zwei Eingänge. In diesem Beispiel kommt eine der Eingaben von der Entfernungsmessung und die andere Eingabe wird von uns vorgegeben.


Schritt 13

Klicken Sie nun auf das Modul "Compare" und springen Sie unter dem Menü Attribute auf die Registerkarte Node. Es gibt eine Option namens "Funktion". Dieser bestimmt die Vergleichsregeln. Da wir möchten, dass es ausgelöst wird, wenn eine Entfernung verletzt wird, müssen wir " <= " or " < " .


Die erste steht für "Weniger oder gleich" und die zweite steht für "Weniger". Wählen Sie eine beliebige aus, die keinen großen Unterschied macht. Und unter der Registerkarte "Parameter" gibt es "Input2", der vorbestimmt wird. Dies ist also der Abstand zwischen der Kugel und der Tür, bevor das Modul "Vergleichen" ausgelöst wird. Es hängt von Ihrer Animationsszene ab, die ich verwendet habe "800"Aber Sie können es jederzeit ändern, so dass Sie etwas zuweisen 800.


Schritt 14

Holen Sie sich das Modul "Bedingung" aus der Kategorie "Logik". Dieser hat drei Eingänge; "Switch" dient zum Auslösen dieses Moduls. Wenn Sie es eingeben mit "1"(was in der Logik für" wahr "steht), ändert sich von" Eingang1 "zu" Eingang2 ". Deshalb müssen wir den Ausgang des Moduls" Compare "mit dem Eingang" Switch "des Moduls" Condition "verbinden. Daher können wir dieses Modul immer dann auslösen, wenn der vorgegebene Abstand zwischen der Kugel und der Tür überschritten wird. Wenn dieser Abstand überschritten wird, gibt das Modul "Compare" "1" aus, was "wahr" bedeutet..


Schritt 15

So weit so gut, jetzt müssen wir die Werte für "Input1" und "Input2" auf dem "Condition" -Modul ermitteln. Diese Werte entsprechen der Position der Tür auf der "Z-Achse" (hier ist es die "Z-Achse" in meiner Szene, aber wie ich bereits erwähnt habe, hängt es davon ab, wie Sie Ihre Szene entworfen haben, also müssen Sie die überprüfen Anweisungen, bevor Sie festlegen, auf welcher Achse Sie Ihre Tür verschieben möchten). Die erste Eingabe muss also die Ausgangsposition der Tür auf der Z-Achse sein. Hier ist es "124.935"Für mich. (Auch der Achsendrehpunkt, den ich erwähnt habe, ist auf dem Screenshot sichtbar, der grüne, blaue und rote Drehpunkt auf der linken Seite.) Verwenden Sie diesen Wert zuerst für die Eingabe unter der Registerkarte" Parameter ".


Schritt 16

Der knifflige Teil bestimmt nun die zweite Eingabe, die sich ändert, wenn sich der Ball der Tür nähert. Dieser Wert muss also aus der Entfernung zwischen der Kugel und der Tür stammen. Was wir jedoch brauchen, ist ein steigender Wert. Da wir einen abnehmenden Wert zwischen Ball und Tür haben, müssen wir ihn irgendwie umwandeln.


Hier müssen wir das Modul "Invert" verwenden. Dieses Modul wandelt die hohen Werte in niedrige Werte um. Wenn also die Eingabe zunimmt, nimmt die Ausgabe ab. Holen Sie es aus der Kategorie "Berechnen" und verbinden Sie den Ausgang des Moduls "Distance" mit dem Eingang des Moduls "Invert".


Schritt 17

Wenn Sie ein "Ergebnis" -Modul an den Ausgang des "Invert" -Moduls anschließen, werden Sie feststellen, dass der Wert, den Sie erhalten, extrem niedrig ist. Also muss man es irgendwie vergrößern. Dazu müssen Sie in der Kategorie "Berechnen" das Modul "FloatMath: Hinzufügen" verwenden.

Zunächst sieht es aus wie der Additionsoperator, aber Sie können seine Funktion ändern und als Multiplikator verwenden. Machen Sie daraus einen Multiplikator und verbinden Sie den Ausgang von "Invert" mit dem Eingang des Moduls "FloatMath". Dann als "Float-Wert" einen Wert eingeben "50000". Sie können es immer wieder anpassen, wann immer Sie wollen. Dieser Wert ist die Zahl, die Sie mit dem Eingang multiplizieren, den Sie vom Modul" Invert "erhalten. Der Ausgang des Moduls" Invert "ist zu niedrig, so dass eine Multiplikation mit einer großen Zahl erforderlich ist nutze es.


Schritt 18

Jetzt stehen wir vor einem weiteren Problem, dass die Ausgabe des "FloatMath" -Moduls so hohe Werte erreichen wird, dass sich die Tür zu weit entfernt. Also müssen wir diesen Ausgang festklemmen und die Grenzen bestimmen. Fügen Sie dazu das Modul "Clamp" hinzu, das sich in der Kategorie "Berechnen" befindet, und verbinden Sie dann den Ausgang von "FloatMath" mit dem Teil "Value" des Moduls "Clamp".

Nun müssen wir die Grenzen festlegen, die geklemmt werden sollen. Die min. Der Wert muss die anfängliche Position der Z-Achse der Tür sein. Das war "124.935" und der Max. Wert ist die Endposition der Tür auf der Z-Achse (ich habe "verwendet")300 " für die max.)


Schritt 19

Der Ausgang des "Clamp" -Moduls ist der zweite Eingang des "Condition" -Moduls. Dies ist der sich ändernde Wert von 124.935 bis 300.


Schritt 20

Jetzt haben wir am Ende einen Wert, der von 124,935 auf 300 steigt, wenn der Ball näher als 800 cm an das Türobjekt herankommt. Nun müssen wir diese Ausgabe als Eingabe für die "globale Position der Tür" verwenden. Z Ziehen Sie dazu einfach das Türobjekt (wieder nur das Cubeobjekt im Symmetrieobjekt, nicht die gesamte Tür) und klicken Sie auf die linke blaue Ecke, um "Globale Position. Z" hinzuzufügen. Verbinden Sie dann den Ausgang von "Condition" mit dem neuen Eingang des Türobjekts (auf dem Screenshot "Cube.1" genannt).


Schritt 21

Das endgültige Aussehen des Arbeitsbereichs finden Sie unten. Um das Xpresso-System zu initialisieren, müssen Sie die Xpresso-Berechnung starten. Was auch auf dem Screenshot zu sehen ist. Bisher habe ich erklärt, wie man eine der Türen steuert. Duplizieren Sie einfach das gesamte Knotensystem und verwenden Sie die neuen Türobjekte, um die beiden anderen Türen zu steuern.