3D Forum > Workflow 3DSMAX -> Unity3D

Workflow 3DSMAX -> Unity3D

06.01.2015 20:04
 
0nCeDi. 06 Jan. 2015, 20:04 Uhr
Guten Abend 3D-Ring Community,

Ich bin so zu sagen recht neu im Umgang mit Autodesk 3DS Max und habe eine Frage über den Workflow an euch.
Kurz gesagt versuche ich mehrere Objekte als ein einziges Objekt nach Unity3D zu übergeben und dort zu benutzen. Ich weiß schon, wie man mehrere Objekte verschmelzt, doch ich weiß nicht wie ich die Materials danach auf das verschmelzte Objekt setze. Bevor ich hier weiter mache, solltet ihr wissen, dass ich so gut wie keine Erfahrung mit UV-Maps habe.

Zum Beispiel benutze ich eines der freien Modelle von archive3d.net (http://archive3d.net/?a=download&id=7e843813)

Ich importiere das Modell in Autodesk 3DS Max.
Erstelle Materials für das Dach, Fenster, Hauswand, etc.
Danach verbinde ich die Materials mit den Objekten (Dach Material -> Dach Object)
-------
Von jetzt an, habe ich Probleme. Was ich probiert habe und nicht funktioniert hat:
Exportieren vom Modell als FBX-File mit Materials.
In Unity3D muss ich die Texturen dann ca. 1000 Unter-Objekten zuweisen. ( Anscheinend werden keine Materials mit übergeben)

Verschmelzen von allen Objekten in ein einziges Objekt. Immer wenn ich das tue, kann ich die Materials, welche ich erstellt habe, nicht mehr zuweisen. Schließlich gibt es jetzt nur noch ein Objekt, das ganze Haus.

Und jetzt, was ich glaube könnte funktionieren. Ich weiß es nur nicht um zu setzen.

Erstellen von UV-Maps für alle Objekte und davon die Informationen über ihre Lage speichern. Danach alle UV-Maps kombinieren und dann dem verschmolzene Objekt zuweisen. Als FBX-File exportieren und in Unity3D einfach nur das JPEG-File (= kombinierte UV-Maps als JPEG exportiert) dem Haus-Objekt zuweisen.

Ich hoffe jemand hier kann mir einen Hinweis geben.

Schöne Grüße aus dem Sauerland,
0nCe
 
SleepyDi. 06 Jan. 2015, 20:39 Uhr
Ich kann zwar deinem Workflow nicht ganz folgen aber ich werd auch wenn ich mit Maya Arbeite trozdem versuchen zu helfen.

So mach ich das:

1. Erstelle mir mein Unity Projekt mit allen Ordner die Unity Automatisch bei der Projekt Erstellung für mich anlegt.
2.Nun erstelle in in Unity im Ordner Assets (Wo ja normal die Modelle reinkommen) einen Ordner in deinem Fall 3Dsmax.

3.Kopierst du dort alle deine Texturen rein.
4.Du speicherst dort dein Modell als FBX ab.
5.Nun machst du in Max deine Texturen auf das Objekt drauf.
Wichtig hierbei ist nun das du die Texturen aus dem Unity/Asset Ordner nimmst.

Wenn du nun dein Modell in Max speicherst und nach Unity Switcht werden dort deine Modelle und deine UVs automatisch aktuallisiert.
Das gute hierbei ist das deine Texturen so in Unity un in 3Dsmax immer an der selben stelle liegen.
Änderungen werden dann Onthefly durchgeführt.

Du kannst so auch theoretisch dein ganzes level als einzige FBX speichern. der Nachteil ist das Unity bei Veränderungen immer das ganze Level neu einliest (die FBX) Hast du also ein Großes Level dauern Änderungen unter umständen ewig. Deswegen kannst du später dann auch die Modelle einzelln aus Max exportieren.
Wichtig ist auch das du die Koordinaten Freezen tust.

Noch ein Vorteil dabei ist das deine Modelle dann in Unity immer an der selben Stelle stehe wie in Max. Das heißt du musst die Modelle nicht händisch in Unity hin und her rücken.


 
TilesDi. 06 Jan. 2015, 21:16 Uhr
Ich habe das Thema mal in die Entwicklerecke geschubst smile
 
0nCeDi. 06 Jan. 2015, 22:06 Uhr
Danke für die raschen Antworten!
Ich weiß das echt zu schätzen.

@ Tiles
Sorry, ich war mir nicht ganz sicher, wo ich das Thema eröffnen sollte.


@Sleepy
Das hört sich alles sehr logisch an. Ich werde das als nächstes mal genau so versuchen.
-----
Ich erkläre auch mal kurz meinem Gedankengang, welchen ich hatte:

Modell heruntergeladen.
Unter D:modeltemphouse_1 entpackt.
Inhalt:
****.max
****.3DS
****.gsm
textures/stucco.jpg
textures/marble.jpg
textures/corian.jpg
textures/brick.jpg
textures/wood.jpg

Ich lade ein Model in 3DS Max (MAX-File) und erstelle, mit Hilfe der mitgelieferten Texturen, Materialien für das jeweilige Modell. Hier im Beispiel ein Haus. Danach exportiere ich das Modell als FBX mit Materialien integriert (gleicher Ort, wo die Texturen liegen) und importiere dieses in Unity3D (Import new Asset -> D:modeltemphouse_1house.fbx). Das Modell hat keine Materialien zugewiesen (in Unity3D).

Jetzt dachte ich mir, da ich in Unity3D auch einfach eine UV-Maps als JPEG angeben kann. Wäre das die einfachste Lösung, doch dann müsste das Modell ein einziges Objekt sein. Sonst hätte ich wieder hunderte von Unter-Objekten, welchen ich UV's oder Materialen zuweisen müsste... und so weiter...

Ich hoffe das ist verständlicher.
 
SleepyDi. 06 Jan. 2015, 22:44 Uhr
Moment: Zitat:
Jetzt dachte ich mir, da ich in Unity3D auch einfach eine UV-Maps als JPEG angeben kann.


Mit einer UV-Map legt man in einem 3D Programm fest wo auf einem 3D Objekt welches Pixel stehen soll das ist UV-Mapping.
In Unity kannst du kein UV-Mapping betreiben. Unity kann wenn du willst UVs nur lesen.
Und ob das im auch gleich mal klar ist: Eine Textur auf ein Objekt zu schmeißen ist kein UV-Mapping.



Das hier macht für mich überhaupt keinen Sinn:

Jetzt dachte ich mir, da ich in Unity3D auch einfach eine UV-Maps als JPEG angeben kann. Wäre das die einfachste Lösung, doch dann müsste das Modell ein einziges Objekt sein. Sonst hätte ich wieder hunderte von Unter-Objekten, welchen ich UV's oder Materialen zuweisen müsste... und so weiter...


Eine UV-Map ist was völlig anderes als eine jpg oder eine Textur.

Eine UV-Map wird nicht angegeben sondern das musst du ganz klasisch mappen.
Ich glaube du hast da eine falsche Vorstellung davon.

Mach das so wie ichs oben geschreiben hab und zieh dir paar Tutorials zum UV-Mapping rein.

Bei meinem Weg musst du in Unity keine Texturen mehr zuweisen. Wichtig ist nur das sich deine Texturen bereits im Unity Ordner befinden wenn du die Textur in Max deinem Objekt zuweist.

Wichtig ist also das dein Textur-Pfad in Unity und Max der selbe ist.
Dann musst du nämlich nichts mehr zuweisen.
 
0nCeDi. 06 Jan. 2015, 23:06 Uhr
Ja, das sprechen Leihe mit Fachmann...

Entschuldigung, ich kenne mich mit der Terminologie nicht so gut aus.

Bei UV-Maps rede ich immer von den bereits gerenderten

Z.B.: http://img25.imageshack.us/img25/6064/uv1.jpg

Ich wollte so etwas für das Haus machen und in Unity3D dieses JPEG angeben um dem Modell Wandfarbe, Backsteine, was auch immer zu geben.

Wie im ersten Post bereits erwähnt, ich habe keine Ahnung von UV-Maps und Mapping.

Ist bei deiner Methode das UV-Mapping auch notwendig?
Wenn ja, kann ich mir das bestimmt mit ein paar Tutorials beibringen.

Danke smile

 
SleepyDi. 06 Jan. 2015, 23:35 Uhr
Okay dann müssen wir erstmal ein paar dinge klar stellen damit wir die selbe Spache sprechen.

Das dein Bild wo du gepostet ist eine Textur !

Was ist UV-Mapping ?

UVMapping beschreibt den Vorgang deiner Textur zur sagen wo welches Pixel auf deiner Textur an welche Stelle auf deinem Mesh landen soll.

Das funktioniert ählich wie ein Schneider eine Jacke an eine bestimmte Person anpasst.

Hier mal ein Beispiel wie das Technisch funktoniert:

Nehmen wir an du hast einen normalen Quadratischen Karton auf den nun Bilder aufmalen willst. Dein Karton entspricht einem 3D Modell in deinem 3D Programm.

Nun musst du mit einem Cuttermesser den Karton so zerschneiden das du eine 2D Fläche bekommst.

So würde das dann aussehen:
http://www.sixl.de/i/2640/faltkarton-fefco-0443-schnitt-400.gif

Das ist dann deine Fertige UV die du so als Blanko Textur zb nach PS exportieren kannst.
Blanko bedeutet eine leere Textur ohne Inhalt nur mit den Ränder oder Wireframer deines Kartons.

Das sieht dann zb so aus:
http://th00.deviantart.net/fs70/PRE/i/2013/131/9/7/blue_steam_s_uv_layout_by_arminarkkim-d64yznn.jpg

(Oder anderst: Du machst dein 3D Objekt platt so das aus deinem 3D Objekt eine 2D Fläche machst die du bemalen kannst.

So und nun beginnst du damit dein Modell zu bemalen im grunde malst du also den Inhalt deiner UV mit Farbe oder Pixeln aus.
Daraus entsteht dann die Fertige Textur so wie du sie gepostet hast.

Damit ein Modell also Korrekt dargestellt werden kann, Benötigst du 3 dinge:

1. Das Modell
2. Die UV
3.Die Textur

oder anderst ausgedrückt:
1. Das Modell erstellen (Modellieren)
2.Festlegen wo welches Pixel hinkommt
3.Textur erstellen.

Ich hoffe du verstehst das man nicht einfach eine Textur auf ein Modell ohne UV-Map werfen kannst.

Das ist wie wenn du nem Mann eine Jacke verkaufen willst ohne seine Größe zu erkennen. Das wird nicht passen.

Wenn du nur die Textur ohne UV auf den Modell tust (Ohne UV) Dann weis Unity und Max nicht wohin welches Pixel soll. Es entsteht ein Fehlerhafte Textur auf deinem 3D Modell.

Das sieht dann so aus wie auf dem Bild unten

Du hast gesagt du hast die Modelle runtergeladen da stellt sich mir die frage ob diese vielleicht schon eine UV-Map haben.
Wenn da Texturen dabei waren ist das sehr wahrscheinlich.

UV-Mapping ist immer nötig wenn du eine Textur auf ein 3D Modell drauf machen willst. Bei Spielen also immer.
Es gibt ausser ein paar ausnahmen keine Alternative zum UV-Mapping diese ausnahmen sind aber sehr viel umständlicher als das UV-Mapping selbst einer dieser ausnahmen nennt sich zb Ptex kannst im Internet einiges darüber nachlesen.
Ich weiß gar nicht ob man mit 3DMax überhaupt mit Ptex arbeiten kann.

Tutorials findest du zu genüge wenn du in Googel UV-mapping 3Dsmax eingibst. Empfehlen kann ich dir keine da ich wie gesagt Maya verwende. Das UV-Mapping funktioniert aber in allen 3D Programmen gleich.

Diese Darstellung soll nur zu der groben Darstellung dienen wie UV-Mapping funktioniert.




 
 
0nCeMi. 07 Jan. 2015, 00:39 Uhr
Ahh super, danke für dein Engagement mir zu Helfen!

Leider sind keine UV-Maps enthalten. Im Unterordner texture sind Oberflächen von Holz und Bilder von einer Backsteinwand.


Also arbeite ich so:

- Modell laden
- Materialien erstellen und zuweisen
- ??? Dann UV-Maps machen?
- UV-Maps speichern
- ??? Danach noch mal in 3DS Max die Texture, welche aus dem UV-Mapping entstanden ist, zuweisen und somit die Materialien ersetzen?
- Exportieren als FBX
- Importieren in Unity3D
 
SleepyMi. 07 Jan. 2015, 01:10 Uhr
Ahh super, danke für dein Engagement mir zu Helfen!

Leider sind keine UV-Maps enthalten. Im Unterordner texture sind Oberflächen von Holz und Bilder von einer Backsteinwand.


Also arbeite ich so:

- Modell laden
- Materialien erstellen und zuweisen
- ??? Dann UV-Maps machen?
- UV-Maps speichern
- ??? Danach noch mal in 3DS Max die Texture, welche aus dem UV-Mapping entstanden ist, zuweisen und somit die Materialien ersetzen?
- Exportieren als FBX
- Importieren in Unity3D


Nein

Material bzw Textur haben mir der UV nichts zu tun.

Das leuft so:
1.Modell laden
2.UV-Erstellen und nach PS Exportieren. (So sieht eine leere UV aus:
http://fc02.deviantart.net/fs71/i/2012/200/b/9/yuki_modelling___uv_map_by_luneth22-d57wmx7.jpg
Das ist eine Schöne UV! smile
3. Die UV zb nach PS exportieren und dort bemalen
4.Textur aus PS Importieren und auf dein Modell legen somit passt die UV auf dein Modell.

Hier siehst du das ganz gut:
http://previewcf.turbosquid.com/Preview/2014/05/17__22_20_00/uv_map.jpg74e0f723-a5a9-4877-844b-5c292986d912Large.jpg

Die weißen Linien sind die UVs und im Hintergrund siehst du die textur wie du siehst passt UV und Textur perfekt übereinander. Du kannst dir in etwas vorstellen wie das Modell später aussieht.

Hier siehst du das auch schön:
http://i49.tinypic.com/2yo7s05.png

Weiße Linen die UVs
Im Hintergrund die Textur.

Bei den UVs ist es auch wichtig das sie Unfoldet sind das heißt deine UV muss völlig aufgeklappt sein. In 3Dsmax gibt es hierfür zb das Peltmapping wenn ich mich richtig errniere.

Was heißt Unfolden ?
Unfold kannst du dir so vorstellen.
Nehmen wir nochmal das beispiel mit dem Karton von vorhin.
Hier:
http://upload.wikimedia.org/wikipedia/commons/f/fe/Cube_Representative_UV_Unwrapping.png

Dein Karton ist nun kein Karton sondern besteht aus eine Plane oder änlichem nach dem du deine Plane nun ausgepackt hast und daraus eine 2D Fläche gemacht hast (die UV-;Map) hat deine Plane eine menge Falten und hängt an besimmten stellen noch zusammen.
So sieht das dann aus:
http://courses.cs.washington.edu/courses/cse458/10au/content/projects_458/project4b/images/1b.jpg

Die UV ist nicht zu gebrauchen.
Du musst erst einzelen Flächen erst ausbreiten so das schöne 2D Flächen entstehn.

Dabei ist es auch wichtig das die Flächen verhälnissmässig die gleiche Größe haben, darum macht man sehr oft eine Sog. Checker Textur auf das Modell das sind Schwarze weiße Schachmuster Texturen die verzerrungen und Fehler in der UV visuell anzeigen.

Hier ein Beispiel:
Das ist eine Schleche UV mit Verzerrungen:
https://courses.cs.washington.edu/courses/cse458/09au/content/html/exercises/images/uv/cube3.jpg

Die Kächsten sind Krum und schief und nicht alle sind gleich groß das bedeutet so wird später auch deine Textur aussehen.

Kannst dir auch mal das hier anschauen:
http://www.google.de/imgres?imgurl=https%3A%2F%2Fcourses.cs.washington.edu%2Fcourses%2Fcse458%2F09au%2Fcontent%2Fhtml%2Fexercises%2Fimages%2Fuv%2Fcube3.jpg&imgrefurl=https%3A%2F%2Fcourses.cs.washington.edu%2Fcourses%2Fcse458%2F09au%2Fcontent%2Fhtml%2Fexercises%2Fuv_exercise.html&h=359&w=569&tbnid=FjuwMV6kMnjL1M%3A&zoom=1&docid=jTxKSkAH6MtuuM&ei=6HisVJCmMsrMyAP3jIGQCg&tbm=isch&iact=rc&uact=3&dur=1000&page=6&start=277&ndsp=55&ved=0CKACEK0DMF44yAE

Das hier ist eine gute UV:
http://www.polygonblog.com/wp-content/uploads/2010/08/unwrapping.jpg

Alle Kächsten gleich groß alles sieht gleichmäßig aus.

Einen Quader zu UV-Mappen ist auch sehr einfach er hat 6 Seiten und Basta.

Aber eine Kugel oder ein Kopf wie hat ja sogesehen viele Seiten wenn du willst...

http://blog.hitchingsdesign.com/wp-content/uploads/2013/07/3D_mesh_to_UV_map.jpg

Also musst du dir genau überlegen wo du deinen Kopf aufschneidest.
Mit etwas Vorstellungskraft kannst du dir vielleicht denken wo der Macher seine Schnitte gesetzt hat.

Diese Schnitte nennt man übrigens Seam und es ist bei Seams sehr wichtig diese zu verstecken.
Seam sind sozusagen das ende deiner Textur oder der Scheitelpunkt wo sich deine Textur wiederholt.
Aus dem Grund solltest du Seams immer an stellen legen wo man sie nicht sieht.
zb Hinter dem Ohr entlang nach oben und unter den haaren verstecken.

Oft aus mehren UV-Shells.

Siehst du hier:
http://3.bp.blogspot.com/-0o4BoXkNddQ/UDIfaexkgkI/AAAAAAAAAYk/QuKZeLAetlM/s1600/Clothed_UV.jpg

UV-Shells sind sozusagen eintellen Puzzelteile deine 3D Meshs
Nochmal zu diesem Bild:
http://previewcf.turbosquid.com/Preview/2014/05/17__22_20_00/uv_map.jpg74e0f723-a5a9-4877-844b-5c292986d912Large.jpg
Die grünen Linen zeigen die die UV-Shells an (die Bruchstücker der Texturteile der Waffe.

Die UV-Shell musst du auf eine Power of Two Textur packen das bedeutet einer Textur die durch 2 teilbar ist.
Meist nimmt man hier zb 1024*1024 pixel. auch 2048 *2048* ist ein gängiges Format.
Mehr über Power of Two findest du hier:
http://previewcf.turbosquid.com/Preview/2014/05/17__22_20_00/uv_map.jpg74e0f723-a5a9-4877-844b-5c292986d912Large.jpg

So nun weißt du glaube ich fast alles theoretische über das UV-Mapping smile

Du kannst nach den Fachbegrifen die ich genannt habe auch gerne mal Googeln und dir einige Bilder auf Googel anschauen dann wird dir vielleicht auch vieles klarer.

Wie du merkst ist das alles viel komplizierter wie du warscheinlich dachtest smile
 
0nCeMi. 07 Jan. 2015, 02:15 Uhr
Wow, ja das ist ein wahnsinnig guter Einstieg für mich.
Soweit habe ich das verstanden, was du geschrieben hast und ich werde das in Kürze alles ausprobieren.

Jetzt habe ich noch eine, vielleicht nervende, Frage.

Und zwar hast du geschrieben, dass die Materialien nichts mit UV-Maps zu tun haben. Ich hatte vor, wie auch immer, in 3DS Max mit meinen erstellten Materialien, welche Wänden, Dach und Fenster zugewiesen sind, auf eine erstellte UV-Map zu rendern.
Kurz gesagt in 3ds Max so etwas als Bitmap/jpeg, welches Format auch immer, zu exportieren.
http://previewcf.turbosquid.com/Preview/2014/05/17__22_20_00/uv_map.jpg74e0f723-a5a9-4877-844b-5c292986d912Large.jpg

Ist so etwas nicht gängig mit Zbrush und Mudbox?

Ich finde es etwas umständlich ein Haus in Photoshop selbst zu bemalen wenn man Holz und Stein Texturen für das Erstellen von Materialien hat.

 
 

 


 
 
© 3D-Ring - deutsche 3D Software Community, Archiv 2001 - 2006