Jump to content
Unity Insider Forum

3D Format mit Textur in Unity Importieren


Sir_Mathew

Recommended Posts

Ich bin sowas von Ratlos.

Alle 3D Modelle in fbx, obj und dae die ich in Unity Importiere besitzen keine Textur und sind nur Grau.

Und zwar Importiere ich meine MDL Modelle von 3D Gamestudio in Fragmotion. Dort ist die Textur noch vorhanden.

Dann Exportiere ich sie in oben genannten Formate und zieh sie in Unity Assets rein. Aber keinerlei Textur Vorhanden.

Ich hab das vor einigen Jahren mal geschafft, aber jetzt, bekomme ich das nicht hin.

Was mach ich falsch? Welches Format sollte ich benutzen?

Hoffe ihr wisst wie das geht.

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist relaitv normal. Man kann zwar bei FBX sagen, dass die Texturen beim Export mit eingebunden werden sollen aber ob das immer funktioniert kann ich nicht sagen.
Es ist auch nicht so wichtig, dann du kannst die Texturen ja auch einfach nach Unity rein bringen. Die 2 Klicks machen den Kohl auch nicht fett.
Du musst ja sowieso ein Material in Unity erstellen, Shader einstellen und festlegen welche Texturkanäle genutzt werden sollen.
Das was du in einem 3D Programm bei deinen Materialien eingestellt hast, bringt in einer 3D Engine sowieso nichts, da das in der Regel komplett unterschiedliche Dinge sind.
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Formate sind eigentlich alle gleich gut.
Bei den 3D Objekten ist ja, egal welches Format du nutzt, immer die gleiche Info drin. Da werden alle Punkte des Meshes abgespeichert, also die x,y,z Koordinaten, und dann die Flächen die sich über gewisse Punkte spannen. Diese haben noch etwas mehr Infos, wie z.B. die Normale-Ausrichtung. Über alles wird dann noch die NormalMap abgelegt, die ja angibt welche Fläche an welchem Platz einer Grafik liegen würde.
Alle 3D Formate, die Unity importieren kann, haben diese Infos drin. Der einzige Unterschied, innerhalb der Formate, ist die Art und Weise wie die Daten abgelegt werden und ob da evtl. noch zusätzliche Dinge wie Animationen, Lichter, Texturen usw. mit eingebunden sind. Unity nimmt sich nur das, womit es auch etwas anfangen kann.
Aber es nimmt sich auch alles was an Infos drin ist! Wenn du also z.B. einen Ritter hast, der auch Animationsspuren mit bei hat, dann werden die auch importiert.
Sollte der Ritter in deiner Szene aber nur eine Statue sein, dann solltest du das Modell ohne die Animationsspuren exportieren um Datenmüll zu sparen.
Das kannst du aber machen wie du willst. Am Ende, wenn du mit Unity ein Spiel backst, werden nur die Dinge eingebaut, die im Spiel auch genutzt werden. Die Animationen würden dann gar nicht dabei sein wenn du sie nicht nutzt. Dein Projekt selber wird natürlich mit jeder Datei größer.
Ich selber habe ein Projekt welches auf der Platte 9GB groß ist. Das erzeugte Spiel ist aber nur 2,5GB groß. Unity ist also sehr gut im kleinhalten.

Bei den 3D-Grafikformaten ist es außerdem so, dass ncht alle das Gleiche können. OBJ ist der kleinste gemeinsame Nenner. Damit kann man aber (soviel ich weiß) keine Animationen mit abspeichern. Dann gibt es natürlich von jedem 3D Programm eigene Formate, die teilweise nur importiert werden können, wenn du ein Plugin in Unity installierst.
Ich persönlich würde immer zu FBX greifen, denn das ist ein modernes Austauschformat, was am meisten kann und von allen 3D Programmen unterstützt wird.
Aber auch hier gibt es Unterschiede, denn FBX wird alle paar Jahre erweitert/erneuert und nicht jedes Programm kann auch die neueste Version von FBX.

Bei den Texturen ist es ähnlich. Es gibt ganz einfache und unkoprimierte Formate wie BMP. Es gibt gute komprimierte Formate wie PNG und dann natürlich die Layer-basierten Formate wie PSD. Die alten, einfachen Formate können meist keine Transparenzen speichern. Die Layer-basierten Formate sind meist mächtig groß.

Unity kann fast alle Formate importieren und wandelt die intern um. Deine Textur, die du übergeben hast, wird davon aber nicht verändert. Du kannst also immer wieder was dran ändern.
Du selbst, stellst (wie bei allen Importierten Dingen) selber ein, welche Qualität du im Spiel haben willst. Du kannst also eine riesengroße PSD Textur importieren und Unity sagen, dass die Textur maximal 1024x1024 groß sein soll. Außerdem werden die Layer immer zu einem Layer zusammengefasst und am Schluss ist die Datei recht klein.
Du kannst auch unkomprimierte WAV Dateien für deine Sounds einladen, die gerne mal 100MB groß sein könnten. Unity macht da intern eine Ogg Datei draus, die winzig klein ist.

Also:
Mach dir keine Sorgen um die Performance. Egal welches Format du nutzt, Unity macht sich da ein eigens Format draus. Du musst aber gerade bei den Texturen selber ein wenig Hand anlegen, damit du die nötige Qualität bekommst. DU kannst Unity natürlich sagen, dass ein unkomprimiertes Bild auch unkomprimiert bleiben soll. Das wirkt sich dann natürlich auf den Speicher aus und der Speicher will ja wärend des Spiels befüllt werden. Das könnte sich dann schon auf die Performance auswirken.

Aber in der Regel, kannst du mit Unitys Einstellungen gut fahren und brauchst auch erst einmal nichts ändern.
Nimm die Formate, die du brauchst. :)

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eine Frage hab ich aber doch noch.

Ich kann mein Model in die Scene setzen und dann erst meine Textur auf das Model in der Scene ziehen und dann wir auch ein Material erstellt.

Kann ich das nicht in der Console vorher machen?

Also die Textur irgenwie ins Model in der Console reinziehen. Weil das geht nicht. Würde das Model gerne schon fertig haben, wenn ich es in die Scene ziehe.

Edit:

Habs doch hinbekommen.

Einfach bei Model Auswahl Import Settings ins Material gehen und die Textur einfügenB) 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...