Maya自身的功能就已经非常强大了,但是更棒的是它的扩展性非常强,提供API让用户自己来编写插件Plugin。Maya的插件主要是两种,一种是用C++编写的,后缀为".mll",另一种是用Python编写的,后缀为".py"。在用C++编写插件时,我们可以用下面的这个CMakeLists.txt文件来生成项目工程:

SET(MAYA_PLUGIN_NAME "yourPlugin")
SET(MAYA_DIRECTORY "C:/Program Files/Autodesk/Maya2015")
SET(MAYA_HEADERS_DIR "${MAYA_DIRECTORY}/include")
SET(MAYA_LIBRARY_DIR "${MAYA_DIRECTORY}/lib") SET(SOURCE_FILES
yourPlugin.cpp
) source_group("" FILES ${SOURCE_FILES}) INCLUDE_DIRECTORIES(${MAYA_HEADERS_DIR})
LINK_DIRECTORIES(${MAYA_LIBRARY_DIR}) SET(LIBRARIES Foundation.lib OpenMaya.lib OpenMayaAnim.lib OpenMayaUI.lib) SET(MAYA_DEFINITIONS _AFXDLL _MBCS NT_PLUGIN REQUIRE_IOSTREAM _BOOL) ADD_LIBRARY(${MAYA_PLUGIN_NAME} SHARED ${SOURCE_FILES})
TARGET_LINK_LIBRARIES(${MAYA_PLUGIN_NAME} ${LIBRARIES}) SET_TARGET_PROPERTIES(${MAYA_PLUGIN_NAME} PROPERTIES COMPILE_DEFINITIONS "${MAYA_DEFINITIONS}")
SET_TARGET_PROPERTIES(${MAYA_PLUGIN_NAME} PROPERTIES OUTPUT_NAME "${MAYA_PLUGIN_NAME}")
SET_TARGET_PROPERTIES(${MAYA_PLUGIN_NAME} PROPERTIES SUFFIX ".mll")
SET_TARGET_PROPERTIES(${MAYA_PLUGIN_NAME} PROPERTIES CLEAN_DIRECT_OUTPUT ) SET_TARGET_PROPERTIES(${MAYA_PLUGIN_NAME} PROPERTIES LINK_FLAGS "/export:initializePlugin /export:uninitializePlugin")

需要注意的是,如果你是在Windows下用VS来生成项目工程,你的VS编译器是用32位还是64位一定要跟你的Maya版本同一,不然编译生成的插件无法使用。

当编译成功时,会生成后缀为".mll"的插件,这个就是我们需要的文件,我们将其拷贝到Maya的插件目录下( C:\Program Files\Autodesk\Maya2015\bin\plug-ins ),然后在Maya中加载这个插件,在Window -> Setting/Preferences -> Plug-in Manager 中找到你的插件,点加载。

一般来说,自己写的插件需要在命令行中运行,我们打开Command Shell或者Script Editor来使用我们的插件。

Maya Plugin 编译Maya插件的更多相关文章

  1. maya 2015配置openCollada插件

    1.下载对应的openCollada插件内容 https://github.com/KhronosGroup/OpenCOLLADA/wiki/OpenCOLLADA-Tools 该页面目前提供Mac ...

  2. Maya mel maya档出现未知插件解决方法

    Maya mel maya档出现未知插件解决方法 以下 mel 代码,拷贝到 maya 的脚本编辑器的 mel 中,最好运行两次 string $unknownNodes[] = `ls -type ...

  3. Tips For Your Maya Plugin Development

    (The reason why I write English blog is that I'm trying to improve my written English. The Chinese v ...

  4. Debugging Maya Plugin(C++) with CodeBlocks in Linux

    My system is CentOS7 x64, Maya2015 x64 for Linux. - Make sure that your project is built with flag - ...

  5. openfire:openfire单独编译指定插件的方法

    方法一: openfire默认编译时,是同时编译主程序和所有在plugins目录中的插件.但进行插件开发时,这样编译就太费时费力.使用ant plugins可以只编译插件,能够节省部分时间.最节省时间 ...

  6. maven项目配置使用jdk1.8进行编译的插件

    在使用Maven插件编译Maven项目的时候报了这样一个错:[Java source1.5不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符],这里记录下出现这个错 ...

  7. Hadoop_配置_linux下编译eclipse插件

    使用的hadoop版本为hadoop-1.2.1(对应的含源码的安装包为hadoop-1.2.1.tar.gz) 将hadoop和eclipse都解压在home中的用户目录下 /home/chen/h ...

  8. 【Python学习】由于windows环境问题导致的不能安装某些需要VC编译的插件

    由于windows环境问题导致的不能安装某些需要VC编译的插件 下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/ 安装方法: 在CMD中输入 pip in ...

  9. OSG3.4编译FFMPEG插件

    0.加入你要读a.mp4,那个正确的写法是osg::Image* image = osgDB::readImageFile("a.mp4.ffmpeg"); 1.在github上下 ...

随机推荐

  1. [译]git log进阶

    格式化log输出 oneline --oneline标记将每个commit压缩成一行. 默认情况下显示一个commit ID和commit描述的第一行. 输出如下: 0e25143 Merge bra ...

  2. 《征服 C 指针》摘录3:数组 与 指针

    一.数组 和 指针 的微妙关系 数组 是指将固定个数.相同类型的变量排列起来的对象. 正如之前说明的那样,给指针加 N,指针前进“当前指针指向的变量类型的长度 X N”. 因此,给指向数组的某个元素的 ...

  3. mac 下修改jenkins的 端口号

    sudo defaults write /Library/Preferences/org.jenkins-ci httpPort 7070

  4. 微信支付 发布后显示 System:access_denied

    微信支付发布后显示 System:access_denied (android)或 System:not_allow(IOS) 我们项目用的是.NET MVC3 授权目录是:http://mynetd ...

  5. javascript基础03

    javascript基础03 1. 算术运算符 后增量/后减量运算符 ++ ,-- 比较运算符 ( >, <, >=, <=, ==, !=,===,!== ) 逻辑运算符( ...

  6. log4net 运行时改变日志级别

    ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.Level = Level.Debug; ((log ...

  7. AC自动机

    AC自动机,全称Aho-Corasick自动机.如果没记错的话好像就是前缀自动机. 其实AC自动机就是KMP上树的产物.理解了KMP,那AC自动机应该也是很好理解的. 与KMP类似,AC自动机也是扔一 ...

  8. Spring @AspectJ 实现AOP 入门例子(转)

    AOP的作用这里就不再作说明了,下面开始讲解一个很简单的入门级例子. 引用一个猴子偷桃,守护者守护果园抓住猴子的小情节. 1.猴子偷桃类(普通类): package com.samter.common ...

  9. win8环境安装.net3.5

    材料:光盘镜像(必须原版镜像) 1,以管理员身份运行CMD 2,打开镜像,找到盘符比如我的是G盘 3, 输入 X代表你的ISO镜像的盘符 dism.exe /online /enable-featur ...

  10. HTML 简单的介绍

    Q: 什么是HTML? A: HTML 是一种超文本标记语言. 所谓的超文本是指指页面内可以包含图片,链接,甚至音乐.程序等非文字元素.超文本标记语言的结构包括"头"部分(英语:H ...