Jump to content
Unity Insider Forum

Unity Custom Tree


MustafGames

Recommended Posts

Grüße mal Wieder :),

 

bin gerade an einem alten Problem gestoßen, ich habe mir per Cinema4D einen Baum erstellt, dieser lässt sich auch wunderbar auf das Terrain platzieren (Nicht als eigenständiges Objekt).

Problem ist, es reagiert nicht auf meine Windzone, muss ich etwas beachten in einem alten Projekt (wo ich jetzt ewig danach suchen müsste), hatte ich dies schon einmal hinbekommen, es kann sein das ich dazu Cinema4Ds Biegen Funktion auf das Objekt hauen muss, bin mir aber nicht mehr sicher.

Konvertiert von Mesh zu UnityTree habe ich früher auf keinen Fall und es ging trotzdem, bei den Grässern ist es anders diese bewegen sich perfekt.

 

Mfg Mustaf

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich spare mir mal die Übersetzung, hier steht alles drin:

Unity has its own Tree creator that you can use to produce new tree assets but you can also use a standard 3D modelling app for the task. The tree mesh should have fewer than 2000 triangles (for performance reasons) and the anchor point should be right at the base of the tree where it emerges from the ground. The mesh should always have exactly two materials, one for the tree body and the other for the leaves.

Trees must use the Nature/Soft Occlusion Leaves and Nature/Soft Occlusion Bark shader. In order to use those shaders you also have to place the tree in a special folder that contains the name “Ambient-Occlusion”. When you place a model in such a folder and reimport it, Unity will calculate soft ambient occlusion in a way that is specifically designed for trees. The “Nature/Soft Occlusion” shaders rely on the folder naming convention and the tree won’t render correctly if you don’t follow it.

When you save a tree asset from the modelling app, you will need to click the Refresh button (shown in the inspector when the tree painting tool is selected) in order to see the updated trees on your terrain.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok vielen Dank, meine Modelle haben aber nur ein Material, gibt es dafür eine Möglichkeit?

Der Ordner "Ambient-Occlusion" soll im Hauptarchiv sein oder?

 

Edit: Der Ordner ist nun genau unter Assets mit "-", darin die Materialien und mein Mesh + Prefab, auf mein Prefab ist aktuell der Nature/Soft Occlusion Leaves-Shader sollte ja eigentlich sich bewegen, in der Scene ist auch eine WindZone, bewegt sich aber trotzdem nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist leider ein komplexes Thema (es hat schon seinen Grund warum Speed Tree selbst Unity unterwandert hat), man kann normalerweise nicht einfach ein beliebiges Mesh nehmen und erwarten, daß es funktioniert, oben sind nur die Grundvorraussetzungen aufgelistet und ja deine Bäume brauchen zwingend 2 Materialien, eines für den Stamm und eines für die Blätter.

Ich würde mir ein Mesh schnappen, welches vom Unity-Tree-Creator erzeugt wurde und damit experimentieren. Dieses Mesh isolieren, in einem 3D-Programm laden, exportieren und wieder versuchen als Baum einzubinden, wenn dies klappt bist du auf dem richtigen Weg.
Selbst habe ich es noch nicht gemacht, so daß ich dir nicht sagen kann, wie der Mesh auszusehen hat, es kann auch sein, das der Mesh selbst noch einige Sachen beachten muss, wie 2 Tri's pro Blatt etc.

Zitat

Der Ordner "Ambient-Occlusion" soll im Hauptarchiv sein oder?

Nein, es muss nur ein Folder sein, der diesen Namen enthält, es funktioniert auch "Meine Baeume Ambient-Occlusion" soweit ich weiß, aber verlassen würde ich mich darauf nicht (siehe oben Experiment mit Tree-Creator-Bäumen)

Wenn Dir alles zu komplex wird, es gibt auch noch ein Asset, welches dir zumindest Teile der Arbeit abnimmt:
https://www.assetstore.unity3d.com/en/#!/content/21079

Allerdings musst du selbst für dieses Asset deine Bäume speziell aufbereiten in einer 3D-Software.

PS:
Ich vermute mal folgendes, der Unityimporter fügt dem Mesh Vertexfarben hinzu, wenn er einen Mesh in diesem Folder findet. Diese Vertexfarben werden durch den Soft-Occlusion-Shader verwendet, um den Baum zu animieren. Ich hatte mir diesen Shader schon mal angeschaut.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 weeks later...

Da bin ich mir nicht ganz sicher, aber ich vermute mal nein. Man kann aber notfalls sich vom Unityterrain lösen und die Bäume als freie Objekte in der Szene platzieren. Dies hat zudem den Vorteil, daß man LODs (LOD0  Baum - LOD1  LowPolyBaum - LOD2 Sprite - LOD3 ausgeblendet) in die Bäume einziehen kann. Man kann sogar die Bäume übers Terraintool setzen und liest dann die Positionen der Bäume über ein Skript ein und instanziiert die Bäume anhand dieser Positionen. Die Bäume des Terrains kann man dann über ein Skript ausblenden. Das Instanziieren der Bäume würde ich allerdings nicht zur Laufzeit machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, du brauchst ein LowPoly-Modell und ein Billboard-Modell.
Wenn du nur 2 Gruppen erstellst, geht es notfalls auch ohne:
Gruppe0: Baum 
Gruppe1: ausgeblendet

Dies hat allerdings zur Folge, daß die Bäume einfach verschwinden mit entsprechender Entfernung, es gibt keine Überblendung. Sie poppen dann einfach in die Szene, wenn sie sichtbar werden.

Daher nimmt man eher 4 Gruppen:
Gruppe0: Baum 
Gruppe1: LowPoly-Baum
Gruppe2: Billboard-Baum (Sprite)
Gruppe4: ausgeblendet

SpeedTree macht es genau so, du kannst dir ja mal einen SpeedTree anschauen. Es gibt 2 kostenlose Speedtree-Bäume im Store.
Allerdings bindet SpeedTree seine Assets direkt ins Unityterrain ein. Leider funktioniert dies nur mit SpeedTree-Assets, da hier spezielle Shader und Skripte verwendet werden und Unity diese Assets unterstützt.  "Custom-Assets" werden leider nicht unterstützt, dank Kooperation zwischen SpeedTree und Unity.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, genau, verwendet man auch für Häuser, Felsen ... Kann man aber eigentlich bei allen Objekten verwenden. Ich bin mir nur noch "unsicher" wie Unity die Meshes überblendet. In der Doku steht der Shader soll sich selbst um die Überblendung kümmern :blink: 
Naja SpeedTree hat das wohl gemacht, aber was ist mit anderen Objekten ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...