达兹到玛雅桥
基于 Daz Bridge 库的 Daz Studio 插件,允许将 Daz Studio 角色和道具传输到 Maya。
- 所有者:Daz 3D – @Daz3d
- 许可证:Apache 许可证,版本 2.0 - 有关详细信息,请参阅
LICENSE
和NOTICE
。 - 官方发布:Daz 到 Maya 的桥梁
- 官方项目:github.com/daz3d/DazToMaya
目录
- 关于大桥
- 先决条件
- 如何安装
- 如何使用
- 如何建造
- 如何发展
- 目录结构
1. 关于桥梁
这是原始 DazToMaya Bridge 的更新版本,以 Daz Bridge 库为基础用 C++ 重写。这使得它可以与其他桥(例如 DazToUnreal 和 DazToBlender Bridge)共享相同的源代码和功能。
Daz To Maya Bridge 由两部分组成:Daz Studio 插件(将资源导出到 Maya)和 Maya 模块(用于导入资源并帮助在 Maya 中重新创建原始 Daz Studio 资源的外观)。
2. 前提条件
- Daz Studio 应用程序的兼容版本
- Maya 应用程序的兼容版本
- 操作系统:
- Windows 7 或更高版本
- macOS 10.13 (High Sierra) 或更高版本
3. 如何安装 Daz To Maya Bridge?
达兹工作室:
- 您可以通过 Daz 安装管理器自动安装 Daz To Maya Bridge。这将在“文件”->“发送到”->“Daz To Maya”下自动添加一个新菜单选项。
- 或者,您可以通过从 Github 发布页面下载最新版本并按照其中的说明安装到 Daz Studio 来手动安装。
玛雅:
- Daz Studio 插件嵌入了 Maya Bridge 模块的安装程序。在“Daz To Maya Bridge”对话框中,“高级设置”部分现在有一个用于安装 Maya 模块的部分。
- 单击“安装插件...”按钮。您将看到一个弹出窗口,用于选择安装 Maya 模块的文件夹。起始文件夹应该是 Maya 插件和模块的默认位置。
- 在 Windows 上,安装模块的路径应为“Documentsmayamodules”。在 Mac 上,路径应为“/Users//Library/Preferences/Autodesk/maya/modules”。
- 对于大多数 Maya 设置,您应该只需单击“选择文件夹”即可。然后您将看到一个确认对话框,说明插件安装是否成功。
- 如果 Maya 正在运行,您将需要重新启动才能加载 Daz To Maya Bridge 模块。
- 在 Maya 中,您现在应该在 Maya 工具架工具栏中看到“DazToMaya”选项卡。单击此选项卡可找到 DazToMaya 选项。
- 如果您在 Maya Shelf 中禁用了选项卡,则可能需要单击“cog”图标并选择“Shelf Tabs”以查找并选择“DazToMaya”选项卡。
- 从工具架的 DazToMaya 选项卡中,您现在应该看到“DAZ IMPORT”的图标。您已完成 Daz To Maya Bridge 的安装!
- 如果您在尝试单击“DAZ IMPORT”图标时收到错误,请确保您已安装 PyMEL。
4. 如何使用Maya Bridge?
- 在 Daz Studio 中打开您的角色。
- 确保所有衣服或头发都是主体的父级。
- 从主菜单中,选择“文件”->“发送到”->“Daz 到 Maya”。或者,您可以选择“文件”->“导出”,然后从“保存类型”下拉选项中选择“Maya Ascii 文件”或“Maya 二进制文件”。
- 将弹出一个对话框:选择您想要执行的转换类型,“静态网格体”(无骨架)、“骨架网格体”(角色或带关节)、“动画”或“环境”(场景中的所有网格体) 。
- 要启用变形或细分级别,请单击复选框以启用该选项,然后单击“选择变形”或“烘焙细分”按钮来配置您的选择。
- 单击“接受”,然后等待弹出对话框通知您何时切换到 Maya。
- 在 Maya 中,单击 DazToMaya 工具架中的“DAZ IMPORT”图标以打开 DazToMaya Bridge 对话框窗口。
- 选择“自动导入”。
变形:
- 如果启用了“导出变形”选项,则“大纲视图”面板中将会有一个“变形”节点。选择此节点,您将看到变形滑块出现在“属性编辑器”面板中的“额外属性”标题下。
动画片:
- 要使用“动画”资源类型选项,您的人物必须在 Daz Studio“时间轴”系统上使用动画。
- 如果您使用基于“aniMate”或“aniBlocks”的动画,则需要在“aniMate”面板中右键单击并选择“Bake To Studio Keyframes”。
- 一旦您的动画位于“时间轴”系统上,您就可以使用“文件”->“发送到”->“Daz 到 Maya”开始传输。
- 现在应该可以通过 Maya 动画界面使用传输的动画。
细分支持:
- Daz Studio 使用 Catmull-Clark 细分曲面技术,这是一种以非常有效的方式描述无限光滑表面的数学方法。与仅用半径描述无限光滑的圆类似,Daz 图的基本分辨率网格实际上是描述无限光滑表面的方程中的数学数据。对于支持 Catmull-Clark 细分和细分基于表面的变形(也称为 HD 变形)的软件,通过导出基本分辨率网格(细分级别 0),然后使用本机 Catmull-Clark,不会造成质量或细节损失细分功能。
- 对于不完全支持 Catmull-Clark 细分或 HD Morphs 的软件,我们可以将额外的细分细节级别“烘焙”到网格中,以更接近原始表面的细节。然而,烘焙每个额外的细分级别都需要成倍增加的 CPU 时间、内存和存储空间。如果您没有高端电脑,则将导出的细分级别设置为高于 2 时,您的系统可能会耗尽内存并崩溃。
- 当您在 Daz To Maya 桥中启用“烘焙细分”选项时,资源将作为具有更高分辨率顶点计数的标准网格传输到 Maya。
5. 如何构建
构建系统的设置和配置是通过 CMake 完成的,以生成适用于 Windows 或 Mac 的项目文件。 CMake 配置需要:
- 现代 CMake(在 Win 上使用 3.27.2 进行测试,在 Mac 上使用 3.27.0-rc4 进行测试)
- Daz Studio 4.5+ SDK(来自 DIM)
- Fbx SDK 2020.1(win)/Fbx SDK 2015.1(mac)
- 开放细分 3.4.4
(请注意,您必须使用 Daz Studio SDK 中内置的 Qt 4.8.1 构建库。使用外部 Qt 库将导致构建错误和程序不稳定。)
将 DazToMaya github 存储库下载或克隆到本地计算机。 Daz Bridge 库作为 git 子模块链接到 DazBridge 存储库。根据您的 git 客户端,您可能必须使用git submodule init
和git submodule update
才能正确克隆 Daz Bridge 库。
构建设置过程设计为在交互式会话中使用 CMake gui 运行。设置源代码文件夹和输出文件夹后,用户可以单击“配置”。 CMake 将在配置过程中停止,提示用户输入以下路径:
- DAZ_SDK_DIR – Daz Studio 4.5+ SDK 的根文件夹。这必须是从 Daz Store 购买并通过 DIM 安装的版本。任何其他版本都不适用于此源代码项目,并会导致构建错误和失败。示例:C:/Users/Public/Documents/My DAZ 3D Library/DAZStudio4.5+ SDK
- DAZ_STUDIO_EXE_DIR – 包含 Daz Studio 可执行文件的文件夹。示例:C:/Program Files/DAZ 3D/DAZStudio4
- FBX_SDK_DIR – 包含“include”和“lib”子文件夹的根文件夹。示例:C:/Program Files/Autodesk/FBX/FBX SDK/2020.0.1
- OPENSUBDIV_DIR – 包含“opensubdiv”、“examples”、“cmake”文件夹的根文件夹。它假设输出文件夹设置为名为“build”的子文件夹,并且 osdCPU.lib 或 libosdCPU.a 静态库文件构建于: /build/lib/Release/osdCPU.lib 或 /build/lib/Release/libosdCPU 。一个。可以在 https://github.com/danielbui78/OpenSubdiv/releases 找到适用于 Mac 和 Windows 的预构建库,其中包含包含和预构建 Release 静态库二进制文件的正确位置。如果您不使用此预编译版本,则必须确保 OPENSUBDIV_INCLUDE 文件夹路径和 OPENSUBDIV_LIB 文件路径的位置正确。
将这些路径正确输入 CMake gui 后,可以单击“配置”按钮,配置过程应继续完成。然后可以生成项目文件并可以打开项目。请注意,DAZ_SDK_DIR 中包含 Qt 4.8 构建工具和库的自定义版本。如果您的系统中安装了另一个版本的 Qt 并且对 CMake 可见,则可能会导致在查找 DAZ_SDK_DIR 中提供的正确 Qt 版本时出错,并导致构建错误和失败。
生成的项目文件应将“DzBridge-Maya”、“DzBridge Static”和“MayaModule ZIP”作为项目目标。“DzBridge-Maya”生成的 DLL/DYLIB 二进制文件应该是一个有效的 Daz Studio 插件。“MayaModule ZIP” " 项目包含自动化脚本,这些脚本将 Maya 模块文件打包到 zip 文件中,并准备将其嵌入到主 Daz Studio 插件 DLL/DYLIB 二进制文件中。
6. 如何修改和开发
Daz Studio 插件源代码包含在DazStudioPlugin
文件夹中。该插件的主要 C++ 类入口点是“DzBlenderAction”(.cpp/.h)。 Maya 模块源代码和资源位于/Maya/MAYA_APP_DIR/modules/DazToMaya
文件夹中。 Daz Studio SDK API 和 Qt API 参考信息可以在“DAZ Studio SDK Docs”包中找到。在 Windows 上,本文档的主页默认安装到: C:UsersPublicDocumentsMy DAZ 3D LibraryDAZStudio4.5+ SDKdocsindex.html
。
DZ_BRIDGE_NAMESPACE :DazToMaya 桥派生自 DZ_BRIDGE_NAMESPACE 内的 Daz 桥库中的基类(请参阅bridge.h)。之前发布的官方 Daz Bridge 插件版本使用自定义命名空间来隔离每个插件的共享类名。虽然这理论上可以防止遵循 C++ 命名空间的平台发生命名空间冲突,但对于 Daz Studio 和 Bridge 插件大量使用的 Qt 和 Qt 元对象编程模型的某些实现可能并不适用。值得注意的是,C++ 命名空间可能无法隔离 Qt Mac OS 实现上的代码。考虑到这些限制,我决定删除重命名 DZ_BRIDGE_NAMESPACE 的建议,以便为潜在的桥接插件开发人员简化并降低部署复杂性。
为了在该插件和 Daz Bridge 库之间链接和共享 C++ 类,使用自定义CPP_PLUGIN_DEFINITION()
宏而不是标准 DZ_PLUGIN_DEFINITION 宏和常用的 .DEF 文件(请参阅bridge.h)。注意:使用 DZ_PLUGIN_DEFINITION 宏和 DEF 文件将禁用 Visual Studio 编译器中的 C++ 类导出。
7. 目录结构
Maya 目录内有与目标计算机上的位置相对应的子目录层次结构。层次结构的某些部分在受支持的平台之间是一致的,应该准确复制,而其他部分则用作位置的占位符,具体位置取决于目标计算机的平台。
此存储库中使用的占位符目录名称是:
姓名 | 视窗 | macOS |
---|
应用程序目录_common | 包含目标应用程序的主可执行文件 (.exe) 的目录。子层次结构在 32 位和 64 位体系结构之间很常见。 | 包含目标应用程序的主应用程序包 (.app) 的目录。子层次结构在 32 位和 64 位体系结构之间很常见。 |
MAYA_APP_DIR | 代表您的个人 Maya 应用程序目录的目录 - 请参见 Maya 文档 | 两个平台都一样。 |
MAYA_SCRIPT_PATH | MEL 脚本的搜索路径 - 请参见 Maya 文档 | 两个平台都一样。 |
目录结构如下:
-
Maya
:与桥的Maya端相关的文件 DazStudioPlugin
:与 DazToMaya 桥的Daz Studio端相关的文件Resources
:要嵌入到 Daz Studio 插件中的数据文件和支持脚本以促进此构建阶段。
-
dzbridge-common
:DazStudioPlugin 使用的 Daz Bridge 库中的文件Extras
:补充脚本和支持文件以帮助转换过程,特别是对于游戏引擎和其他实时应用程序。
-
Test
:用于质量保证测试的脚本和生成的输出(报告)。