Maya API插件的两种形式(model)

来源:互联网 发布:在线音乐剪辑合成软件 编辑:程序博客网 时间:2024/05/16 01:56

1.利用maya.standalone来运行。

通过maya的单机执行,是需要设置环境变量:

#!/usr/bin/env python# -*- coding: UTF-8 -*-## 描述: #     运行这个程序将会启动一个Maya独立的python程序## 使用方法:##       设置MAYA_LOCATION环境变量到你的Maya安装路径并在Linux(Mac)的shell中执行:##       $MAYA_LOCATION/bin/mayapy helloWorld.py##       注意:你必须使用Python可执行文件,才能正常工作。不同的平台它的路径都不一样。#       win系统的是:#       #       $MAYA_LOCATION/bin/mayapy.exe helloWorld.py# 导入相关模块import maya.standaloneimport maya.OpenMaya as OpenMayaimport sysdef main( argv=None ):    try:        # 尝试启动Maya独立的python程序        maya.standalone.initialize( name='python' )    except:        # 如果无法启动,输出错误信息        sys.stderr.write( "Failed in initialize standalone application" )        raise        # 输出Hello world    sys.stderr.write( "Hello world! (script output)\n" )    # 执行print命令来输出Hello world    OpenMaya.MGlobal().executeCommand( "print \"Hello world! (command script output)\\n\"" )        if __name__ == "__main__":    main()

2.利用maya的载入安装插件方法:

使用方法: 
将helloWorldCmd.py放到 
win 
C:\Documents and Settings\你的用户名\My Documents\maya\plug-ins 

mac 
/Users/你的用户名/Library/Preferences/Autodesk/maya/plug-ins 

#!/usr/bin/env python# -*- coding: UTF-8 -*-'''Created on Oct 25, 2009@author: schi'''# 使用方法:# Mel:# loadPlugin helloWorldCmd.py;# spHelloWorld;## ---------------------------------------## python:# import maya.cmds as cmds# cmds.loadPlugin("helloWorldCmd.py")# cmds.spHelloWorld()# 导入相关模块import sysimport maya.OpenMaya as omimport maya.OpenMayaMPx as ompx# 定义命令的名称kPluginCmdName = 'spHelloWorld'# 命令class SpHelloWorld( ompx.MPxCommand ):    def __init__( self ):        # 你可以像官方一样使用未绑定的方法,ompx.MPxCommand.__init__(self)        # 我更倾向于super方法        super( SpHelloWorld, self ).__init__()    # 执行spHelloWorld时会调用这个方法    def doIt( self, argList ):        # 如果你对Hello World很反感,可以改成自己的代码        print "Hello World!"# Creator用于创建命令的一个实例def cmdCreator():    return ompx.asMpxPtr( SpHelloWorld() )# 注册插件def initializePlugin( mobject ):    mplugin = ompx.MFnPlugin( mobject )    try:        mplugin.registerCommand( kPluginCmdName, cmdCreator )    except:        sys.stderr.write( '插件 %s 注册失败\n' % kPluginCmdName )        raise# 注销插件def uninitializePlugin( mobject ):    mplugin = ompx.MFnPlugin( mobject )    try:        mplugin.deregisterCommand( kPluginCmdName )    except:        sys.stderr.write( '插件 %s 注销失败\n' % kPluginCmdName )        raise