当前位置:首页 >教程首页 > Maya >Maya中Python脚本的使用(二)

Maya中Python脚本的使用(二)

发布时间:2019-08-22 17:47:27

二、Python的应用

2.1 MEL/Python之间的互通

新的MEL命令——"python”, 它产生字符串并能使之传递到Python中。Python命令可以把命令转换成MEL .所能识别的类型。

python( "import maya cmds')

python( "maya. cmds.Is" )

Python只会返回一种字符串的结果,这是Python目前的限制情况。

Python具有比MEL更复杂的类系统(CLASS),因此不可能完全转化为MEL能识别的类型。

Python命令会自动转换到能处理的方式。对于其他不能处理的,要求以字符串的类型作为返回对象来返回。

下表为二者相互转换的类型结果。

Maya中Python脚本的使用(二)

Maya中Python脚本的使用(二)

2.2 在Python中调用MEL

在Python编译器中调用MEL,比如使用maya.mel.eval()功能,能更好地转换MEL Python之间命令,因为Python有更多的类支持。必须导入Maya.mel模块来使用这个命令。那就是:

import maya.mel as mm

mm.eval( 'polySphere;")

下表为二者相互转换的结果类型。

Maya中Python脚本的使用(二)

2.3 位置参数

位置参数指的是U1元素向其回调脚本传递的参数。例如,浮点滑块控件的回调MEL脚本可以包含#1。在运行此回调时,浮点滑块的值将替换为此位置参数。

Python支持两种在回调中替换来自控件的值的方法。如果回调是一个要对其求值的字符串,Maya就以MEL中的方式进行字符串替换。但是,会使用Python的格式运算符进行替换。格式操作将会获得一个传递来的用于替换的项目字典,其中值的名称为1、2等。例如:

maya. cmds floatSlider( cc="print '%(1)s" )

在执行此字典之前,会先将其应用于字符串。在执行脚本之前,floatSlider 命令使用当前滑块值对此字符串进行格式设置。对于格式操作,用户为其提供格式字符串,UI元素为其提供字典。

Python回调的第2个样式使用编译的函数,其中Maya将值作为参数传递给该函数:

def doPrint( arg ):

print arg

cmds.floatSlider( cc=doPrint)

使用回调函数时,如果回调没有使用正确数量的参数,则会收到错误消息。

def badStuff):

print "bad"

cmds.floatSlider( cc=badStuff )

在移动滑块时会看到以下错误:

# TypeError: badStuff() takes no arguments (1 given)

如果要创建可使用任意数量的参数的回调,请使用变量参数列表:

def genericCallback( *args ):

print( 'args:"+ str( args))

cmds. button( command-genericCallback )

学员作品赏析
  • 2101期学员李思庭作品

    2101期学员李思庭作品

  • 2104期学员林雪茹作品

    2104期学员林雪茹作品

  • 2107期学员赵凌作品

    2107期学员赵凌作品

  • 2107期学员赵燃作品

    2107期学员赵燃作品

  • 2106期学员徐正浩作品

    2106期学员徐正浩作品

  • 2106期学员弓莉作品

    2106期学员弓莉作品

  • 2105期学员白羽新作品

    2105期学员白羽新作品

  • 2107期学员王佳蕊作品

    2107期学员王佳蕊作品

专业问题咨询

你担心的问题,火星帮你解答
×

确定