BodyPaint 3D und Maya
Das Austausch-Plugin unterstützt die Maya-Versionen ab 2012.
Bevor es losgehen kann, beachten Sie diese Punkte:
– BodyPaintExchange.bundle (MAC)
im Plugin-Verzeichnis von Maya befinden:
Mac: "Macintosh HD/Programme/Autodesk/maya version/maya".
Rechtsklicken Sie auf die Maya-Startdatei und wählen Sie Paketinhalt zeigen. Der Pfad ist dann dieser: Contents/macOS/plug-ins.
PC: "C:\Programme\Autodesk\Maya version\bin\plug-ins".
- BodyPaintExchangeUI.mel
- usersetup.mel
kopieren Sie nach:
Mac: "Macintosh HD / Benutzer / Für alle Benutzer / Autodesk / Maya / Scripts".
Unter Windows müssen Maya-Skripte (im Gegensatz zu macOS) für jeden User separat installiert werden.
PC (Win7 und höher): "Nutzer\Dokumente\ Maya \ Scripts".
Beachten Sie, dass diese drei Skriptdateien jeweils nur einmal in den Maya-Pfaden vorkommen dürfen.
Beachten Sie, dass im Folgenden immer von BodyPaint 3D die Rede ist, obwohl es dieses als Produkt garnicht mehr gibt. Es ist dann immer der BodyPaint 3D-Funktionskomplex innerhalb von Cinema 4D gemeint.
Das Maya-BodyPaint 3D Austausch Plugin ermöglicht das Texturieren von Maya-Objekten in BodyPaint 3D. Die zu texturierenden Objekte werden direkt aus Maya heraus nach BodyPaint 3D gesendet, dort bearbeitet und anschließend zurück exportiert. Dazu übermittelt das Plugin die Geometrie-, Material-, Licht-, UV- und eventuell schon vorhandene Texturdaten nach BodyPaint 3D. Beim Zurücksenden nach Maya werden die Textur- und Materialdaten übertragen und in der Szene aktualisiert.
Maya -> BodyPaint 3D (BodypaintExchange.mll/bundle)
Zuerst müssen in Maya die Objekte mit Materialien versehen werden. Bitte beachten Sie, dass die verwendeten Materialien schon die gewünschten Eigenschaften aufweisen, da in BodyPaint 3D der Materialtyp nicht geändert werden kann (wenn beispielsweise in BodyPaint 3D einem Lambert-Material eine Spiegeltextur zugewiesen wird, kann nach dem Zurücksenden an Maya diese Textur nicht automatisch im Material gesetzt werden). Die Objekte selbst werden alle als Polygon-Objekte exportiert. Dazu wandelt das Plugin NURBS- und SubdivSurface-Objekte mittels der MEL-Commandos nurbsToPoly und subdivToPoly in polygonale Objekte um. Alle Geometriedaten werden entsprechend dem angegebenen Faktor skaliert. Die Objektachsen zentriert der Exporter innerhalb der Objekte, um das weitere Handling innerhalb von BodyPaint 3D zu vereinfachen (Drehen der Kamera um das Objekt). Alle UV-Sets legt das Exchange-Plugin auch in BodyPaint 3D an. Bei per-face Materialien werden Selektions-Tags erzeugt und diesen das jeweilige Material zugewiesen. Die aktuelle Kameraposition wird übernommen und im BodyPaint 3D Editor gesetzt. Alle Lichtobjekte überträgt das Plugin mit den entsprechenden Eigenschaften (soweit möglich). Alle Materialeigenschaften werden auf BodyPaint 3D Materialien übertragen (s. Transfer-Beschränkungen). Polygone mit mehr als 4 Punkten trianguliert das Exchange-Plugin und versteckt diese neu erzeugten Kanten in BodyPaint 3D. Den Befehl für das Exportieren von Objekten Send to Bodypaint finden Sie im Menü von Maya unter BodyPaint 3D. Beim Klick auf das rechte Icon öffnet sich der Austausch-Dialog.
Für das Austauschen der Objekte steht Ihnen eine Anzahl von Einstellmöglichkeiten zur Verfügung.
BodyPaint 3D Path (BodyPaint 3D Pfad)
Hier müssen Sie angeben, wo sich die Cinema 4D Applikation befindet. Geben Sie den vollen Pfad des Programms an.
Default Texture Path (Standard-Textur-Verzeichnis)
Dieser Pfad gibt den Ort an, wo BodyPaint 3D neu erzeugte Texturen standardmäßig speichert. Bitte überprüfen Sie, ob der Pfad gültig und nicht schreibgeschützt ist, da sonst der Dateiaustausch nicht funktioniert.
Austausch-Objekte (Objects to Exchange)
Mit dieser Option können Sie bestimmen, ob die gesamte Szene oder nur die selektierten Objekte nach BodyPaint 3D gesendet werden.
Objekt-Skalierung (Object Scale)
Dieser Skalierungsfaktor gibt an, wie stark das Objekt in BodyPaint 3D vergrößert wird. Das ist notwendig, da sonst in Maya erstellte Objekte aufgrund der verschiedenen 3D-Koordinatensysteme in BodyPaint 3D viel zu klein sein würden. Der voreingestellte Faktor von 100 sorgt für eine angemessene Größe.
NURBS -> Use Cage Points and Subdivision Surface
Mit dieser Option legen Sie fest, dass aus einem Nurbs-Objekt ein Low-Polygonmodell anhand der Cage-Punkte erzeugt wird.
In BodyPaint 3D wird dieses Polygon-Objekt in einem Subdivision-Surface-Objekt angelegt. Das resultierende Objekt entspricht weitestgehend dem NURBS-Objekt in Maya.
Verwenden Sie diese Option nur, wenn Sie Probleme mit den UV-Koordinaten haben. Damit werden NURBS-Objekte vor dem Senden mit dem MEL-Befehl rebuildSurface umgewandelt, um z.B. Überschneidungen im UV-Raum zu vermeiden.
SUBDIV -> Use Cage Points and Subdivision Surface
Hiermit erzeugt das Plugin aus Subdivision-
Surface-Objekten Low-Polygonmodelle, welche dann in BodyPaint 3D in ein Subdivision Surface gelegt werden.
Resize UVs to Fit Subdivision Surface
Durch die Use Cage Points and Subdivision Surface Umwandlung kann es vorkommen, dass sich die UV-Koordinaten auf einen viel zu großen Bereich erstrecken. Durch diese Option wird der gesamte UV-Raum automatisch auf den Bereich (0.0,0.0) – (1.0,1.0) skaliert.
Unter bestimmten Voraussetzungen können die UV-Koordinaten jetzt (bei älteren Maya-Versionen muss die UV-Bearbeitung in Maya selbst vorgenommen werden) in BodyPaint 3D geändert und zurück zu Maya geschickt werden. Dazu muss zuvor allerdings in Maya die "Construction History" gelöscht werden. Sollte dies nicht gemacht worden sein, gibt es eine Fehlermeldung in Maya. Die UVW-Tags werden dann in BodyPaint 3D gesperrt (manuelles Entsperren hilft hier aber auch nicht weiter, Maya weist die UV-Änderung dann zurück).
Do Not Wait for BodyPaint 3D (One Way)
Um Daten nur nach BodyPaint 3D zu schicken und nicht wieder zurück nach Maya, können Sie diese Option wählen. Maya wartet dann nicht auf die Rücksendung der Daten.
Nach dem Klicken auf Ok öffnet sich das Warte-Fenster in Maya.
Nach dem Starten von Cinema 4D kommt dieses Programm in den Vordergrund und Sie können sofort mit dem Bemalen der Objekte beginnen (wechseln Sie ggf. in das BodyPaint 3D Layout).
Um die bearbeiteten Objekte zurück nach Maya zu schicken, gehen Sie einfach im Datei-Menü auf Zurücksenden an Maya.
Jetzt werden alle Texturen gespeichert und die Texturpfade in Maya auf das neue Textur-Verzeichnis gesetzt. Alle Eigenschaften der Materialien werden aktualisiert. Nach dem Zurücksenden verschwindet das Warte-Fenster und Maya kommt wieder in den Vordergrund.
Maya und Cinema 4D sind beides Programme mit einer unzähligen Anzahl von Features. Es bleibt deswegen nicht aus, dass sich Unterschiede ergeben in Hinsicht auf das Handling von Objekten, UV-Koordinaten, Materialien und Texturen. Als Konsequenz daraus gibt es einige Beschränkungen, die Sie kennen sollten.
Grundsätzlich werden nur Textur- und Material-Daten zurück nach Maya geschickt.
Vor dem Exportieren nach BodyPaint 3D müssen Sie Ihre Objekte in Maya mit Materialien versehen. Jedes Material wird mit allen Eigenschaften in BodyPaint 3D entsprechend erzeugt, soweit die jeweilige Materialeigenschaft vorhanden bzw. in ihrer Interpretation nicht zu unterschiedlich ist. Einem Material wie beispielsweise Lambert, welches keinen Spiegelungskanal besitzt, kann nach dem Zurücksenden an Maya eine in BodyPaint 3D erstellte Reflektivitäts-Textur nicht automatisch zugewiesen werden. Hierzu müssen Sie das Material mit einem ersetzen, welches die gewünschte Eigenschaft besitzt, und im dort vorhandenen Kanal die jeweilige Textur von Hand einstellen (alle Texturen werden bei Zurücksenden im angegebenen Texturverzeichnis gespeichert). Shading-Gruppen werden nicht unterstützt.
Das Plug-in nimmt die Zuordnung der Texturkanäle folgendermaßen vor:
Maya | BodyPaint3D |
Color | Farbe | Diffusion | Diffusion | Incandensence | Leuchten | Transparency | Transparenz | Reflected Color | Reflektivität< (Spiegelungs-Ebene) | Ambient Color | Umgebung | Bump (nur Textur) | Relief | Specular Color | Reflektivität (Glanzlicht-Ebene) |
Schon vorhandene Texturen, die Sie in Maya zugewiesen haben, werden beim Senden an BodyPaint 3D in den angegebenen Texturordner kopiert. In BodyPaint 3D können Sie Texturen beliebig hinzufügen oder entfernen. Für neue Texturen werden in Maya File-Nodes im Material angelegt und dort der jeweilige Texturname gesetzt. Bei nicht vorhandenen Texturen werden die File-Nodes gelöscht. Spezielle Shader oder Texturkanäle können nicht übertragen werden. Sofern aber ein Farb-Kanal vorhanden ist, wird dieser übermittelt. Um eine Textur in einem unbekannten Kanal zu erstellen, können Sie z.B. den Farb-Kanal benutzen und die Textur nach dem Zurücksenden per Hand dem eigentlichen Kanal zuweisen.
Die UV Koordinaten werden von allen Objekten nach BodyPaint 3D übertragen.
Error: Cannot find command BodypaintExchange
Die Datei BodyPaintExchange.mll (PC) bzw. BodyPaintExchange.lib (macOS) fehlt im ../Maya/bin/plug-ins/ Verzeichnis oder im Plugin-Manager wurde das Plugin nicht geladen. Dazu überprüfen Sie bitte, ob sich die MEL-Scripte im angegebenen Ordner befinden (Installationsanleitung).
Der Exporter kann die ausführbare Datei von Cinema 4D nicht finden. Bitte setzen Sie den Cinema 4D-Pfad auf die entsprechende Datei.
Es kommt nicht die gesamte Szene in BodyPaint 3D an
Dies geschieht aufgrund eines MEL-Bugs, der bei Select all nicht alle Objekte selektiert. In diesem Fall müssen Sie alle Objekte der Szene manuell selektieren und dann die Selektion statt der ganzen Szene transferieren.
Anmerkung für Macintosh-Anwender
Unter ungünstigen Bedingungen (z.B. zu kleiner Speicher auf der Grafikkarte, OpenGL-Version, etc.) kann es nach dem Zurücksenden eines Projekts nach Maya zu Darstellungsfehlern bei einer in BodyPaint 3D neu erzeugten Textur kommen. Zum Beispiel wird statt der gemalten Textur der aktuelle Bildschirminhalt auf das Objekt gemappt. Dies ist kein Fehler von BodyPaint 3D.
Das Problem kann behoben werden, indem man in Mayas Material-Einstellungen unter Hardware-Texturing die Texture-Resolution z.B. auf Medium stellt.