minuschki Geschrieben 1. Dezember 2019 Melden Share Geschrieben 1. Dezember 2019 Hallo zusammen Ich möchte gerne mit einem Script die Farbe von meinen Figuren von "grau" auf "schwarz" und umgekehrt umfärben. Als Startfarbe habe ich beiden Figuren ein Material "grau" angehängt und beide Figuren sind korrekt grau eingefärbt. Das Skript funktioniert bei der männlichen Figur (exportiert aus MakeHuman) wunderbar. Das Skript ist dem Objekt "base.objMesh" angefügt. Bei der weiblichen Figur (exportiert aus DAZ Studio) wird leider nur ein Teil der Beine schwarz gefärbt (siehe Bild). Das Skript ist dem Objekt "Genesis2Female.Shape" angefügt. Anstatt nur die Farbe des Materials zu ändern, habe ich ebenfalls die Variante mit dem Austauschen von 2 Materialien ausprobiert. Leider ist das Resultat unverändert. Ausser man ersetzt das graue Material durch das schwarze Material durch manuelles Hineinziehen im Inspector, dann klappt es - aber eben nicht mittels Script. Meine Vermutung ist nun, dass man beim (beziehungsweise vor dem) Exportieren als im fbx-Format aus DAZ Studio etwas speziell beachten muss. Mich wundert auch, dass das eine Objekt ".objMesh" heisst und das andere ".Shape". Hat aber vielleicht nichts zu bedeuten. Kann da jemand weiterhelfen? using System.Collections; using System.Collections.Generic; using UnityEngine; public class Farbe : MonoBehaviour { Renderer m_Renderer; public float farb = 0f; void Start() { m_Renderer = GetComponent<Renderer>(); } public void schatten() { if (farb == 0f) { farb = 1; m_Renderer.material.color = new Color32(0, 0, 0,255);//schwarz } else { farb = 0; m_Renderer.material.color = new Color32(96,96,96,255);//grau } } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
TheOnlyOne Geschrieben 2. Dezember 2019 Melden Share Geschrieben 2. Dezember 2019 Kann sein, dass du irgendwas fallsch machst bei dem export? FBX Modell hat eine .fbx Endung. Klappt es denn, im Editor die Material Farbe zu ändern? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
minuschki Geschrieben 3. Dezember 2019 Autor Melden Share Geschrieben 3. Dezember 2019 Die exportierte Datei hat die Endung .fbx und lässt sich auch ohne Probleme in Unity importieren. Die Bones lassen sich ebenfalls normal bewegen. Wie bereits erwähnt, kann ich im Inspector ein Material "grau" auf die Mesh-Datei ziehen und die komplete Figur färbt sich korrekt in der Farbe grau ein. Auch mit dem Material "schwarz" funktioniert das im Inspector ebenso. Wenn ich aber das gleiche versuche mittels Script (siehe oben), wird bei der Figur eben nur ein Teil der Beine schwarz eingefärbt. Der Rest bleibt grau. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 3. Dezember 2019 Melden Share Geschrieben 3. Dezember 2019 Sach ma. Kann es sein, dass du da 2 UV Maps auf der Figur hast? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
minuschki Geschrieben 3. Dezember 2019 Autor Melden Share Geschrieben 3. Dezember 2019 Um die Frage zu beantworten, kenne ich mich leider zu wenig mit DAZ Studio aus. Alles was ich dazu sagen kann ist, dass ich die Figur in DAZ Studio geladen habe und ohne etwas daran zu ändern als fbx exportiert habe. Nach dem Importieren in Unity werden allerdings mehrere Texturen (für Körper, Arme ...) auch mit importiert, obwohl die Figur einfach nur weiss dargestellt wird. Da ich diese Texturen aber nicht brauche, habe ich diese wieder gelöscht, denn meine Figur soll einfach nur grau oder schwarz sein. Ich habe mal die Datei Figur als fbx angehängt, so wie sie original aus DAZ Studio exportiert wurde. Vielleicht hilft das ja! Frau DAZ.fbx Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 3. Dezember 2019 Melden Share Geschrieben 3. Dezember 2019 Ich habe mir das mal angeschaut. Die Figur hat ganz viele Materialien und für jedes Material auch eine Polygonselektion. Und wie du siehst, ist das erste Material mit der ersten Selektion in der Hierachie genau das, was bei dir nur eingefärbt wird. Ich habe das jetzt nicht in Unity getestet und ich weiß jetzt auch nicht aus dem Stehgreif, wie man per code die Selektionen bestimmen kann. Aber ein Tipp: Versuch doch mal die Figur ohne Texturen zu exportieren. Da sollte dann auch die Selektionsinfo weg sein. Es könnte auch an dem Haken Collapse UV Maps liegen. Der Exporter hat nämlich wirklich eine einzige UV Map raus, wo alle Selektionen übereinander liegen. Also mach die Haken für die Textures und die UVMap mal raus. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
minuschki Geschrieben 3. Dezember 2019 Autor Melden Share Geschrieben 3. Dezember 2019 Ich habe nun deinen Rat befolgt und alle möglichen Haken rausgemacht. In Unity werden 9 Materialien importiert aber keine UV Maps. Ich weiss leider nicht, wie man diese 9 Materialien einzeln per code anspricht! Die Einfärbung klappt demzufolge wie gehabt wiederum nur teilweise. Sobald ich dann mein Material "grau" in den Inspector ziehe, verschwinden die 9 Materialien und es verbleibt mein Material "grau" und die Figur wird wie gewünscht eingefärbt. Anscheinend ist der Mesh Renderer in mehrere Teile unterteilt, wobei mir lieber wäre, wenn der in einem Stück wäre. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
minuschki Geschrieben 3. Dezember 2019 Autor Melden Share Geschrieben 3. Dezember 2019 Hallo zusammen Ich habe inzwischen herausgefunden, wie man einzelne Materialien in einem Skinned Mesh Renderer ansprechen bzw. umfärben kann! Man erstellt eine public Materialliste und kann dann innerhalb der rechteckigen Klammer angeben, welches Material aus der Liste eingefärbt werden soll. Danke an alle, die versucht haben zu helfen! public Material[] materials; m_Renderer.materials[8].color = new Color32(0, 0, 0,255);// Torso schwarz einfärben Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 4. Dezember 2019 Melden Share Geschrieben 4. Dezember 2019 Die erste der beiden Zeilen ist dabei aber überflüssig. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.