Asset-Kapseln
Inhalte dieser Seite
- Assets im Objekt-Manager nutzen
- Eigene Asset-Kapseln erstellen
- Eine Kapsel mit Modellierfunktionen erzeugen
- Eine Kapsel mit Selektionsfunktionen erstellen
- Ein parametrisches Grundobjekt erzeugen
- Eine Generator-Kapsel erzeugen
- Asset-Kapseln testen
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:
-
Meshgrundobjektgruppe: Nutzen Sie diese Gruppe als Asset, wenn Sie parametrische Objekte erzeugen möchten.
-
Objektgruppe: Erstellen Sie ein Asset aus dieser Gruppe, wenn Sie einen Generator erstellen möchten, der z. B. ähnlich dem bereits vorgestellten Atom Array-Asset, untergeordnete Objekte verarbeiten kann.
-
Selektionsmodifikatorgruppe: Wenn Sie diese Gruppe als Asset umwandeln, können Sie Ihre eigenen Selektionsfunktionen erstellen.
-
Geometriemodifikationsgruppe: Ein Asset aus dieser Gruppe kann in der klassischen Cinema 4D-Umgebung wie ein Modellierbefehl verwendet werden. Dies ermöglicht durch die Hintertür die Nutzung von Modellier-Stacks im "Objekt-Manager", so wie es auch der "Szenen-Manager" bietet.
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.
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:
-
Sie ziehen von einem vorhandenen Eingang eines Nodes in der Gruppe eine Verdrahtung bis zum linken Eingangsbereich der Gruppe. Wenn Sie die Maustaste lösen, erscheint ein Kontextmenü, in dem Sie „Neuen Eingang hinzufügen“ auswählen können. Die Gruppe erhält dadurch automatisch einen zum gezogenen Port passenden, zusätzlichen Eingang. Name, Standardwert, Einheit und Bedienelement des Parameters werden übernommen.
-
Die zweite Option führt über den „Ressource-Editor“. Führen Sie dafür einen Rechtsklick in die geöffnete Gruppe oder auch auf den Node der Gruppe aus und wählen Sie „Ressource bearbeiten…“ aus dem Kontextmenü. Es öffnet sich der Ressource-Editor, in dem eigene Ports angelegt, Datentypen ausgewählt und Namen editiert werden können. Die Option bietet sich auch an, wenn Sie mehrere Parameter als Eingänge zur Verfügung stellen möchten und deren Einstellungen in einem individuellen Layout aufarbeiten möchten. Der "Ressource-Editor" bietet zudem in der linken unteren Spalte bereits typische Datentypen und Bedienelemente an, die direkt in die darüber liegende Liste der Ein- und Ausgänge gezogen werden können. Die Bedienelemente, Standardwerte und Namen selektierter Ports lassen sich dann, neben vielen anderen Einstellungen, in der mittleren Spalte des Editors bearbeiten.
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.
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.
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.
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.
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.
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.
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.
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".
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.