Daz zur Maya-Brücke
Ein Daz Studio-Plugin, das auf der Daz Bridge-Bibliothek basiert und die Übertragung von Daz Studio-Charakteren und -Requisiten an Maya ermöglicht.
- Besitzer: Daz 3D – @Daz3d
- Lizenz: Apache-Lizenz, Version 2.0 – weitere Informationen finden Sie unter
LICENSE
und NOTICE
. - Offizielle Veröffentlichung: Daz to Maya Bridge
- Offizielles Projekt: github.com/daz3d/DazToMaya
Inhaltsverzeichnis
- Über die Brücke
- Voraussetzungen
- Anleitung zur Installation
- Verwendung
- So bauen Sie
- Wie man sich entwickelt
- Verzeichnisstruktur
1. Über die Brücke
Dies ist eine aktualisierte Version der ursprünglichen DazToMaya Bridge, die in C++ unter Verwendung der Daz Bridge Library als Grundlage neu geschrieben wurde. Dies ermöglicht die gemeinsame Nutzung des gleichen Quellcodes und der gleichen Funktionen mit anderen Bridges wie den DazToUnreal- und DazToBlender-Bridges.
Die Daz To Maya Bridge besteht aus zwei Teilen: einem Daz Studio-Plugin, das Assets nach Maya exportiert, und einem Maya-Modul, um die Assets zu importieren und dabei zu helfen, das Aussehen des ursprünglichen Daz Studio-Assets in Maya wiederherzustellen.
2. Voraussetzungen
- Eine kompatible Version der Daz Studio-Anwendung
- Eine kompatible Version der Maya-Anwendung
- Betriebssystem:
- Windows 7 oder neuer
- macOS 10.13 (High Sierra) oder neuer
3. Wie installiere ich die Daz To Maya Bridge?
Daz Studio:
- Sie können die Daz To Maya Bridge automatisch über den Daz Install Manager installieren. Dadurch wird automatisch eine neue Menüoption unter Datei -> Senden an -> Daz an Maya hinzugefügt.
- Alternativ können Sie die Installation manuell durchführen, indem Sie den neuesten Build von der Github-Release-Seite herunterladen und den dortigen Anweisungen zur Installation in Daz Studio folgen.
Maya:
- Das Daz Studio Plugin wird mit einem Installationsprogramm für das Maya Bridge-Modul geliefert. Im Dialogfeld „Daz To Maya Bridge“ gibt es jetzt im Abschnitt „Erweiterte Einstellungen“ einen Abschnitt zum Installieren des Maya-Moduls.
- Klicken Sie auf die Schaltfläche „Plugin installieren…“. Es erscheint ein Popup-Fenster, in dem Sie einen Ordner für die Installation des Maya-Moduls auswählen können. Der Startordner sollte der Standardspeicherort für Maya-Plugins und -Module sein.
- Unter Windows sollte der Pfad zur Installation von Modulen „Dokumentemayamodules“ lauten. Auf einem Mac sollte der Pfad „/Users//Library/Preferences/Autodesk/maya/modules“ lauten.
- Bei den meisten Maya-Setups sollten Sie einfach auf „Ordner auswählen“ klicken können. Sie sehen dann einen Bestätigungsdialog, der Ihnen mitteilt, ob die Plugin-Installation erfolgreich war.
- Wenn Maya ausgeführt wird, müssen Sie neu starten, damit das Daz To Maya Bridge-Modul geladen wird.
- In Maya sollte nun in der Maya Shelf-Symbolleiste die Registerkarte „DazToMaya“ angezeigt werden. Klicken Sie auf diese Registerkarte, um die DazToMaya-Optionen zu finden.
- Wenn Sie Registerkarten im Maya-Regal deaktiviert haben, müssen Sie möglicherweise auf das „Zahnrad“-Symbol klicken und „Regal-Registerkarten“ auswählen, um die Registerkarte „DazToMaya“ zu finden und auszuwählen.
- Auf der Registerkarte „DazToMaya“ des Regals sollten Sie nun ein Symbol für „DAZ IMPORT“ sehen. Sie sind mit der Installation von Daz To Maya Bridge fertig!
- Wenn Sie beim Versuch, auf das Symbol „DAZ IMPORT“ zu klicken, eine Fehlermeldung erhalten, stellen Sie sicher, dass PyMEL installiert ist.
4. Wie verwende ich die Maya Bridge?
- Öffne deinen Charakter in Daz Studio.
- Stellen Sie sicher, dass alle Kleidungsstücke oder Haare am Hauptkörper befestigt sind.
- Wählen Sie im Hauptmenü Datei -> Senden an -> Daz To Maya. Alternativ können Sie Datei -> Exportieren auswählen und dann „Maya Ascii-Datei“ oder „Maya-Binärdatei“ aus der Dropdown-Option „Dateityp“ auswählen.
- Es öffnet sich ein Dialog: Wählen Sie aus, welche Art der Konvertierung Sie durchführen möchten: „Statisches Netz“ (kein Skelett), „Skelettnetz“ (Charakter oder mit Gelenken), „Animation“ oder „Umgebung“ (alle Netze in der Szene). .
- Um Morphs oder Unterteilungsebenen zu aktivieren, klicken Sie auf das Kontrollkästchen, um diese Option zu aktivieren, und klicken Sie dann auf die Schaltfläche „Morphs auswählen“ oder „Unterteilungen backen“, um Ihre Auswahl zu konfigurieren.
- Klicken Sie auf „Akzeptieren“ und warten Sie dann auf ein Popup-Dialogfeld, das Sie darüber informiert, wann Sie zu Maya wechseln müssen.
- Klicken Sie in Maya im DazToMaya-Toolshelf auf das Symbol „DAZ IMPORT“, um das DazToMaya Bridge-Dialogfenster zu öffnen.
- Wählen Sie „Automatischer Import“.
Morphen:
- Wenn Sie die Option „Morphs exportieren“ aktiviert haben, gibt es im Outliner-Bedienfeld einen Knoten „Morphs“. Wenn Sie diesen Knoten auswählen, werden im Bereich „Attribut-Editor“ unter der Überschrift „Zusätzliche Attribute“ Morph-Schieberegler angezeigt.
Animation:
- Um die Asset-Typ-Option „Animation“ verwenden zu können, muss Ihre Figur Animationen im „Timeline“-System von Daz Studio verwenden.
- Wenn Sie „aniMate“- oder „aniBlocks“-basierte Animationen verwenden, müssen Sie mit der rechten Maustaste in das „aniMate“-Bedienfeld klicken und „In Studio-Keyframes backen“ auswählen.
- Sobald sich Ihre Animation im „Timeline“-System befindet, können Sie die Übertragung über Datei -> Senden an -> Daz an Maya starten.
- Die übertragene Animation sollte nun über die Maya Animation-Schnittstelle nutzbar sein.
Unterteilungsunterstützung:
- Daz Studio nutzt die Catmull-Clark Subdivision Surface-Technologie, eine mathematische Methode zur sehr effizienten Beschreibung einer unendlich glatten Oberfläche. Ähnlich wie ein unendlich glatter Kreis nur mit dem Radius beschrieben werden kann, ist das Grundauflösungsnetz einer Daz-Figur tatsächlich die mathematischen Daten in einer Gleichung zur Beschreibung einer unendlich glatten Oberfläche. Bei Software, die Catmull-Clark-Unterteilung und oberflächenbasierte Unterteilungsmorphs (auch als HD-Morphs bezeichnet) unterstützt, gibt es keinen Qualitäts- oder Detailverlust durch den Export des Basisauflösungsnetzes (Unterteilungsebene 0) und die anschließende Verwendung des nativen Catmull-Clark Unterteilungsfunktionen.
- Für Software, die Catmull-Clark-Unterteilung oder HD-Morphs nicht vollständig unterstützt, können wir zusätzliche Unterteilungsdetailebenen in das Netz „einbacken“, um die Details der Originaloberfläche besser anzunähern. Das Backen jeder weiteren Unterteilungsebene erfordert jedoch exponentiell mehr CPU-Zeit, Arbeitsspeicher und Speicherplatz. Wenn Sie keinen High-End-PC haben, ist es wahrscheinlich, dass Ihr System nicht mehr über genügend Speicher verfügt und abstürzt, wenn Sie die exportierte Unterteilungsebene über 2 einstellen.
- Wenn Sie die Optionen „Unterteilung backen“ in der Daz To Maya-Brücke aktivieren, wird das Asset als Standardnetz mit Scheitelpunktzahlen höherer Auflösung an Maya übertragen.
5. Wie man baut
Die Einrichtung und Konfiguration des Build-Systems erfolgt über CMake, um Projektdateien für Windows oder Mac zu generieren. Die CMake-Konfiguration erfordert:
- Modernes CMake (getestet mit 3.27.2 auf Win und 3.27.0-rc4 auf Mac)
- Daz Studio 4.5+ SDK (von DIM)
- Fbx SDK 2020.1 (Windows) / Fbx SDK 2015.1 (Mac)
- OpenSubdiv 3.4.4
(Bitte beachten Sie, dass Sie die im Daz Studio SDK integrierten Qt 4.8.1-Build-Bibliotheken verwenden MÜSSEN. Die Verwendung einer externen Qt-Bibliothek führt zu Build-Fehlern und Programminstabilität.)
Laden Sie das DazToMaya-Github-Repository herunter oder klonen Sie es auf Ihren lokalen Computer. Die Daz Bridge Library ist als Git-Submodul mit dem DazBridge-Repository verknüpft. Abhängig von Ihrem Git-Client müssen Sie möglicherweise git submodule init
und git submodule update
verwenden, um die Daz Bridge-Bibliothek ordnungsgemäß zu klonen.
Der Build-Setup-Prozess ist so konzipiert, dass er mit der CMake-GUI in einer interaktiven Sitzung ausgeführt wird. Nach dem Einrichten des Quellcodeordners und eines Ausgabeordners kann der Benutzer auf Konfigurieren klicken. CMake stoppt während des Konfigurationsprozesses, um den Benutzer zur Eingabe der folgenden Pfade aufzufordern:
- DAZ_SDK_DIR – der Stammordner des Daz Studio 4.5+ SDK. Dies MUSS die im Daz Store gekaufte und über das DIM installierte Version sein. Alle anderen Versionen funktionieren NICHT mit diesem Quellcodeprojekt und führen zu Buildfehlern und Fehlern. Beispiel: C:/Benutzer/Öffentlich/Dokumente/Meine DAZ 3D-Bibliothek/DAZStudio4.5+ SDK
- DAZ_STUDIO_EXE_DIR – der Ordner, der die ausführbare Datei von Daz Studio enthält. Beispiel: C:/Programme/DAZ 3D/DAZStudio4
- FBX_SDK_DIR – der Stammordner, der die Unterordner „include“ und „lib“ enthält. Beispiel: C:/Programme/Autodesk/FBX/FBX SDK/2020.0.1
- OPENSUBDIV_DIR – Stammordner mit den Ordnern „opensubdiv“, „examples“ und „cmake“. Es wird davon ausgegangen, dass der Ausgabeordner auf einen Unterordner mit dem Namen „build“ festgelegt wurde und dass die statischen Bibliotheksdateien osdCPU.lib oder libosdCPU.a unter /build/lib/Release/osdCPU.lib oder /build/lib/Release/libosdCPU erstellt wurden .A. Eine vorgefertigte Bibliothek für Mac und Windows finden Sie unter https://github.com/danielbui78/OpenSubdiv/releases, die den richtigen Speicherort für die Binärdateien der statischen Include- und vorgefertigten Release-Bibliothek enthält. Wenn Sie diese vorkompilierte Version nicht verwenden, müssen Sie sicherstellen, dass der korrekte Speicherort für den Ordnerpfad OPENSUBDIV_INCLUDE und den Dateipfad OPENSUBDIV_LIB angegeben ist.
Sobald diese Pfade korrekt in die CMake-GUI eingegeben wurden, kann auf die Schaltfläche „Konfigurieren“ geklickt werden und der Konfigurationsprozess sollte bis zum Abschluss fortgesetzt werden. Anschließend können die Projektdateien generiert und das Projekt geöffnet werden. Bitte beachten Sie, dass eine benutzerdefinierte Version der Qt 4.8-Build-Tools und -Bibliotheken im DAZ_SDK_DIR enthalten ist. Wenn eine andere Version von Qt in Ihrem System installiert und für CMake sichtbar ist, führt dies wahrscheinlich zu Fehlern bei der Suche nach der richtigen Version von Qt, die im DAZ_SDK_DIR bereitgestellt wird, und zu Buildfehlern und Fehlern.
Die resultierenden Projektdateien sollten „DzBridge-Maya“, „DzBridge Static“ und „MayaModule ZIP“ als Projektziele haben. Die von „DzBridge-Maya“ erstellte DLL/DYLIB-Binärdatei sollte ein funktionierendes Daz Studio-Plugin sein. Das „MayaModule ZIP „Das Projekt enthält die Automatisierungsskripte, die die Maya-Moduldateien in eine ZIP-Datei packen und sie für die Einbettung in die Haupt-DLL/DYLIB-Binärdatei des Daz Studio-Plugins vorbereiten.
6. Wie man modifiziert und entwickelt
Der Quellcode des Daz Studio Plugins ist im DazStudioPlugin
-Ordner enthalten. Der Haupteinstiegspunkt der C++-Klasse für das Plugin ist „DzBlenderAction“ (.cpp/.h). Der Quellcode und die Ressourcen des Maya-Moduls sind im Ordner /Maya/MAYA_APP_DIR/modules/DazToMaya
verfügbar. Referenzinformationen zur Daz Studio SDK-API und Qt-API finden Sie im Paket „DAZ Studio SDK Docs“. Unter Windows wird die Hauptseite dieser Dokumentation standardmäßig unter C:UsersPublicDocumentsMy DAZ 3D LibraryDAZStudio4.5+ SDKdocsindex.html
installiert.
DZ_BRIDGE_NAMESPACE : Die DazToMaya Bridge wird von Basisklassen in der Daz Bridge-Bibliothek abgeleitet, die sich im DZ_BRIDGE_NAMESPACE befinden (siehe bridge.h). Frühere veröffentlichte Versionen der offiziellen Daz Bridge-Plugins verwendeten benutzerdefinierte Namespaces, um gemeinsame Klassennamen von jedem Plugin zu isolieren. Während dies theoretisch funktioniert, um Namespace-Kollisionen für Plattformen zu verhindern, die sich an C++-Namespaces halten, gilt dies möglicherweise nicht für einige Implementierungen von Qt und dem Qt-Metaobjekt-Programmiermodell, das von Daz Studio und den Bridge-Plugins stark genutzt wird. Insbesondere isolieren C++-Namespaces möglicherweise keinen Code in der Mac OS-Implementierung von Qt. Angesichts dieser Einschränkungen habe ich beschlossen, die Empfehlung zur Umbenennung von DZ_BRIDGE_NAMESPACE zu entfernen, um die Bereitstellungskomplexität für potenzielle Bridge-Plugin-Entwickler zu optimieren und zu reduzieren.
Um C++-Klassen zwischen diesem Plugin und der Daz Bridge-Bibliothek zu verknüpfen und zu teilen, wird ein benutzerdefiniertes CPP_PLUGIN_DEFINITION()
Makro anstelle des Standard-DZ_PLUGIN_DEFINITION-Makros und der üblichen .DEF-Datei (siehe bridge.h) verwendet. HINWEIS: Durch die Verwendung des DZ_PLUGIN_DEFINITION-Makros und der DEF-Datei wird der C++-Klassenexport im Visual Studio-Compiler deaktiviert.
7. Verzeichnisstruktur
Innerhalb des Maya-Verzeichnisses gibt es Hierarchien von Unterverzeichnissen, die den Speicherorten auf dem Zielcomputer entsprechen. Teile der Hierarchie sind zwischen den unterstützten Plattformen konsistent und sollten exakt repliziert werden, während andere als Platzhalter für Standorte dienen, die je nach Plattform des Zielcomputers variieren.
In diesem Repository verwendete Platzhalterverzeichnisnamen sind:
Name | Windows | macOS |
---|
appdir_common | Das Verzeichnis, das die primäre ausführbare Datei (.exe) für die Zielanwendung enthält. Unterhierarchien sind zwischen 32-Bit- und 64-Bit-Architekturen üblich. | Das Verzeichnis, das das primäre Anwendungspaket (.app) für die Zielanwendung enthält. Unterhierarchien sind zwischen 32-Bit- und 64-Bit-Architekturen üblich. |
MAYA_APP_DIR | Das Verzeichnis, das Ihr persönliches Maya-Anwendungsverzeichnis darstellt – siehe Maya-Dokumentation | Auf beiden Plattformen gleich. |
MAYA_SCRIPT_PATH | Der Suchpfad für MEL-Skripte – siehe Maya-Dokumentation | Auf beiden Plattformen gleich. |
Die Verzeichnisstruktur ist wie folgt:
-
Maya
: Dateien, die sich auf die Maya- Seite der Brücke beziehen-
MAYA_APP_DIR
: Siehe Tabelle oben-
...
: Verbleibende Unterhierarchie
-
DazStudioPlugin
: Dateien, die sich auf die Daz Studio- Seite der DazToMaya-Brücke beziehen-
Resources
: Datendateien, die in das Daz Studio-Plugin eingebettet werden sollen, und unterstützende Skripte, um diese Build-Phase zu erleichtern.
-
dzbridge-common
: Dateien aus der Daz Bridge-Bibliothek, die von DazStudioPlugin verwendet werden-
Extras
: Ergänzende Skripte und Supportdateien zur Unterstützung des Konvertierungsprozesses, insbesondere für Game-Engines und andere Echtzeitanwendungen.
-
Test
: Skripte und generierte Ausgaben (Berichte), die für Qualitätssicherungstests verwendet werden.