madmats

  • Baum-Generator ist da

    Baum-Generator ist da

    Tree Generator für Blender 4.5.3 LTS

    Wie versprochen habe ich einen alternativen Tree-Generator mit Blender gebaut. Fotorealismus war hier nicht der Anspruch, man ist dafür vom Gebüsch bis zur Knorkelkiefer flexibel. Das nervige Texture Mapping wird automatisch generiert und ist bei Bedarf anpassbar, es gibt auch ein UI. Funktionen einbauen, erweitern oder löschen ist auch kein Thema. Hier ist nichts ausgegraut bzw. gesperrt.


    Der Gebrauch:

    Ihr erstellt ein beliebiges 3D-Objekt, z. B. einen Würfel, darauf packt ihr GeometryNodes als Modifier und dort wählt ihr einfach den GN_ModTreeGenerator aus. Anstelle des Würfels ist der Stamm eines Baumstamms zu sehen. Nacheinander die Parameter für Stamm, Äste und zum Schluss die Blätter einstellen. Entweder sofort als FBX exportieren oder besser, Objekt duplizieren, den Modifier anwenden (STRG+A) und man hat ein bearbeitbares Mesh, welches im Edit Mode zurecht gestutzt werden kann und für spätere Wind-Animationen gehören auch noch Vertex Colors drauf. Wie immer einen sinnvollen Namen vergeben, speichern und das war es dann schon.

    Stamm:

    Dieser Punkt unterteilt sich einmal in die reine Erstellung der Grundgeometrie und zum anderen in deren Erscheinungsbild. Bei der Geometrie können die Anzahl möglicher Stämme von 1 bis 12 festgelegt werden, deren Abstand zueinander und die durchschnittliche Höhe. So lässt sich auch gut Buschwerk erzeugen. Curve Points legt die maximalen Spawn-Ebenen der Äste fest und bestimmt die maximale Höhenauflösung. Die kann bei Bedarf im Node Editor separat reduziert werden. „1“ bedeutet die volle Auflösung, die Erhöhung des Betrages reduziert entsprechend. Das gleiche ist auch bei den Ästen der Fall. Wer LODs erstellen möchte, kann diese Funktion mit dazu benutzen. Im letzten Feld dieses Bereichs lässt sich die Anordnung der Stämme variieren.

    Unter Look & Deform sind alle Einstellungen zu finden, welche das Aussehen des resultierenden Meshes bestimmt. Radius gilt für jeden Stamm, die Auflösung legt  die Anzahl der Segmente des Querschnittes fest (auch für LODs interessant). Deform Fac bestimmt die Rundheit des Stammes (0 = perfekter Kreis). Orientation dreht die Stämme (bei mehr als einem) entlang der Z-Achse, Twist hingegen verdreht den Stamm / die Stämme in sich selbst. Up und Down definiert diesen Bereich jeweils von oben und unten beginnend. Crackle legt ein Knorkel-Faktor fest, beginnend bei der Wurzel.

    Äste:

    Äste bestehen aus drei Generationen und sind von ihren jeweils übergeordneten Elementen abhängig. Wie beim Stamm gilt hier das gleiche Prinzip, Curve Points bestimmen die Anzahl möglicher Spawn-Punkte für untergeordnete Elemente und die maximale Auflösung der Meshes. Letzteres kann auch hier für jede Generation unabhängig reduziert werden. Im Node Editor hat man zusätzlich die Möglichkeit, einfach die Radien und deren Auflösung bei Bedarf anzupassen.

    Mit Density lässt sich die Anzahl spawnender Objekte pro Ebene steuern, Distribution verteilt diese zufällig entlang dem übergeordneten Element. Spawn legt den Bereich fest, in dem Äste wachsen. Rotation dreht die Äste, Angle winkelt und Bending verbiegt diese entlang der lokalen Z-Achse des Objektes darüber. Der Rest wie beim Stamm.

    Blätter/Nadeln:

    Sollte selbsterklärend sein. Die Meshes liegen im Outliner unter ProtoType/Leaves und können über das DropDown ausgewählt werden. Die sind alle gemappt, Texturen liegen bei. Ihr könnt euch weitere Blätter erstellen oder die vorhandenen editieren. Ich hab mich erst einmal an unsere klimatischen Bedingungen orientiert. Mit Scale könnt ihr die Größe verändern. Wie bei vielen Einstellungen stecken auch hier Funktionen dahinter, die einigermaßen zufällige Ergebnisse produzieren.

    Allgemeines:

    Alles, was ein Häkchen hat, kann hierüber ausgeblendet werden. Was im Objekt-Fenster nicht sichtbar ist, wird allerdings auch nicht exportiert bzw. angewendet. Ferner ist es zu Kontrollzwecken sinnvoll, Wire Frame und Face Orientation zu aktivieren. So hat man einen Überblick über die Komplexität der Netzobjekte und sieht Fehler wie fehlerhafte Normals sofort. Für eine bessere Vorschau kann man das Overlay komplett deaktivieren.

    Mapping und Texturen:

    Die Blätter sind schon gemappt, bei neuen Elementen muss da händisch nachgeholfen werden. Ist aber simples Planar Mapping.

    Stamm und Äste erzeugen automatisch passende Textur-Koordinaten. Ein kachelbares,  quadratisches Texturformat mit einer Aufteilung von 10/16 (Stamm), 4/16 (Äste 1st Gen) und 2/16 (Äste 2nd und 3rd Gen) liegt diesem Fall zu Grunde. Es spielt somit keine Rolle, ob eine 8K, 4K oder 512 Pixel Textur zugewiesen wird. Im NG_MeshGenerate gibt es drei Felder, in denen ihr Anpassungen vornehmen könnt. Falls ihr diese Aufteilung nutzen wollt, braucht ihr bei den Feldern mit „U“ nichts weiter unternehmen. Mit V-Scale könnt ihr dagegen die Kacheln in Längsrichtung steuern.

    Apply Modifier:

    Meist ist es von Vorteil, schon wegen Vertex Color das Objekt in ein bearbeitbares Mesh umzuwandeln. Auf Grund einiger Unzulänglichkeiten des TreeGen ist es nötig, im Edit Mode nochmal Hand an das Ergebnis zu legen. Speziell an den Spitzen und Enden kommt es häufig zur Bildung von Bommeln beim Laub. Besonders bei hoch eingestellter Dichte. Der einfachste Weg ist im Moment, betreffende Stellen auszuwählen – am besten bei aktiviertem Durchsicht-Modus – und den Rest auszublenden (H). Mit Select Random die betroffenen Flächen wählen und unten links im Ratio-Regler die gewünschte Menge einstellen, danach unbedingt mit „STRG+L“ alle damit verbundenen Flächen auswählen und mit „X“ (Faces) löschen. So werden komplette Blatt-Meshes gelöscht, nicht nur Teile davon. Im Zweifelsfall wiederholen. Ihr könnt bei Bedarf auch noch nervige Äste entfernen oder was auch immer, z. B. eine Wurzel dran pappen.

    Vertex Colors – für Windanimation in der UE wichtig:

    Wenn ihr eueren Baum in ein Mesh konvertiert und alle Anpassungen vorgenommen habt, ist es Zeit, dem kompletten Baum einschließlich Blätter/Nadeln Vertex Colors zu verpassen. Der einfachste Weg ist, in eine Seitenansicht zu wechseln, den Modus Weight Paint  zu aktivieren und mit dem linearen Verlaufstool von der Wurzel zur Spitze einen Verlauf von rot zu blau zu erstellen. Dann wechselt ihr in den Modus Vertex Paint und wählt dort unter Paint „Vertex Color from Weight“. Hatten wir schon beim UE-Tagebuch beim Gras. Euer Baum sollte von der Wurzel aufwärts immer dunkler werden. Das wird später eine wesentliche Rolle für die Bewegung im Wind spielen. Das wars dann auch schon, der Baum ist fertig für den Export.

    Kollision:

    Bei dem Punkt bin ich mir noch nicht sicher. Da man ja nicht durch die Bäume laufen können soll, ist das ein wichtiges Thema. In der UE kann man festlegen, dass sich die Kollision vom Mesh ableiten soll. In diesem Fall nicht sehr vorteilhaft. Entweder, dupliziert nur den Stamm und weist diesen als Kollisionsmodell zu oder packt einfach in der UE einen Zylinder als Kollision hinzu. Im Moment generiert der TreeGen noch keine Kollisionsboxen. Einfach weil ich noch  nicht weiß, welche Herangehensweise praktischer ist.


    Ich hoffe, ihr könnt damit was anfangen, auch wenn es keine perfekten Bäume oder Büsche ausspuckt. Experimentiert damit, baut es aus oder um. Hauptsache ihr habt Spaß damit.

    Qapla´!

    Inhalt der ZIP

    Knapp 130 MB groß sind neben dem Blend-File noch einige Beispiel-Texturen in 2K enthalten, unter anderem eine Kollektion Laub mit Normal und RGB (für Alpha, Glanz und Lichtdurchlässigkeit), ein kompletter Satz für die Holz-Partien und als Hilfen noch ein Color Grid und eine Mapping-Hilfe (Rot=Stamm, Grün=1stGen Äste, Blau=2nd & 3rd Äste/Zweige)