AbeinG Geschrieben 9. Mai 2013 Melden Share Geschrieben 9. Mai 2013 (bearbeitet) Blender zu Unity Schritt-für-Schritt Anleitung für einen sauberen Import in Unity Author: Arthur “AbeinG†Grohe Inhaltsverzeichnis I Einleitung II Ziel des Tutorials III Voraussetzungen 1 Los gehts! Einstellungen in Blender 1.1 Voreinstellung für User ohne Numpad 1.2 Aufräumen der Szene 1.3 Größenordnungen von Unity und Blender 1.4 Speichern der Einstellungen 2 Erstellung des 3D-Modells 3 Export 3.1 Eigenschaften des Modells überprüfen 3.2 Korrigieren der Rotation 4 Import 5 Weiterführende Links I Einleitung Hallo liebe Spieleentwickler-Kollegen! Endlich bin ich dazu gekommen, dieses Tutorial zu schreiben. Die großartige freie 3D-Grafiksoftware Blender sowie die fantastische auch kostenlos erhältliche Game Engine Unity sind hochkomplexe Anwendungen. Da es nicht sichergestellt ist, dass die Blendermodelle ohne Weiteres in Unity importiert werden können, ist es angebracht, die Blendermodelle zu dem von Unity bevorzugten FBX Format zu exportieren. Damit das Modell möglichst ohne weitere Konfiguration in Unity benutzt werden kann, sind ein paar wenige aber wichtige Einstellungen in Blender notwendig. II Ziel des Tutorials In diesem Tutorial werden alle Arbeitsschritte erläutert, die eine schnelle und einfache Benutzung des erstellten 3D-Modells in Unity ermöglichen. Die Einstellungen können auch gespeichert werden, sodass nicht bei jedem neuen Modell erneut alle Einstellungen vorgenommen werden müssen. Nicht erläutert wird der Prozess des Erstellens eines kompletten 3D-Modells. Das wäre ein gutes Thema für ein extra Tutorial. Dazu gibt jedoch bereits auch etliche gute Tutorials. Zum Beispiel, für low-poly Modelle kann ich empfehlen: http://cg.tutsplus.c...blender-part-1/ III Voraussetzungen Blender, Version 2.6x, Sprache Englisch, Grundkenntnisse reichen aus Unity, Version 4x, Sprache Englisch, Keine Kenntnisse notwendig Vorsicht Mac-User: Ich entwickle das Tutorial auf einem Windows Betriebssystem, deswegen werden Mac-User den beschriebenen Arbeitswegen evtl. nicht folgen können. Anmerkungen zu Formatierungen: Alle offiziellen Bezeichnungen im GUI der Programme werden kursiv formatiert. 1 Los Gehts! Einstellungen in Blender Im Folgenden werden alle Einstellungen beschrieben, die ich im Laufe der Zeit bei der Arbeit mit Blender vorgenommen habe, die sich mir als hilfreich herausgestellt haben. Ich gehe zunächst von einem Blender mit Werkseinstellungen aus. Als erstes solltet ihr jetzt Blender öffnen und ein leeres Projekt vor euch haben, das ungefähr so aussieht: Um die GUI etwas übersichtlicher zu machen, sollten folgende Einstellungen vorgenommen werden: 1.1 Voreinstellung für User ohne Numpad Da man in Blender die einzelnen Seitenansichten(Top, Front, Right, etc.) der Kamera durch das Numpad umschalten kann, haben User mit Tastaturen ohne Numpad erstmal ein Problemchen. Um das zu lösen, gibt es in den Einstellungen von Blender die Möglichkeit, die Tasten des Numpad durch die horizontal angeordneten Zahlentasten zu ersetzen. Sehr praktisch. Die Einstellung ist zu finden unter: Menüpunkt File->User Preferences->Input Tab->Checkbox Emulate Numpad 1.2 Aufräumen der Szene Die Standard-Szene von Blender ist wenig hilfreich, wenn man ein neues Modell erstellen will. Folgendes sollte also gemacht werden: Löschen der Kamera: Rechtsklick auf Kamera->X->Enter Löschen des Würfels: Rechtsklick auf Würfel->X->Enter Löschen des Lichtes: Rechtsklick auf Licht->X->Enter Auf Frontalansicht schalten: Numpad-1 Perspektive auf orthogonal schalten: Numpad-5 (Links oben im 3D-View müsste danach Front Ortho stehen) Object Tools-Bereich ausblenden: “T†auf der Tastatur Jetzt sollte das Ganze schon etwas aufgeräumter aussehen, in etwa so: Weitere Aufräumarbeiten, die meiner Meinung nach sinnvoll sind: Unten der Bereich der Timeline ist zu groß, also etwas kleiner ziehen. Der Outliner Bereich oben rechts kann weg. Dazu im Properties Bereich darunter den Cursor in die rechte obere Ecke bewegen, sodass der Cursor zum Kreuz wird. Danach Klicken und gedrückt lassen und den Cursor nach oben schieben, und wenn ein großer nach oben gerichteter Pfeil erscheint, loslassen 3D-Manipulator Gizmos sind nur im Weg: Im 3D-View in der unteren Leiste den gedrückten Button mit den drei farbigen Linien deaktivieren: Grid-Floor ausblenden, denn er stört nur, wenn man sich das Modell von beliebigen Winkeln oder mit perspektivischer Ansicht betrachten möchte: Dazu auf der Tastatur “n†drücken, damit rechts im 3D-View ein Menü erscheint. Dort im Bereich Display die Checkbox Grid Floor deaktivieren. 1.3 Größenordnungen von Unity und Blender Da das Modell letztendlich in Unity genutzt werden soll, sollte man sich an die Vorgaben von Unity halten. Diese besagt 1 Unit = 1 Meter in Unity. Also wenn man einen Menschen Modelliert, sollte dieser höchstens 2 Units groß sein, in Unity. Das ist insbesondere wichtig für die Physik-Engine, denn diese berechnet die Masse von Objekten anhand von Größe und dem Mass Property in der Rigidbody Komponente. Nun zu Blender, woher soll man nun wissen, wie groß das Modell in Blender gemacht werden soll, damit es genau den Vorgaben in Unity entspricht? Ganz einfach: Im Properties Bereich auf den Tab Scene wechseln, dann im Bereich Units auf Metric schalten Jetzt stellen die Raster im 3D-View je nach Zoom-Level entweder Meter, Zentimeter, Dezimeter, Millimeter usw. dar! Welche Maßeinheit eine Rastereinheit gerade darstellt, kann im linken oberen Rand des 3D-View eingesehen werden: 1.4 Speichern der Einstellungen Damit nicht bei jedem öffnen von Blender erneut diese Einstellungen vorgenommen werden müssen, einfach im Menü auf File->Save User Settings klicken. 2 Erstellen des Modells Jetzt sind alle Voreinstellungen gemacht, um das Ertellen eines Modells für Unity so schnell und einfach wie möglich zu machen. Wie gesagt, der Prozess des Erstellens des Modells ist nicht Bestandteil des Tutorials. 3 Export 3.1 Eigenschaften des Modells überprüfen Befindet sich der Origin(Zentralpunkt des Objektes, dargestellt als farbiger Punkt) am richtigen Ort? (Empfohlen wird der Boden des Objektes). Um den Origin zu verschieben, klickt man mit der Maus mit linksklick an die gewünschte Stelle und dann per Shift+Ctrl+Alt+C->Set Origin->Origin to 3D-Cursor Passt die Größe des Objektes im Bezug zur Größenordnung? (Meteranzeige links oben beachten) Wenn nicht, dann einfach mit “S†skalieren und anschließend den Scalefactor in den Objekt-Properties(“Nâ€) “normalisieren†Normalisieren der Lokation, Rotation und Skalierung des Objektes: In den Transform Einstellungen der Objekt-Properties(Sichtbar machen mit “Nâ€) muss sowohl Location, Rotation als auch Scale des Objektes auf 0 stehen. Bei Scale natürlich auf 1. Sollte das nicht der Fall sein, dann mit Strg+A->Apply->Location/Rotation/Scale nachhelfen. 3.2 Korrigieren der Rotation Wenn man ein Blendermodell in Unity exportiert, sind die Y- und Z-Achsen vertauscht. Um dieses Problem zu lösen, müssen zwei Schritte unternommen werden: Rotieren des Modells um -90° um die X-Achse, sodass es, in Blender gesehen, auf dem Rücken liegt. Anschließend Strg+A->Apply->Rotation Beim Export in den Export FBX Einstellungen die Forward-Achse auf Y Forward, die Up-Achse auf Z Up stellen Vergleiche mit diesem Screenshot: Wenn sich mehrere Objekte in der Szene befinden, zum Beispiel noch eine Kamera oder Licht, sollte man nur das zu exportierende Objekt mit Rechtsklick markieren, damit beim Export nur das Modell benutzt wird. Untiy kann mit Lichtern und Kameras aus Blendern nichts anfangen und importiert diese nur als empty Objekte. Also im Menü File->Export->Autodesk FBX anklicken, um zur Exportansicht zu gelangen. Dort muss eigentlich nichts mehr eingestellt werden, außer dem Speicherort und dem Namen des Objektes. Am besten als Speicherort direkt in den Asset Ordner des Unity-Projekts speichern. Falls mehrere Objekte in der Szene sind und nur das ausgewählte exportiert werden soll, kann noch die Checkbox Selected Objects angehakt werden. 4 Import Unity öffnen, mit Projekt, in dem das Model abgespeichert wurde Im Project Panel das Modell anklicken Rechts im Inspector sind die Import Settings sichtbar Im Meshes Bereich den Scale Factor auf 1 stellen(oder durch Skript erledigen lassen) Auf Button Apply klicken Fertig! Das Modell kann nun benutzt werden! Ein sauber importiertes Modell sieht dann so aus: Ich hoffe euch hat das Tutorial spaß gemacht und ihr konntet den einen oder anderen Tipp mitnehmen! 5 Weiterführende Links Wer noch mehr Hilfe zum Thema Import/Export braucht, dem sind folgende Links angeboten: Animationen: http://cgcookie.com/unity/2011/12/05/exporting-characters-from-blender/ bearbeitet 12. Mai 2013 von AbeinG 5 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AgentCodeMonk Geschrieben 9. Mai 2013 Melden Share Geschrieben 9. Mai 2013 Zu 4.4: http://forum.unity-community.de/topic/4517-modelimporter-scale/ ..fiel mir da spontan ein 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Roadrunner Geschrieben 9. Mai 2013 Melden Share Geschrieben 9. Mai 2013 Sehr schönes Tuturial. Finde aber das ein wichtiger Punkt vergessen wurde> Achsen in Blender und Unity. Die Z und Y Achse sind vertauscht, viele Anfänger haben da noch Schwierigkeiten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AbeinG Geschrieben 10. Mai 2013 Autor Melden Share Geschrieben 10. Mai 2013 @Textor: Oh, da hast du völlig Recht. Ich werde das Problem sofort angehen. Ehrlich gesagt habe ich mich nie so sehr damit auseinander gesetzt. Wenn man die Modelle in Blender so macht, dass sie in der Frontalansicht wirklich nach vorne gucken und dann einfach zu FBX exportiert, werden sie zumindest richtig rotiert in Unity angezeigt. Aber die Achsen des Modells entsprechen dann nicht den globalen Achsen, was natürlich später zu komplizierteren Umrechnungen führt! Danke dass du mich nochmal daran erinnert hast, ich werde ab jetzt auch immer dafür sorgen, dass die Modelle exakt den Unity-achsen entsprechen. Update des Tuts folgt! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Xenes Geschrieben 10. Mai 2013 Melden Share Geschrieben 10. Mai 2013 @Textor: Oh, da hast du völlig Recht. Ich werde das Problem sofort angehen. Ehrlich gesagt habe ich mich nie so sehr damit auseinander gesetzt. Wenn man die Modelle in Blender so macht, dass sie in der Frontalansicht wirklich nach vorne gucken und dann einfach zu FBX exportiert, werden sie zumindest richtig rotiert in Unity angezeigt. Aber die Achsen des Modells entsprechen dann nicht den globalen Achsen, was natürlich später zu komplizierteren Umrechnungen führt! Danke dass du mich nochmal daran erinnert hast, ich werde ab jetzt auch immer dafür sorgen, dass die Modelle exakt den Unity-achsen entsprechen. Update des Tuts folgt! liegt dran dass Unity gleich um 90° rotiert - wenn du aber mal den MeshFilter anwählst, dann siehst dus wies falschrum ist. Bei allen unwichtigen Objekten ist das irrelevant, aber sobald sich etwas per script bewegt oder verändert, kann man sich schonmal mit der falschen Rotation die haare ausreissen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
schoen08 Geschrieben 10. Mai 2013 Melden Share Geschrieben 10. Mai 2013 Ein sauber importiertes Modell sieht dann so aus: So sauber sieht das aber nicht aus... Die Lichtverteilung ist eine Katastrophe , hier würde ich bei den Import Settings noch die Normals und Tangents ändern. Muss man eig. bei jedem Import machen, sonst stimmt das Licht einfach nicht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Elan Geschrieben 11. Mai 2013 Melden Share Geschrieben 11. Mai 2013 Ist zwar schon recht alt, aber vielleicht ein weiteres nützliches Beispiel: http://cgcookie.com/...s-from-blender/ Hier werden auch die Anmationen aus Blender mit übernommen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AbeinG Geschrieben 12. Mai 2013 Autor Melden Share Geschrieben 12. Mai 2013 @schoen08: Katastrophen sind für mich was anderes..., das mit den Normalen und Tangenten ist eher Kosmetik. Die wirklich wichtigen Einstellungen sind die Größenordnung und Rotationen, wenn die nicht richtig korrekt sind, gibts später nur Probleme. Aber trotzdem guter Hinweis! @Elan: Jap, das Thema Animationen hätte ich auch noch reinnehmen können, aber das war mir dann zu viel Arbeit ^^ Aber danke für den Link, werde ich auch noch direkt ins Tutorial packen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AbeinG Geschrieben 12. Mai 2013 Autor Melden Share Geschrieben 12. Mai 2013 habe einen 5ten Punkt "Weiterführende Links" erstellt. Wer noch paar tolle Ressourcen zum Thema hat immer raus damit, das kann dann hier schön gesammelt werden Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Morenar Geschrieben 12. Mai 2013 Melden Share Geschrieben 12. Mai 2013 Schönes Tut, das mit den Achsen ist sehr wichtig . Hatte da auch meine Probleme. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
HortusLongus Geschrieben 13. Mai 2013 Melden Share Geschrieben 13. Mai 2013 Gutes Tutorium, wird bestimmt einigen Usern helfen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AbeinG Geschrieben 13. Mai 2013 Autor Melden Share Geschrieben 13. Mai 2013 danke, leute Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Deinemudder19 Geschrieben 22. Mai 2013 Melden Share Geschrieben 22. Mai 2013 Geiles Modell hast du da gemacht 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Optic Geschrieben 24. Juli 2013 Melden Share Geschrieben 24. Juli 2013 Ich hätte noch ne Frage, und zwar gibt es einen patent-Weg dass die Texturen da bleiben wo sie sollen ? Und welcher TexturTyp sollte es sein, hab mal von UV Mapping gehört.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Tiles Geschrieben 24. Juli 2013 Melden Share Geschrieben 24. Juli 2013 Hm, du würfelst da so viel durcheinander dass ich meine Zweifel habe ob du die Antwort überhaupt verstehst. Ich probiere es trotzdem mal ^^ Texturen bleiben da wo das UV Mapping sie hintackert. Das ist dann auch gleich der Patentweg: UV mapping. Das ist der Vorgang wo dein dreidimensionales Objekt auf eine zweidimensionale Fläche ausgebreitet wird. Irgendwie muss man ja die zweidimensionale Textur auf den dreidimensionalen Körper bringen. Stell dir das wie ein Schnittmuster vor. Eine Hose besteht ja aus glatten Stoffstücken. Und wenn du die Hose anziehst ist das dann quasi dreidimensional um deine Beine rum. Wie man das im Detail macht ist ein ganz eigenes Kapitel. Es gibt die unterschiedlichsten Methoden wie man ein Mesh mappen kann. Zylindrisch, kubisch, man kann es mitttels bestimmten Algorithmen abwickeln oder per bestimmter Ansicht projizieren. Das kommt ganz darauf an welches Programm du nimmst und was du mappen willst. Es gibt zwar unterschiedliche Texturtypen, aber ich bezweifle dass wir zwei das Gleiche drunter verstehen. Es gibt die Diffuse, das ist das eigentliche Bild, das was gemeinhin als die Textur bezeichet wird. Es gibt aber auch noch eine Normalmap, eine Specularmap, eine Lightmap. Oder so spezielle wie Cavity map. Das sind alles ganz bestimmte Arten von Texturen die jeweils einen ganz anderen Zweck haben. Eine Normalmap gaukelt dir zum Beispiel vor dass es Geometrie gibt wo es eigentlich nur eine glatte Fläche gibt. Eine Specularmap ist eine spezielle Schwarzweisstextur die dem Shader sagt wo das Mesh glänzen soll. Eine Lightmap sagt dem Shader welche Teile des Meshes hell oder dunkel sein sollen. Was du wahrscheinlich meinst sind die verschiedene Bildformate. Bitmap, Jpeg, PNG, etc. . Dem Mesh ist es im Grunde egal welches Format es ist. Bis auf Transparent oder nicht halt. Bei Transparenz brauch es halt 32 Bit. Aber ansonsten ist es fast egal. Unity wandelt das dann eh ins Hausformat um. Was man aber vermeiden sollte ist Jpeg. Das verwendet ein verlustbehaftetes Kompressionsverfahren. Da leidet die Qualität. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
HortusLongus Geschrieben 25. Juli 2013 Melden Share Geschrieben 25. Juli 2013 Zu den Texturtypen könnte man noch erwähnen, daß Tiles hier konkret auf Unity eingeht (in einem Unity-Forum auch logisch ). Allgemein kannst du natürlich auch Texturen ohne Shader und Shader ohne Texturen benutzen. Und das erwähnte UV ist eigentlich nicht mehr als XY für Texturen, im 3D-Raum (XYZ) kannst du dann eben UVW benutzen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Tiles Geschrieben 25. Juli 2013 Melden Share Geschrieben 25. Juli 2013 Stimmt. Aber ich glaube wenn ich jetzt noch mit 3D Texturen und prozeduralen Shadern angefangen hätte würde das Optic gar nicht mehr verstehen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kumaro Geschrieben 26. Februar 2015 Melden Share Geschrieben 26. Februar 2015 Hi, ich bin neu hier im Forum und auch wenn der Beitrag hier schon Steinalt ist würde ich mich hier gerne noch einmal einklinken . Ich glaube worauf Optic hinaus wollte ist: Wie sorgt man dafür das in Blender exportierte Objekte in Unity direkt die Texturen und Materialen behalten? Ich habe erst vor kurzem damit begonnen mich mit Unity und Blender zu beschäftigen aber was mir sofort aufgefallen ist, dass scheinbar Texturen und Materialen nicht mit exportiert werden oder? Wenn ich mein Objekt in Unity habe ist es erst mal wieder "nackt" und ich muss alle Texturen wieder per Hand zuordnen. Ist das bei Unity einfach so oder mach ich eventuell noch etwas falsch? Viele Grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sleepy Geschrieben 26. Februar 2015 Melden Share Geschrieben 26. Februar 2015 Ne du machst nichts falsch! Dein 3D Modell ist eine Datei und deine Textur ist ebenfalls eine Datei. Damit die Textur also mitgeht müsste das 3D Format Modell und Textur in einer File abspeichern und das geht nicht. Es gibt aber nen Trick wo du machen kannst: Wenn du deine Textur in dein Unity Projekt kopierst (zb im Explorer) und nun in Blender diese Textur verwendest (Die im Unity Projekt liegt) Und dein Modell abspeicherst ! Dann hat Blender und Unity den selben Textur Pfad. Somit ist dein Modell in Unity fertig texturiert. Hoffe du verstehst die logik und wie ich das meine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kumaro Geschrieben 27. Februar 2015 Melden Share Geschrieben 27. Februar 2015 Hi Sleepy. Das klingt denkbar einfach ^^. Das werde ich mal probieren ; ). Vielen Dank für den tipp! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.