这里主要参考了一个例子,实现创建Maya插件的简单流程。原作只实现了MEL和C++,本文补充了Python版本,并说明了C++编写的.mll插件的调用流程。插件的背景如下:

大多数人听说Maya 2010问世之后,都是欣喜万分,终于可以感受新版本的Maya了。唯独Boss Fang听到这个消息后,一筹莫展,并怨恨交加。下面的三个插件都是实现这样一个想法。

(1)MEL版本

float $maya_version = 2010; string $boss = "bossFang"; string $person = "bossFang"; if($maya_version == 2010 && $person != $boss) { print("happy : )Enjoy Maya 2010 /n" ); } if($maya_version == 2010 && $person == $boss) { print(":( xxx! xxx! sign, why now? /n"); }

打开Maya 2010 右下角的Script Editor,并将以上代码贴入,运行结果如下:

(2)Python版本

和MEL类似,代码如下:

maya_version = 2010 boss = 'bossFang' person = 'bossFang' if (maya_version == 2010 and person != boss): print 'happy : )Enjoy Maya 2010 /n' if (maya_version == 2010 and person == boss): print ':( xxx! xxx! sign, why now? /n'

运行结果如下所示:

(3)C++版本

下载Maya Plugin Wizard(网址)。并按照其中的MayaWizardReadme.txt文件安装该插件。

注意:MayaPluginWizard文件夹需要放在* VC/VCWizards,无论是对Regular Visual Studio或Visual Studio Express。

“Please check the versions of Maya that this plug-in is for:”选择自己安装的Maya版本,该插件现在已经支持从7.0到2011各个版本,我选择的是2010版本。

“What is the verder name for this plug-in?”中需要填写的是作者名称,如cgnerds。

“What type of plug-in would you like to create?”选择MEL Command,即可创建MEL命令型插件。

"Please enter the name of your plug-in here"中输入boss,即可执行该插件了。

“What libraries would you like to link with?”中选择需要连接的库。对于我们需要创建的简单插件来说,默认的库就可以了。

单击Finish完成设置。目前该插件默认Maya安装目录为C盘,需要自己修改为合适的盘符。

在boss::doIt()函数中如下代码,实现和(1)同样的功能。

MStatus boss::doIt( const MArgList& args ) // // Description: // implements the MEL boss command. // // Arguments: // args - the argument list that was passes to the command from MEL // // Return Value: // MS::kSuccess - command succeeded // MS::kFailure - command failed (returning this value will cause the // MEL script that is being run to terminate unless the // error is caught using a "catch" statement. // { MStatus stat = MS::kSuccess; MString info; MString boss("BossFang"); MString person("BossFang"); double maya_version = 2010; if(maya_version == 2010 && boss == person) { info = MString( ":( xxx! xxx! why now? /n" ); } if(maya_version == 2010 && boss != person) { info = MString( "happy :) Enjoy maya 2010 /n" ); } //显示字符串,相当于MEL中的print MGlobal::displayInfo(info); // Since this class is derived off of MPxCommand, you can use the // inherited methods to return values and set error messages // setResult( "boss command executed!/n" ); return stat; }

程序运行后,会生成boss.mll文件,将其拷贝到D:/Program Files/Autodesk/Maya2010/bin/plug-ins目录下,重新打开Maya 2010,执行菜单Window->Settings/Preferences->Plug-in Manager打开插件加载窗口。将boss.mll后面的Loaded打钩,然后再次打开Script Editor,输入boss,显示结果如下:

Maya插件教程(一)相关推荐

  1. 你绝对不知道的17个Maya插件

    前言: 今天又双U也是Maya的插件,还是免费的,Max的亲们对不住了~~ 今天要介绍的是是放置纽扣.螺丝等在物体任意表面的插件,而且还能随意的调节大小,旋转,缩放等操作,并且还能将自定义创建模型放置 ...

  2. maya! board_最全maya插件安装方法大总结!不会装maya插件的同学来看看啦

    关于maya插件的一般安装方法.方法一: 在插件中,以.mel结尾(后缀)的文件放到: C:Documents and Settings计算机名My Documentsmaya7.0scripts 在 ...

  3. maya python教程下载_2015 Maya_Python_教程-很难得最新maya python教程.pdf.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspPython 2015 Maya_Python_教程-很难得最新 ...

  4. Htc Vive VR 手势识别插件教程 1.1 版本(附1.0版本教程PDF)

    VR手势识别插件教程1.1.1版本 VR手势识别插件教程1.1.1版本内容提纲 Htc Vive VR手势识别插件教程1.1.1版本.................................. ...

  5. FindBugs Maven插件教程

    FindBugs是一种静态代码分析工具,可识别从Java代码中发现的问题. 我们可以使用FindBugs Maven插件将FindBugs集成到我们的构建过程中. 这篇博客文章确定了四个典型的用例,并 ...

  6. qq浏览器翻译功能启用划词插件教程

    qq浏览器翻译功能启用划词插件教程 qq浏览器翻译功能怎么启用?QQ浏览器对于我们经常浏览qq空间,微信聊天的人来说是非常不错的一个浏览器,而且,QQ浏览器也有非常多不错的功能,比如划词翻译等等.那么 ...

  7. 开源数据可视化 datart-自定义Jquery图表插件教程

    在数据可视化应用方面,滚动图表插件一直备受欢迎,下面给大家一份关于滚动图标插件干活教程. 滚动图标插件教程 主要使用 jQuery jQuery.marquee jQuery-DataTables 视 ...

  8. 今天介绍一款事半功倍的Maya插件包

    大家好,今天简单介绍一款Maya插件包: malcolm341_mega_pack ​mega_pack界面展示 这个插件包目前的应用比较广泛,我周围的同事们都利用该插件包里的内容,提高自己的工作效率 ...

  9. eclipse 插件教程_编写Eclipse插件教程–第1部分

    eclipse 插件教程 Eclipse是三个最受欢迎的Java开发IDE之一. 其成功的原因之一是其可扩展性. 对于任何知道该怎么做并且已经做到的人来说,编写eclipse插件都可以非常轻松快捷. ...

最新文章

  1. 8种方法用Python实现线性回归,为你解析最高效选择
  2. 老板评价下属的普遍性原则
  3. 30个最常用css选择器解析
  4. 机器学习cae_CAE工程分析技术年会记
  5. 前端中全部盒子靠左对齐_前端面试一百问之弹性盒子中 flex: 0 1 auto 表示什么意思...
  6. linux date 小写h,linux date 命令详解[转载]
  7. RabbitMQ消息队列(七):适用于云计算集群的远程调用(RPC)
  8. 深入浅析HTML5中的article和section的区别
  9. 【Java】java YYYY-MM-DD与 yyyy的区别,有重大bug
  10. struts_login实例
  11. Xcode 4.2 中的Automatic Reference Counting (ARC)
  12. kotlin密封类_Kotlin密封级
  13. go语言学习之helloword
  14. 诺基亚 XGS-PON FTTP 系统在科威特完成测试
  15. 2020.10.30文献1:《滇中引水工程香炉山隧洞地应力特征及其活动构造响应》
  16. XILINX-FPGA下载工具--CH347FPGADownloader
  17. 关于C语言中的绝对值函数
  18. 小韦系统装工行网银U盾驱动的方法
  19. 一切还要从副总裁在朋友圈卖内裤说起
  20. Linux下的内核线程threaded irq机制分析与应用

热门文章

  1. 北京python培训班价格
  2. python安全编程培训费用
  3. SRT视频字幕的解析与同步原理
  4. dpi、dp、sp、px、mm之间的关系
  5. HTTPS 到底加密了什么?
  6. 台式电脑由哪些部件组成,有哪些配件组成?
  7. 阿里云购买云服务器流程及注意事项(新用户必看图文教程)
  8. 小红帽蜘蛛池租用百万蜘蛛秒收录
  9. 亿道信息丨手持PDA丨三防加固手机丨高频RFID丨电商仓库高效管理
  10. thinkpad无线键盘使用问题