Maya API插件的两种形式(model)
1.利用maya.standalone来运行。通过maya的单机执行,是需要设置环境变量:#!/usr/bin/env python# -*- coding: UTF-8 -*-## 描述:#运行这个程序将会启动一个Maya独立的python程序## 使用方法:##设置MAYA_LOCATION环境变量到你的Maya安装路径并在Linux(M
·
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.standalone
import maya.OpenMaya as OpenMaya
import sys
def 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 sys
import maya.OpenMaya as om
import 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
更多推荐
已为社区贡献2条内容
所有评论(0)