目前仅仅是一时兴趣,想要探索一下Maya插件开发的具体方法,但因为没有时间所以只起了个头

首先来到Autodesk Developer Network

http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=9469002

在Learning这里有视频以及Maya文档之类的链接;在Tools & Documentation archives这里有文档以及开发工具包,首先就是需要先下载开发工具包。当然下载是需要注册桌子账号的。

下载之后就可以按照Maya文档的所说的进行操作:

https://knowledge.autodesk.com/support/maya/getting-started/caas/simplecontent/content/maya-documentation.html

选择对应的版本进入。

第一步设定环境:

复制对应文件夹到maya安装目录,例如:

C:\Program Files\Autodesk\maya2016.5\devkit

C:\Program Files\Autodesk\maya2016.5\include

C:\Program Files\Autodesk\maya2016.5\mkspecs

C:\Program Files\Autodesk\maya2016.5\bin

设置下面两个环境变量

MAYA_LOCATION

Path

例如:

set MAYA_LOCATION=c:\Program Files\Autodesk\Maya2016.5
set Path=c:\Program Files\Autodesk\Maya2016.5\bin;%Path% 官方文档中所%Path%是必须的。

第二步,设置包含头文件与库文件,本人对VS的项目设置不熟,Qt也是抄了别人的项目才搞定。

  • Header files: ..\include\maya
  • Libraries: ..\lib
 
第三步,查看对应的案例。
如果你设置好,就可以查看对应的案例了。然而有这么几个问题:
1、Applications(devkitBase-》devkit-》applications,是c++的独立运行插件案例)的工程可以正常生成,但是运行会显示no module named site(一闪而过),这个是因为程序需要放到Maya的可执行文件夹下,也就是bin文件夹里;所以你需要自己设置一下生成目录。
2、pythonScript就是Python的案例。
3、plug-ins文件夹里面是c++生成mll文件的案例为主,但里面也有几个Qt的案例。
 

目前我知道的有以下几种方法:

1、如何用Qt生成mll(看案例的代码貌似可以直接用UI designer创建界面)

这里主要还是项目设置的东西,别的都和下面的一样。

http://blog.csdn.net/seamanj/article/details/51864875

http://around-the-corner.typepad.com/adn/2016/07/-maya-2017-devkit-building-qt-plug-ins-instructions.html

http://forums.cgsociety.org/showthread.php?t=997360

官方文档

http://help.autodesk.com/view/MAYAUL/2016/CHS/?guid=GUID-F17409C3-1288-46D1-A111-277615E6A956

http://help.autodesk.com/view/MAYAUL/2016/CHS/?guid=__files_GUID_13434252_F0BF_4AC0_B47B_09BD626B0881_htm

我测试了一下,成功运行官方的helixQtCmd案例,里面自己自定义了一个按钮。

开发时建议使用对应版本的Qt,Maya2017是5.6,2016是4.8.6

2、用VS c++生成mll,VS MAYA插件生成向导

如何在visual studio 里创建maya 插件开发环境,注意:如果您使用的是中文版VS2012,必须将MayaPluginWizard目录再嵌套一级同名目录,vs才能顺利建立工程。路径如示“C:\Program Files\Microsoft Visual Studio X\VC\VCWizards\MayaPluginWizard\MayaPluginWizard”。

http://blog.sina.com.cn/s/blog_b2f983a50102wudp.html

如果默认情况下项目显示无法找到头文件,那肯定是因为你的环境变量没有设置,你可以在生成项目的时候手动指定Maya目录(不带bin)

最后只需要把项目设置中平台工具集改成你现在用的就好了。运行后,会直接启动Maya。

3、使用pyQt实现自定义界面

Python我不太懂,这里就参看别人写的东西。

maya2013安装pyqt4的过程和方法

http://blog.sina.com.cn/s/blog_5444347b0101hwda.html

使用PyQt就可以直接使用Qt的控件,这个还是挺爽的

使用Qt设计师开发设计Maya脚本界面

http://blog.sina.com.cn/s/blog_5444347b0101idxg.html

其他介绍API编程的资料,可以让你更好的理解:

https://www.indienova.com/u/kawayide108/blogread/1800

http://blog.csdn.net/huawenguang/article/details/6557862

MQtUtil Class Reference

http://help.autodesk.com/view/MAYAUL/2016/CHS/?guid=__cpp_ref_class_m_qt_util_html

本人最终以maya2017、Qt5.6.1测试通过,推荐这个配置,之前版本都是Qt4.X的。

PS.就开发而言感觉官方倾向于PyQt,无论是资料还是视频,而且重新编写直接在Maya就可以运行。Qt开发插件因为不能进行进行断点感觉优势不大,而且感觉调试起来也很麻烦(生成mll再载入……),不过可以开发独立运行程序这个应该是个优势。

————————————————————————————————————————————————————————————————————————————————

2017.7.14

发现别人写的Blog里有如何调试非exe插件的方式:

http://www.cnblogs.com/marisa/p/5109886.html

3. 在maya 2016的窗口 -> 设置/首选项 -> 插件管理器中,点击浏览,添加python工程的启动文件(如我的是MMD4Maya.py)。

4. 在visual studio中点击调试 -> 附加到进程(Attach to Process),找到maya.exe点击附加,然后就可以设置断点了。

5. maya 2016中运行插件,运行到断点处visual studio就会断下来了。

虽然没有测试,但应该也一样的吧

Maya插件开发的几种方式归纳的更多相关文章

  1. javascript笔记——jQuery插件开发的几种方式

    jQuery插件开发分为两种: 1 类级别  类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery.e ...

  2. jQuery插件开发的五种形态[转]

    这篇文章主要介绍了jQuery插件开发的五种形态小结,具体的内容就是解决javascript插件的8种特征,非常的详细. 关于jQuery插件的开发自己也做了少许研究,自己也写过多个插件,在自己的团队 ...

  3. Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式

    Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cut ...

  4. IOS--实现滤镜效果的四种方式

    IOS–实现滤镜效果 demo地址: https://github.com/AbeDay/ios–.git 使用CIFilter来完成IOS中滤镜效果 在IOS中可以使用系统自带的方法来达到路径效果: ...

  5. WINDOWS硬件通知应用程序的常方法(五种方式:异步过程调用APC,事件方式VxD,消息方式,异步I/O方式,事件方式WDM)

    摘要:在目前流行的Windows操作系统中,设备驱动程序是操纵硬件的最底层软件接口.为了共享在设备驱动程序设计过程中的经验,给出设备驱动程序通知应用程序的5种方法,详细说明每种方法的原理和实现过程,并 ...

  6. MVC验证10-到底用哪种方式实现客户端服务端双重异步验证

    原文:MVC验证10-到底用哪种方式实现客户端服务端双重异步验证 本篇将通过一个案例来体验使用MVC的Ajax.BeginForm或jQuery来实现异步提交,并在客户端和服务端双双获得验证.希望能梳 ...

  7. jQuery中开发插件的两种方式

    jQuery中开发插件的两种方式(附Demo) 做web开发的基本上都会用到jQuery,jQuery插件开发两种方式:一种是类扩展的方式开发插件,jQuery添加新的全局函数(jQuery的全局函数 ...

  8. 调用awk的三种方式

    调用awk的三种方式 调用awk有三种方式,一种为Shell命令行方式,另外两种是将awk程序写入脚本文件,然后执行该脚本文件.三种方式的命令格式归纳如下: 一.在Shell命令行输入命令调用awk, ...

  9. 调用sed命令的三种方式

    调用sed命令的三种方式 调用sed有三种方式,一种为Shell命令行方式,另外两种是将sed命令写入脚本文件,然后执行该脚本文件. 三种方式的命令格式归纳如下: 一.在Shell命令行输入命令调用s ...

随机推荐

  1. Centos7上配置网络和本地yum方法

    配置网络yum源 前提:1.这个系统能上网 2.vim /etc/resolv.conf nameserver 8.8.8.8 nameserver 114.114.114.114 操作如下: 1.m ...

  2. 蓝桥杯第十届真题B组(2019年)

    2019年第十届蓝桥杯大赛软件类省赛C/C++大学B组# 试题 A:组队# 本题总分:5分[问题描述]作为篮球队教练,你需要从以下名单中选出 1号位至 5号位各一名球员,组成球队的首发阵容.每位球员担 ...

  3. vscode c++ cmake template project

    VSCode configure C++ dev environment claim use CMake to build the project. For debugging, VSCode's C ...

  4. SQL Server索引的执行计划

    如何知道索引有问题,最直接的方法就是查看执行计划.通过执行计划,可以回答表上的索引是否被使用的问题. (1)包含索引:避免书签查找 常见的索引方面的性能问题就是书签查找,书签查找分为RID查找和键值查 ...

  5. webpack学习笔记--区分环境

    为什么需要区分环境 在开发网页的时候,一般都会有多套运行环境,例如: 在开发过程中方便开发调试的环境. 发布到线上给用户使用的运行环境. 这两套不同的环境虽然都是由同一套源代码编译而来,但是代码内容却 ...

  6. Oracle Instant Client(即时客户端) 安装与配置

    一.下载 下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 这是Ora ...

  7. 【bzoj4887】[Tjoi2017]可乐 矩阵乘法

    题解: 比较简单的一道题目 如果会倍增floyd这个就很显然的 每次转移看成乘上一个矩阵 另外自爆等同于连到一个特殊点,特殊点只能走自己 停留就是增加自环

  8. [转]利用ssh传输文件

    利用ssh传输文件 http://www.cnblogs.com/jiangyao/archive/2011/01/26/1945570.html 在linux下一般用scp这个命令来通过ssh传输文 ...

  9. [转]Ubuntu默认使用root用户登录并免去输入密码

    启用Root用户登录 Ctrl + Alt + T进入终端, 输入cd /usr/share/lightm/ightm.conf.d, 如果提示你没有那个文件或目录.那就一次次的进入目录. 进入之后会 ...

  10. Python_configparser模块

    configparser : 用于处理ini结构相似的文件,格式类似于: [DEFAULT] # 相当于一个分组 # option # 注释,说明性文字 ,默认以# 或‘:’开头的行 option1 ...