Asset-Kapseln

Inhalte dieser Seite


Die Anzahl und der Funktionsumfang der Szenen-Nodes wächst seit der ersten Veröffentlichung mit jedem Release stark an. Dennoch gibt es noch Objekte und Funktionen, die aktuell noch nicht als Nodes verfügbar sind. Andererseits lassen sich bereits jetzt Funktionen und Generatoren mit Nodes konfigurieren, die es in der klassischen Cinema 4D-Umgebung nicht gibt. Was wäre daher, wenn wir die Stärken beider Systeme kombinieren könnten?
Dies funktioniert tatsächlich, wenn man einige Spielregeln befolgt und seine Node-Systeme entsprechend vorbereitet.


Assets im Objekt-Manager nutzen

Sie finden bereits einige Assets, die sich für die direkte Nutzung in der klassischen Cinema 4D-Umgebung eignen im "Asset-Browser". Schauen Sie z. B. einmal in die Rubrik „Geometriegenerator“ und navigieren Sie dort zum „Atom Array“. Diese Funktion ähnelt dem klassischen Atom Array-Generator, bietet jedoch noch zusätzliche Optionen, z. B. zum direkten Zuweisen von Materialien oder zum Editieren der Länge der Zylinder-Elemente.

Versuchen Sie daher, dieses Asset aus dem "Asset-Browser" direkt in den "Objekt-Manager" zu ziehen. Wie durch Zauberhand erscheint dort nun ein Atom Array-Objekt und auch der "Attribute-Manager" zeigt die Einstellungen dieses Node-Assets an. Wenn Sie jetzt noch ein beliebiges Polygon-Objekt unter dem Atom Array gruppieren, beginnt dieses zu arbeiten. Sie merken also zu keiner Zeit, dass Sie es hier mit einer Funktion zu tun haben, die nur auf Nodes basiert.

Probieren Sie dies gleich noch einmal aus, z. B. indem Sie das „Mesh-Grundobjekt“ oder das „Spline-Grundobjekte“-Asset aus dem "Asset Browser" in den "Objekt-Manager" ziehen. Auch diese Node-Funktionen werden dort wie klassische Objekte angezeigt und können z. B. mit klassischen Objekten kombiniert werden. Sie erkennen nun sicherlich, welche Möglichkeiten sich dadurch auftun. Sie können Ihre ganz eigenen Objekte und Generatoren mit Nodes konstruieren und mit klassischen Cinema 4D-Objekten direkt im "Objekt-Manager" kombinieren. Als Nutzer solcher Assets müssen Sie dafür keine Kenntnisse über Nodes haben und können alle Funktionen über die bekannten Manager bedienen.


Eigene Asset-Kapseln erstellen

Falls Sie ein wenig mit dem "Asset-Browser" experimentieren und auch versuchen, andere Node-Assets in den "Objekt-Manager" zu ziehen, werden Sie merken, dass dies nicht mit beliebigen Assets oder Nodes funktioniert. Es müssen gewisse Spielregeln beim Bau solcher Assets eingehalten werden und auch nicht alle Funktionen sind aktuell direkt mit dem "Objekt-Manager" und den klassischen Cinema 4D-Funktionen kompatibel.

Es reicht daher auch nicht, einfach ein Asset aus einer gruppierten Node-Funktion zu generieren. Es müssen spezielle Asset-Kapseln erzeugt werden.

Eine Asset-Kapsel ist im Prinzip identisch mit einem normalen Asset und wird auch auf dem gleichen Weg erstellt. Es enthält jedoch bestimmte Elemente, die aktuell vom "Objekt-Manager" und der klassischen Cinema 4D-Umgebung ausgewertet werden können.
Hierzu zählen:

Die Nutzung von Assets mit Verteilungen, Effektoren oder Feldern ist aktuell noch nicht möglich.

Die Nutzung von Asset-Kapseln hat aber auch Nachteile, bzw. ist momentan noch nicht für alle Szenarien geeignet. So hat z. B. die Verwendung von XPresso zur Verknüpfung von Parametern und für mathematische Berechnungen zwischen Benutzerdaten und Objekt-Parametern nach wie vor Vorteile. Die Nutzung von Asset-Kapseln im "Objekt-Manager" und in Kombination mit klassischen Objekten ist nur durch eine interne Konvertierung möglich, die Rechenzeit kostet. Komplexe Assets können daher nicht den Geschwindigkeitsvorteil von Nodes ausspielen, der ansonsten bei der nativen Arbeit im "Node-Editor" zu beobachten ist.

Besonders reizvoll ist jedoch die Nutzung von Asset-Kapseln für die Erstellung von parametrischen Objekten und zur Bearbeitung von Splines und Polygon-Objekten.


Eine Kapsel mit Modellierfunktionen erzeugen

Um Modellierfunktionen als Kapsel zu generieren, muss der „Geometriemodifikationsgruppe“-Node als Basis verwendet werden. Diese Gruppe stellt einen Ein- und Ausgang für Geometrie zur Verfügung.

Erstellen Sie eigene Modellierfunktionen mit der Geometriemodifikationsgruppe als Basis.

Zum Testen der Schaltung können hier noch andere Nodes außerhalb der Gruppe angeschlossen werden, für das Umwandeln in ein Asset wird später jedoch nur die Gruppe selbst benötigt.
Wenn Sie der Nutzerin oder dem Nutzer Einstellmöglichkeiten über den "Attribute-Manager" zur Verfügung stellen möchten, gibt es dafür zwei Möglichkeiten:

Lassen Sie uns dies am Beispiel einer einfachen Modellierfunktion einmal durchspielen. Das Prinzip lässt sich dann auch auf alle anderen Assets und Asset-Kapseln übertragen.

Erstellen Sie dafür eine „Geometriemodifikationsgruppe“ und öffnen Sie diese durch Klick auf ihr Ordnersymbol in der Kopfzeile. Entscheiden Sie sich nun für einen einfachen Modellierbefehl, wie z. B. den „Fase“-Node und ziehen Sie diesen aus dem "Asset-Browser" in die Gruppe. Dieser Node bietet zwei Modi an. Wir entscheiden uns hier für die „Typ“-Einstellung „Kanten“, um Kanten abzurunden.

Eine Nutzerin oder ein Nutzer soll später die Möglichkeit haben, den Radius der Abrundung (Parameter „Größe“) und die Unterteilung der Abrundung („Parameter „Unterteilung“) selbst einzustellen. Diese beiden Einstellungen müssen wir daher nun an der Eingangsseite der Gruppe zur Verfügung stellen. Sie fügen daher in einem ersten Schritt Eingänge am „Fase“-Node für diese Parameter hinzu, indem Sie einen Rechtsklick auf den Node ausführen und dann über den Menüpunkt „Eingang hinzufügen“ zu den gewünschten Parametern navigieren. Wie im obigen Absatz schon erläutert, ziehen Sie dann nacheinander diese neuen Eingang-Ports zur linken Seite der Gruppe.


Fügen Sie am Fase-Node neue Eingänge für die Parameter hinzu, die Sie im Attribute-Manager verfügbar machen wollen.
Durch das Ziehen einer Verbindung von einem Eingangsport zum Eingangsbereich der Gruppe kann dort per "Neuen Eingang hinzufügen ein neuer Port erstellt werden..

Wie wäre es, der Nutzerin und dem Nutzer auch noch andere Einstellmöglichkeiten an die Hand zu geben, wie z. B. eine Eingabemöglichkeit für den Namen einer gespeicherten Kantenselektion, um den Modellierbefehl nur auf ausgewählte Kanten beschränken zu können? Zusätzlich könnte auch eine Invertierungsfunktion für die angegebene Selektion hilfreich sein, um alle Kanten zu runden, bis auf diejenigen, die in der angegebenen Selektion liegen. Hierzu würden wir ein Text-Eingabefeld und eine Bool-Option als Eingänge benötigen. Diese legen wir über den "Ressourcen-Editor" an.


Öffnen Sie den Ressource-Editor, um weitere Ports anzulegen oder das Nutzerinterface zu optimieren.

Führen Sie dazu einen Rechtsklick in den leeren Bereich der geöffneten Gruppe aus und wählen Sie „Ressource bearbeiten…“ aus dem Kontextmenü. In der linken, oberen Auflistung können Sie alle Parameter der Gruppe einsehen. Für uns interessant sind dabei die Einträge unter der Gruppe „Eingänge“. Hier sollen in der Regel die von Ihnen angelegten Eingänge auftauchen. Die beiden vom „Fase“-Node verlinkten Parameter erscheinen jedoch unter der „Basis“-Gruppe. Dies funktioniert zwar auch, führt dann jedoch bei der Darstellung im Attribute-Manager ggf. zu einer Unterteilung der Parameter in Gruppen. Wir ziehen daher die beiden Einträge für „Größe“ und „Unterteilung“ einfach per Drag & Drop unter die „Eingänge“-Rubrik. Auf diese Weise lassen sich auch Eingänge umsortieren, wenn Sie die Parameter in einer anderen Reihenfolge im Attribute-Manager präsentieren möchten.


Die Reihenfolge und Gruppierung von Ports kann im Ressource-Editor einfach per Drag&Drop verändert werden.

Der "Ressource-Editor" bietet dafür auch eine Vorschau auf seiner rechten Seite an. Diese funktioniert jedoch nur, wenn auch die Gruppe funktionsfähig ist, für die die Ressource bearbeitet wird. Aktuell ist z. B. der „Geometrie“-Ausgang der Gruppe noch nicht verkabelt. Wir holen dies daher direkt nach. Schließen Sie den "Ressource Editor", ziehen Sie vom „Geometrie“-Ausgang des „Fase“-Nodes eine Verbindung zum „Geometrie“-Ausgang der Gruppe und öffnen Sie dann den "Ressource-Editor" für die Gruppe erneut. Nun erhalten Sie auf der rechten Seite eine Vorschau des Interfaces, so wie es im "Attribute-Manager" angezeigt wird. Dazu gehören auch die Vorschaubereiche für Shader und Materialien, sowie die "Basis"-Rubrik der Einstellungen. Für uns interessant ist jedoch in diesem Fall nur der untere Teil mit den „Eingängen“, wo wir nun unsere beiden Parameter sehen können.


Die rechte Seite des Ressource-Editors zeigt einen Vorschaubereich an, in dem wir die Anordnung, die Datentypen und die Bedienelemente unserer Eingänge überprüfen können..

Als Nächstes fügen wir ein „String“-Eingabefeld als Eingang hinzu, damit hier später der Name einer gespeicherten Kantenselektion eintragen werden kann, falls gewünscht. Sie finden dazu in der Liste unten links den Eintrag „String (Edit Field)“, den Sie einfach an die gewünschte Stelle unter „Eingänge“ ziehen. Eine Option zum optionalen Invertieren der Selektion können wir mit einer Options-Checkbox ergänzen. Auch dieses Element finden Sie in der Liste unten links unter „Bool (Checkbox)“.

Die beiden neuen Eingänge erhalten standardmäßig kryptischen Namen, die wir editieren sollten. Klicken Sie dazu auf den entsprechenden Eintrag in der „Eingänge“-Gruppe und wählen Sie in der mittleren Spalte des "Ressource-Editors" den Reiter für „Text“. Tragen Sie hier den gewünschten Namen ein, der dann auch im "Attribute-Manager" neben der Texteingabe zu sehen sein sollen. Verfahren Sie entsprechend mit dem Bool-Eingang, der für die Invertieren-Funktion genutzt werden soll.


Neu hinzugefügte Parameter erhalten Zufallsnamen. Nutzen Sie die Text-Dialogseite in der Mitte des Ressource-Editors, um eigene Namen für die Parameter zu vergeben..

Einstellung zur Beschränkung von möglichen Eingaben, sowie Vorgaben von Standardwerten oder Einheiten, finden Sie unter dem „Daten“-Tab der mittleren Spalte im "Ressource-Editor". Hier könnten Sie z. B. die Eingabemöglichkeit für „Standardwert“ nutzen, um für Eingänge Werte zu hinterlegen, die dann als Standardwerte abgerufen werden. Dies ist bei unseren Parametern nicht nötig.
Sind alle Eingänge angelegt, kann der "Ressource-Editor" auch schon wieder geschlossen werden. Die neuen Eingänge sind jetzt an der Gruppe angelegt.

Da sich gespeicherte Selektionen direkt über eine „Selektionszeichenfolge“ auslesen lassen, dieser aber den Namen der Selektion in Anführungszeichen erwartet, müssen wir nun die Namenseingabe durch Anführungszeichen ergänzen. Dies geht sehr einfach mit einem „Verbinden"-Node. Zudem lässt sich mit einem „Textlänge“-Node in Verbindung mit einem „Vergleichen“-Node überprüfen, ob überhaupt eine Eingabe für den Selektionsnamen erfolgt ist. Falls nicht, kann über einen „Schalter“-Node der Standard-String default ausgegeben werden. Dieser führt dazu, dass ein „Selektieren“-Node einfach alles auswählt oder auf die gerade aktive Selektion zurückgreift.

Ein „Selektion invertieren“-Node kann das Ergebnis dann invertieren. Damit die Wahlmöglichkeit zwischen normaler und invertierter Selektion besteht, schalten wir noch einen „Schalter“-Node an das Ende, der den „Geometrie“-Datentyp verwendet. Ziehen Sie dafür einen beliebigen „Geometrie“-Ausgang zum „Schalter“-Node und verknüpfen Sie diesen dort mit dem „Datentyp“-Eingang. Auf diese Weise kann das Signal der Invertieren-Checkbox zum Umschalten der Geometrie verwendet werden.

Das Ergebnis besteht aus einer Geometrie, die direkt an den „Fase“-Node geleitet werden kann. Damit ist die Gruppe bereits funktionsfähig.


Die fertige Schaltung für unsere Asset-Kapsel.

Ein schneller Test soll dies überprüfen. Wir nutzen dafür eine Würfel-Geometrie, an der wir eine Kantenselektion mit „Selektion speichern“ z. B. mit der „Selektionszeichenfolge“ 0-1 unter einem Namen abspeichern.

Der gleiche Name wird dann auch an der „Geometriemodifikationsgruppe“ eingetragen und deren Ergebnis über einen „Geometrie Op“-Node an die „Szene“ angeschlossen. Da alles zu funktionieren scheint, kann nun die „Geometriemodifikationsgruppe“ zu einem „Asset“ umgewandelt werden. Selektieren Sie dazu die Gruppe und wählen Sie im "Assets"-Menü des "Node-Editors" den Befehl „Zu Asset umwandeln...“ aus. Einmal als Asset verpackt, kann der Inhalt der Gruppe nicht mehr eingesehen oder editiert werden. Sie können jedoch ein Asset – sofern es nicht geschützt wurde – auch wieder zu einer Gruppe umwandeln. Auch dies ist über das „Assets“-Menü des Node-Editors möglich. Zudem kann nach einem Rechtsklick auf ein Asset im "Asset-Browser" auch „Bearbeiten...“ aufgerufen werden, um den Inhalt eines nicht geschützten Assets in einem neuen "Node-Editor" angezeigt zu bekommen.


Vor dem Umwandeln der Gruppe zu einem Asset, überprüfen wir deren Funktion im Node-Editor. Mit der Selektionszeichenfolge 0-1 wird an einem Würfel eine der senkrechten Kanten ausgewählt und schließlich abgerundet, wie Sie auf der rechten Seite der Abbildung erkennen können.


Assets lassen sich über den Asset-Browser mit individuellen Stichwärtern und Vorschaubildern versehen.

Beim Konvertieren der Gruppe zu einem Asset erscheint ein kleiner Dialog, in dem Sie den Namen eintragen, unter dem das Asset später zu finden sein soll und auch das Verzeichnis innerhalb des "Asset-Browsers" bestimmen. Der Name des Assets wird auch für den Eintrag im "Objekt-Manager" verwendet. Wählen Sie daher hier etwas Aussagekräftiges, was die Funktion beschreibt. Falls Sie vorhaben, mehrere Assets zu erstellen oder mit anderen in Ihrem Netzwerk zu teilen, macht eventuell das Anlegen eines eigenen Datenbank-Verzeichnisses Sinn, indem Sie „Datenbank > Erzeuge neue Datenbank“ auswählen. Ansonsten wird standardmäßig die „Voreinstellungen“-Datenbank verwendet. Assets lassen sich aber auch direkt aus dem "Asset-Browser" heraus exportieren und somit leicht weitergeben. Führen Sie dazu einen Rechtsklick auf das Asset im "Asset-Browser" aus und wählen Sie „Neueste Version exportieren...“.

In dem gleichen Menü finden Sie auch eine Option für den Export einer verschlüsselten Version des Assets. Diese kann dann nicht mehr in eine Gruppe umgewandelt werden. Dies würde sich z. B. eignen, wenn Sie Assets für den Verkauf erzeugen möchten, oder eine Veränderung durch Dritte ausschließen möchten. Für das Archivieren ist diese Funktion nicht geeignet, da Sie dann nicht mehr an den Inhalt des Assets herankommen können.

Im "Asset-Browser" ist das neue Asset dann unter „Unkategorisiert“ zu finden. Im „Details“-Bereich des "Asset-Browser" lässt sich nach einem Rechtsklick auf das Icon des Assets dann auch ein individuelles Vorschaubild laden oder aus der Zwischenablage einfügen. Zudem können hier Stichwörter vergeben werden, um z. B. die spätere Suche nach diesem Asset zu vereinfachen.

Einmal als Asset abgespeichert, steht der Nutzung im "Objekt-Manager" nichts mehr entgegen. Ziehen Sie dazu das Asset direkt aus dem "Asset-Browser" in den "Objekt-Manager" hinein. Da es sich hier um ein Asset handelt, das Modellierfunktionen verwendet, muss es unter einer Geometrie eingeordnet werden. Die ausgeführten Eingänge der ehemaligen Gruppe finden Sie wie gewohnt im "Attribute-Manager".


Nach dem Umwandeln zu einem Asset steht die neue Funktion direkt für den Objekt-Manager zur Verfügung und kann wie gewohnt über den Attribute-Manager bedient werden.


Eine Kapsel mit Selektionsfunktionen erstellen

Das oben ausführlich dargestellte Prinzip lässt sich auch auf andere Kapsel-Typen übertragen, wie z. B. auch die „Selektionsmodifikatorgruppe“, mit der wir Selektionen von Punkten, Kanten oder Polygonen vornehmen können. Auch das Speichern von Selektionen unter einem Namen ist damit möglich und auf klassische Objekte im "Objekt-Manager" übertragbar. Um dies zu demonstrieren, soll die „Ausrichtung selektieren“-Funktion genutzt werden und um die Option zur Invertierung und Speicherung der Selektion ergänzt werden.

Wir erstellen dazu zunächst in einer neuen Szene eine „Selektionsmodifikatorgruppe“ und öffnen diese durch Klick auf ihr Ordnersymbol in der Kopfzeile. Ein- und Ausgänge für die Geometrie sind bereits vorhanden, wir können daher direkt einen „Ausrichtung selektieren“-Node hinzufügen und mit dem "Geometrie"-Eingang der Gruppe verknüpfen. Um die Einstellungen für „Ausrichtung“, „Toleranz“ und die „Und Rückseite“-Option auch im "Objekt-Manager" zur Verfügung zu stellen, ziehen Sie diese Ports zum Eingangsbereich der Gruppe und lassen dort neue Eingänge erstellen. Wir haben dies bereits bei der Besprechung der „Geometriemodifikationsgruppe“ im vorangegangenen Abschnitt ausführlich behandelt. Dort wurde auch bereits die Nutzung des "Ressource-Editors" besprochen, um eigene Eingänge zu konfigurieren und z. B. Standardwerte und Interface-Elemente für die Parameter festzulegen. Lesen Sie bei Bedarf dort noch einmal nach, um auch diesmal wieder eine Texteingabe für den Namen einer Selektion und eine Option für das Aktivieren der Invertierung hinzuzufügen.

Wie im Beispiel zuvor benutzen wir einen “Selektion invertieren“-Node zum Invertieren der Selektion und einen „Schalter“-Node zum Umschalten zwischen der normalen und der invertierten Selektion, basierend auf der Checkbox am Eingang der Gruppe.

Mit einem „Selektion speichern“-Node kann die Selektion an der Geometrie dann unter einem Namen gespeichert werden. Um den Fall abzufangen, dass der Nutzer keine Eingabe im Namensfeld macht, verwenden wir zuerst die Überprüfung der „Textlänge“ und verwenden deren Ergebnis als Schalter an einem weiteren „Schalter“- Node. Wurde keine Namenseingabe gefunden, liefert die Längenberechnung des Strings 0 als Ergebnis, was zur Ausgabe des ersten Eingangs am „Schalter“-Node führt, der den „Datentyp“ String verwenden muss. Hier können Sie also einen Standardnamen wie z. B. Sel eintragen, den die Selektion im Fall einer fehlenden Eingabe erhalten soll. An den zweiten Eingang des "Schalter"-Nodes schließen Sie die Eingabe des Namens an. Wenn die “Zyklusindizes“ Option am „Schalter“-Node ausgeschaltet ist, wird dieser Name dann immer verwendet, sofern das Namensfeld nicht leer ist. Das Ergebnis des „Schalter“-Nodes kann dann an den „Name“-Eingang des „Selektion speichern“-Nodes angeschlossen werden.


Mit dieser Schaltung bieten wir Nutzern einen Namen zum Speichern der berechneten Selektion an, sowie eine Option zum Invertieren der Selektion.

Da „Ausrichtung selektieren“ nur Polygone auswählen kann, müssen „Selektion invertieren“ und „Selektion speichern“ ebenfalls im Polygon-Modus sein. Das Ergebnis des „Selektion speichern“-Nodes wird dann schließlich an dem Geometrie-Ausgang der Gruppe angeschlossen. Wenn Sie in der Navigationszeile des Node Editors nun wieder aus der Gruppe herausgehen, indem Sie dort „Szenen-Nodes“ anklicken, sind wir bereits fertig. Wie zuvor demonstriert, lassen Sie die Gruppe unter einem beliebigen Namen als Asset speichern und können dieses Asset dann aus dem "Asset-Browser" direkt in den "Objekt-Manager" ziehen. Lassen Sie uns zum Ausprobieren die Szene aus dem letzten Beispiel verwenden, indem wir das neue Selektions-Asset unter den Würfel ziehen und dort dem Modellier-Asset folgen lassen.


Indem wir die neue Selektions-Kapsel im Objekt-Manager verwenden, können dort direkt Selektionen gespeichert und z. B. für die Materialvergabe genutzt werden.

Wie Sie erkennen können, erscheint hinter der Selektions-Kapsel im "Objekt-Manager" direkt das typische Tag für eine Polygon-Selektion. Der Name dieser Selektion kann für ein Material verwendet werden, oder z. B. auch zur Beschränkung von Deformationen genutzt werden, wie im nachfolgenden Bild zu sehen. Dort wird die Selektion auf dem Röhre-Objekt nicht nur für ein Material genutzt, sondern mit einem „Beschränkung“-Tag auch für eine "Formel"-Deformation mit der Formel Y(x,y,z,t) = 2*y, die die Deckflächen nach außen verschiebt. Auf diese Weise bleiben die Segmente entlang der Höhe auf die Mitte des parametrischen Objekts beschränkt.


Die durch die Kapsel gespeicherte Selektion kann auch von Deformationen gelesen werden, wie dieses Beispiel zeigt.


Ein parametrisches Grundobjekt erzeugen

Spannend ist auch die Möglichkeit, ganz eigene, parametrische Objekte für Cinema 4D zu erzeugen. Dies funktioniert sowohl für Splines als auch für Polygon-Objekte. Als Basis dafür dient die „Meshgrundobjektgruppe“.

Diese hat keinen Geometrie-Eingang. Sie müssen daher entweder auf Nodes zurückgreifen, die bereits z. B. Grundformen zur Verfügung stellen oder selbst mittels „Geometrieeigenschaften setzen“ eine Topologie aus Punktkoordinaten und einer Verbindungsreihenfolge für die Erstellung der Kanten und Polygone erzeugen.
In unserem Beispiel greifen wir auf einen fertigen Würfel zurück und lassen daran an einer Kante den „Fase“-Befehl eine Kante verdoppeln. Dies funktioniert, indem der „Fase“-Node nur eine „Größe“ von 0 verwendet.
Der Würfel sieht dann noch so aus wie zuvor, hat jetzt aber verdoppelte Punkte entlang der gewählten Kante.

In diesem Beispiel wird ein einfacher Würfel als Basis verwendet und ein "Fase"-Befehl auf eine seiner Kanten angewendet. Die dadurch neu entstehenden Punkte werden durch die Nutzervariablen X und Y verschoben. Diese neuen Punktpositionen werden im Array der Punktkoordinaten aktualisiert und dann mittels "Geometrieeigenschaften setzen"-Node an den Würfel zurückgeschickt. Der rechte Teil der Schaltung beschäftigt sich ausschließlich mit dem Speichern verschiedener Polygon- und Kantenselektionen. Am Ende wird noch der Optimieren-Befehl ausgeführt, um eventuell vorkommende deckungsgleiche Punkte zusammenzufassen.

Per „Geometrieeigenschaften setzen“ kann dann das Array mit allen Punktpositionen ausgelesen werden. Über mathematische Berechnungen lassen sich diese Punkte dann z. B. verschieben und über „Element setzen“-Nodes mit den veränderten Positionen wieder in das Punkte-Array zurückschreiben. Ein „Geometrieeigenschaften setzen“-Node schreibt dieses Array dann wieder zurück auf die Geometrie des ehemaligen Würfels.

Um der Nutzerin und dem Nutzer einen Mehrwert zu liefern, verwenden wir zusätzliche „Selektion speichern“-Nodes, um die Flächen des abgeschrägten Würfels später einfacher mit Materialien belegen zu können. Auch die beiden Kanten an der Schräge werden in zwei neue Kantenselektionen gespeichert. An das Ende können Sie zusätzlich noch einen „Optimieren“-Node hängen, der dafür sorgt, dass beim Nutzen der Maximalwerte für die Kantenverschiebung, eine Optimierung der dann übereinander liegenden Punkte erfolgt.
Die resultierende Geometrie wird schließlich am Geometrie-Ausgang der Gruppe angeschlossen.

Die zwei Eingabemöglichkeiten zum Verschieben der Kanten werden über den Ressource-Editor angelegt. In der Daten-Rubrik des Ressource-Editors kann der Datentyp dieser Parameter gewählt werden, wie auch eine Wertbeschränkung, damit in diesem Fall nur Eingaben zwischen 0% und 100% möglich sind.

In unserem Beispiel wurde der „Größe“-Vektor des Würfels als Eingang angelegt, zusammen mit zwei Prozentwerten, über die sich die beiden Kanten an der gerundeten Ecke individuell verschieben lassen. Diese Eingänge legen Sie wieder über den "Ressource-Editor" an, in dem Sie die Voreinstellung für „Float (Edit Field & Slider)“ wählen, um ein Zahlenfeld mit angehängtem Regler zu erzeugen. Im „Daten“-Tab wählen Sie dann die „Einheit“ Prozent aus und nutzen „Wertbeschränkung“ Beides mit 0% als „Minimalwert“ und 100% als „Maximalwert“, damit nur Werte in diesem Wertebereich eingestellt werden können.

Diese Darstellung dokumentiert alle Selektionen an dem Objekt und deren Namen, über die sich dann z. B. Materialien und Modellierbefehle gezielt auf Teile des Objekts anwenden lassen.

Wird die Gruppe als Asset umgewandelt und im "Asset-Browser" gespeichert, kann sie von dort direkt in den "Objekt-Manager" gezogen werden, um ein parametrisches Objekt zu erzeugen. Die angelegten Selektionen sind dort unsichtbar, können aber z. B. von Material-Tags genutzt werden (über die Selektionsnamen F0, F1, F2 und F3). Das Beispiel im nachfolgenden Bild zeigt auch, dass sich die untergeordneten "Bevel"-Deformatoren ebenfalls auf die Kanten an der Seite des ehemaligen Würfels beschränken lassen, sofern dort die verwendeten Selektionsnamen eingetragen wurden (E1 bzw. E2).

Weitere Beispiele solcher Asset-Kapseln finden Sie in der Rubrik „Geometriegenerator“, wie z. B. das „Ziegelmauer“-, das „Treppe“- oder das „Baum“-Asset.


Einen parametrischen Spline erzeugen

Obiges Prinzip lässt sich identisch auf ein Asset zur Erzeugung eines parametrischen Splines übertragen. Auch dafür müssen Sie zuerst 3D-Punktkoordinaten berechnen und in einem Array zusammenfassen. Dieses Array mit den Vektoren der Punktpositionen wird dann an einen „Spline Assembler“-Node übergeben. An diesem lässt sich auch vorgeben, ob eine geschlossene oder eine offene Splinekurve entstehen soll. Wichtig ist nur, dass die Punkte im Array auch die Reihenfolge haben, die der Laufrichtung der Splinekurve entspricht.

Am Ende definiert ein „Spline-Tesselation“-Node die Interpolation der Zwischenpunkte am Spline, bevor dieser dann an den Geometrie-Ausgang der Gruppe weitergeleitet werden kann.


Mit einem Spline Asseembler-Node kann ein Punkte-Array zu einem Spline umgewandelt werden. Ein Spline-Tesselation-Node vervollständigt den Spline durch die Angabe der Zwischenpunktinterpolation.

Falls auch Tangenten definiert werden sollen, müssen diese aus jeweils zwei Vektoren, für die linke und die rechte Laufrichtung des Splines an dem jeweiligen Punkt, zusammengesetzt werden. Dafür nutzen Sie einen „Sammlung zusammensetzen“-Node, mit dem sich auch so genannte „Tuple“ zusammensetzen lassen, also ein Datenpaket z. B. aus zwei separaten Vektoren. Wichtig ist, dass genauso viele Tupel wie Splinepunkte vorhanden sind.

Die Arrays der Punktpositionen und der Tangenten können am „Spline Assembler“-Node zusammengeführt werden. Damit dort bei Bedarf auch der passende Eingang für die Tangente erscheint, muss der „Spline-Typ“ am Node auf „Bézier“ eingestellt werden.

Das kompilierte Asset dieser Gruppe kann direkt im Objekt-Manager eingesetzt, und dort z. B. mit einem "Extrudieren"-Objekt zur Polygonerzeugung genutzt werden.


Falls Tangenten benötigt werden, lassen sich diese aus jeweils zwei Vektoren innerhalb eines Tuple-Pakets zusammensetzen. Mittels Sammlung zusammensetzen-Node können auch Arrays solcher Tuples erstellt werden.


Eine Spline-Kapsel kann ganz so wie ein normales Spline-Objekt im Objekt-Manager verwendet werden.


Eine Generator-Kapsel erzeugen

Generatoren unterscheiden sich etwas von den vorgenannten Assets, denn sie benötigen andere Objekte, um zu funktionieren. Denken Sie z. B. an ein "Boole"-Objekt, das erst dann arbeiten kann, wenn andere Objekte dort untergeordnet wurden. Auch diese Objektklasse kann mit eigenen Asset-Kapseln erstellt werden. Sie finden von diesem Typ auch bereits Beispiele im "Asset-Browser", wie z. B. das „Atom Array“, das Sie in der „Geometriegenerator“-Gruppe finden können.


Indem der Unterobjekte-Eingang eines Unterobjekte Op-Nodes als Eingang an der Objektgruppe genutzt wird, können wir später über alle Unterobjekte des Objekts im Objekt-Manager iterieren.

Für die Erzeugung eines Generator-Assets müssen Sie eine „Objektgruppe“ verwenden, die Sie ebenfalls in der Kategorie „Assetkonstruktion“ finden. Die „Objektgruppe“ verfügt zwar bereits über einen Eingang für „Unterobjekte“, aber diesen können wir nicht direkt innerhalb der Schaltung auf eine beliebige Anzahl an Unterobjekten konfigurieren und dann auslesen. Es bedarf dafür eines Kunstgriffs.

Öffnen Sie dafür die „Objektgruppe“ und fügen Sie dort einen „Unterobjekt Op“-Node hinzu. Dieser Node verfügt über eine „Unterobjekte“-Gruppe an der Eingangsseite. Ziehen Sie diesen Gruppen-Port zur Eingangsseite der Gruppe und lassen Sie dort neue Eingänge von diesem Port erstellen.


Benennen Sie den neuen Unterobjekte-Eingang um, damit es nicht zu einer Verwechslung mit dem bereits vorhandenen Unterobjekte-Eingang an der Gruppe kommen kann.

Um eine Verwechslungsgefahr mit dem bereits standardmäßig vorhandenen „Unterobjekte“-Eingang zu vermeiden, öffnen Sie den "Ressource-Editor" für die „Objektgruppe“ und finden Sie in der „Operator“-Gruppe den gerade erstellten „Unterobjekte“ Eingang. Benennen Sie diesen z. B. zu „Kapsel-Unterobjekte“ um, um eine Verwechslungsgefahr mit den Unterobjekte-Eingängen aus der „Basis“-Gruppe zu vermeiden. Sie können den "Ressource-Editor" dann vorerst wieder schließen.

Innerhalb der Gruppe verknüpfen Sie dann den „Op Eingang“ des „Unterobjekte Op“-Nodes mit dem „Op Eingang“ der Gruppe. Durch diese Vorbereitungen lassen sich jetzt alle untergeordneten Objekte über den „Array“-Ausgang am „Unterobjekte Op“-Node mit einem „Sammlung iterieren“-Node und einem „Container zerlegen“-Node auslesen.

Wird anschließend auch noch über diese Objekte am „Container zerlegen“-Node mittels eines weiteren „Sammlung iterieren“-Nodes eine Iteration vorgenommen, lassen sich u. a. die Positionen, Größen, Achsrichtungen, Materialien, Farben und Geometrien untergeordneter Objekte auslesen.


Über einen Sammlung iterieren-Node an den Objekten des Unterobjekte-Arrays lassen sich diverse Daten der Unterobjekte auslesen, wie z. B. deren Positionen, die wir hier zum Erzeugen einer Splinekurve verwenden. Die Einstellungen für die Tesselation dieses Splines stellen wir ebenfalls als Eingänge an der Gruppe zur Verfügung, damit sich diese direkt über den Attribute-Manager editieren lassen.

Wir nutzen in diesem Fall nur die „Verschiebung“-Information zum Erzeugen einer Splinekurve, die alle Achszentren untergeordneter Punktobjekte, also Splines oder Polygonobjekte, miteinander verbindet. Dafür kommt wieder ein „Spline Assembler“-Node zum Einsatz, dem ein „Spline-Tesselation“-Node angehängt wird. Dessen Eingänge werden gleichzeitig zu Eingängen an der Gruppe erklärt, damit der Nutzer später den Typ der Splinekurve und deren Zwischenpunkt-Interpolation selbst vorgeben kann.

Die Positionen der gefundenen Unterobjekte werden mittels „Elemente anhängen“-Node in einem Array gesammelt an den „Spline Assembler“ übergeben. Die entstehende Geometrie wird über einen „Geometrie Op“-Node zum Ausgang der Gruppe geleitet.


Beim Verwenden des Assets im Objekt-Manager entsteht ein neues Generator-Objekt, das eine Splinekurve durch die Positionen untergeordneter Polygonobjekte zeichnet. In diesem Fall wurde ein B-Spline erstellt, damit eine gerundete Kurve durch die Positionen der drei Würfel entsteht..

Wie in den Beispielen zuvor, lassen wir die Gruppe zu einem Asset kompilieren und im "Asset-Browser" ablegen. Von dort kann das neue Asset direkt in den "Objekt-Manager" gezogen werden. Sobald dort einige Polygon-Objekte untergeordnet wurden, können Sie erkennen, wie die Mittelpunkte dieser Objekte mit einer Splinekurve verbunden werden. Wie bei vielen Generatoren üblich, bleiben die untergeordneten Objekte dabei im Ansichtsfenster automatisch unsichtbar.


R26

Asset-Kapseln testen

Wenn es um die Erstellung z. B. von neuen Modellier- oder Selektionsmethoden geht, kann es helfen, wenn diese bereits während der Erstellung der Schaltung direkt im Objekt-Manager getestet werden können. Der Node-Editor bietet dazu einen speziellen "Kapsel"-Modus im Modus-Menü an. Dieser Modus wird automatisch aktiviert, wenn ein z. B. eine Geometriemodifaktionsgruppe, eine Selektionsmodifikationsgruppe oder eine Meshgrundobjektgruppe aus den Assetkonstruktion-Nodes direkt in den Objekt-Manager gezogen wird. Schauen wir uns dies an einem kleinen Beispiel an.


Eine einfache Szene mit einer klassischen Grundobjekt-Kugel dient uns als Basis. Erhöhen Sie an der Kugel etwas die Anzahl der Segmente, damit die folgenden Selektions- und Modellierbefehle eindrucksvoller wirken können..


Wir ziehen eine Selektionsmodifikatorgruppe direkt aus dem Asset-Browser und platzieren diese als Unterobjekt unter der Kugel im Objekt-Manager. Im Node-Edotor wird dadurch automatisch auf den "Kapsel"-Modus umgeschaltet. Wir können nun direkt z. B. Nodes der "Geometrieselektion"-Gruppe im Node-Editor verwenden.


Wir entscheiden uns für den Node "Zufällige Selektion" und ziehen diesen vom Asset-Browser in den Node-Editor. Dort verbinden wir die Geometrie Ein- und Ausgänge an diesem Node mit den entsprechenden Ein- und Ausgängen im Node-Editor. Unsere zufällige Selektion ist damit bereits aktiv und an der Kugel wird eine zufällige Polygonselektion erzeugt. Diese können wir z. B. mit einer Modellierfunktion nutzen, die sich mit einer Geometriemodifikatiorgruppe definieren lässt.


Ziehen Sie die Geometriemodifikatorgruppe aus den Assetkonstruktion-Nodes direkt aus dem Asset-Browser und platzieren Sie diese ebenfalls als Unterobjekt der Kugel im Objekt-Manager. Sie sollte dabei als zweiter Eintrag unter der Kugel eingeordnet werden, damit die Modellierbefehle auf die zufällige Auswahl reagieren können.


Im Node-Editor wird der aktuell noch leere Inhalt der Geometriemodifikatorgruppe angezeigt. Ziehen Sie dort z. B. den "Polygone durchbohren"-Node hinein und erstellen Sie erneut Geometrie-Verbindungen an der Eingangs- und Ausgangsseite des Nodes. Wenn Sie nun mit dem "Offset"-Wert des Nodes im Attribute-Manager spielen, können Sie direkt den Effekt auf die Kugel im Ansichtsfenster beobachten. Aus den zufällig ausgewählten Polygonen werden kleine Trichter oder Pyramiden, je nach Vorzeichen des gewählten Offset-Werts.

Wie an diesem einfachen Beispiel zu sehen ist, können auf diese Weise sehr einfach neue Funktionen erzeugt werden, die direkt auf Objekte in Ihrer Szene wirken. Dafür ist keine Umwandlung zu einer Asset-Kapsel notwendig. Dennoch kann die Umwandlung zu einer Kapsel sinnvoll sein, wenn Sie die erstellte Funktion z. B. auch in anderen Projekten einsetzen möchten.
Selektieren dazu das Selektionsmodifikatorgruppe- oder das Geometriemodifikationsgruppe-Element im Objekt-Manager und wählen Sie dann "Asset>Zu Asset umwandeln..." im Node-Editor. Achten Sie nur darauf, dass zu diesem Zeitpunkt kein Node innerhalb der Gruppe ausgewählt ist. Ansonsten würden nur die ausgewählten Nodes als Asset gespeichert.