记录一下 Maya 的C++开发环境搭建
软件准备
安装Visual Studio 2017 作为IDE,这里需要注意一下,不同的VS版本对应不同的默认平台工具集,如果需要VS使用别的的平台工具集,需要修改安装指定的平台工具集.
安装 Maya2020.
获取软件版本对应的开发包(从Maya2016开始,maya软件安装包中不再携带开发包,而开发包作为一个单独的下载包存在),也可以不下载开发包,C++ 环境搭建需要的 Lib 链接库和 include 头文件在软件安装目录中已经存在,但我们可以获取开发包里 devkit 文件夹中的代码示例和插件向导(MayaPluginWizard2.0.zip)用于学习.
- maya 开发包下载地址 :从这里下载
配置环境
手动配置
在 Visual Studio 2017 IDE 中新建一个”空项目”,然后点击项目,右键设置项目属性,将下列配置一一修改。
- 配置:debug 平台:x64
- 配置属性 》 常规 》 项目默认配置 》 配置类型 :动态库.dll
- 配置属性 》 常规》 常规 》 目标文件拓展名 :.mll
- C/C++ 》 常规 》 附加包含目录 :C:\Program Files\Autodesk\Maya2020\include;%(AdditionalLibraryDirectories)
- C/C++ 》 预处理器 》 加入预处理器指令:WIN32;NDEBUG;_DEBUG;_WINDOWS;NT_PLUGIN;REQUIRE_IOSTREAM;_USRDLL;MAYAPLUGIN1_EXPORTS;
- 链接器 》 常规 》 输出文件:C:\Users\mirror\Documents\maya\2020\plug-ins$(ProjectName)$(TargetExt)(自定义,这是你的插件生成的位置)
- 链接器 》 常规 》 附加库目录:C:\Program Files\Autodesk\Maya2020\lib;%(AdditionalLibraryDirectories)
- 链接器 》 输入 》 附加依赖项:Foundation.lib;OpenMaya.lib;OpenMayaUI.lib;OpenMayaAnim.lib;OpenMayaFX.lib;OpenMayaRender.lib;Image.lib;opengl32.lib;glu32.lib;
若为配置方案指定名称,如”maya2020”,将上列的 maya2020 替换成maya${Configuration},其中 ${Configuration} 是配置方案的名称,可快捷切换开发环境,而不用重新配置。
$(TargetDir)是在目标文件后自动赋予值为文件所在位置
$(TargetExt)目标文件拓展名
$(ProjectName)项目名
通过插件向导配置
在下载好的开发包中找到插件向导文件夹–pluginwizard,其中有两个文件:
- MayaPluginWizard2.0.zip
- MayaWizardReadme.txt
其中 MayaWizardReadme.txt 会告诉你官方推荐使用什么版本的 Visual Studio IDE 以及插件MayaPluginWizard2.0.zip中的内容的使用方法,例如,开发maya2020,应使用 Visual Studio 14.0 即 Visual Studio 2015(可以使用2017及其以上版本,然后配置2015的环境)默认的平台工具集;并且需要将对应的文件拷贝到指定的文件路径中。
由于我使用的是 Visual Studio 2019 需要将文件拷贝到不同的路径:
将下列文件拷贝到路径(若没有,则新建):C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\VCWizards
- MayaPluginWizard.ico
- MayaPluginWizard.vsdir
- MayaPluginWizard.vsz
将下列文件夹拷贝到路径(若没有,则新建):C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\vcprojects
- MayaPluginWizard
若在创建新项目的时候,创建项目失败,则需要将 MayaPluginWizard.vsz 文件内容中的 VS版本 改为 Visual Studio IDE 对应的版本
配置好后,编译的插件会出现在 “输出文件” 的路径中。
软件安装踩坑
不同 Visual Studio 版本默认的平台工具集不同,需要视情况配置不同的工具集,Maya2020 C++ API 需要使用 Visual Studio 2017(前面的插件向导要求使用,Visual Studio 2015,这并不冲突),因此会使用V140平台工具集,若使用高版本 Visual Studio ,需要切换平台工具集版本:
- Visual Studio 2019: V142
- Visual Studio 2017: V141
- Visual Studio 2015: V140
- Visual Studio 2013: V120
- Visual Studio 2012: V110
- Visual Studio 2010: V100
- Visual Studio 2008: V90
- Visual Studio 2005: V80
- Visual Studio 2003: V71
- Visual Studio 2002: V70
- Visual Studio 6: V60
若低版本软件安装不上,在卸载和清理了软件之后,可以尝试先安装高版本软件,再安装低版本软件,具体原因不清楚(可能是高版本软件在安装过程中将低版本报错的组件安装了),但是真的行得通。安装 Visual Studio IDE 软件需要给注册表开权限哦!!!
安装平台工具集
升级打开低版本VS工程,需要切换工具集版本 和 windowos SDK版本
- 修改/添加 Visual Studio_IDE :
选择单个组件,并找到 MSVC v140-VS 2015 C++ 生成工具(v14.00):
在项目属性中选取指定的工具集.png :
(略)若使用高版本打开低版本的项目,还需要重复以上步骤,安装/切换对应低版本的 Windows SDK 版本 :
插件踩坑
由于一开始不知道需要指定的工具集版本,导致编译的插件不能被加载,前前后后排查花费了大量时间,最后总结一下:
编译好的文件如果从插件编辑器中无法显示:
- 可能是开软件前,该插件的路径还没有生成,需要重启may.
- 可能是插件不在Maya的插件搜索路径中,需要添加环境变量.
- 插件本身有问题,需检查插件。
如果无法加载插件,在保证插件代码正确的情况下,可能是没有使用正确的VC编译器,详细参照前文.