服务器之家

专注于服务器技术!
当前位置:首页 > 脚本编程 > Python

在Maya中使用Python

发布时间:2013-08-14 来源:服务器之家

下面是我设置插件的其中一段代码,very easy.....
def importHumanTemp():
    ##-----------  query the sysPath ------------##
    sysPath = textField('SysPathField',q=True,text=True)
   
    ##-----------  choose importTemp type ------------##
   
    huamnRadio = radioButton('humanradioButton',q=True ,select=True )
    if huamnRadio == True:
        file(sysPath + 'SlayerRigTempModlejointTemphumanjointTemp.mb',i =True)
    else:
        pass
   
    ##----------- get the preFixName -----------##
   
    charaterName = textField('CharaterNameField',q=True,text=True)
    if charaterName == '':
        preFixName = ''
    else:
        preFixName = charaterName +'_'
    #print preFixName
   
    ##----------- add preFixName to the temp -----------##
   
    masterNewName = rename('master_ctrl',preFixName +'master_ctrl')
    tempList = listRelatives(masterNewName ,allDescendents=True,shapes=False)
    for i in tempList :
        if 'Shape' in i:
            pass
        else:
            rename(i,preFixName +i)
            #print i
    #########################
    textField('importTempMessageField',e=True,text='perfect import ! ')
   
以下是解释:
def importHumanTemp():   定义函数,()里面可以是变量
##-----------  query the sysPath ------------##    “#”后面跟的是注释
if huamnRadio == True:
    file(sysPath + 'SlayerRigTempModlejointTemphumanjointTemp.mb',i =True)
else:
    pass
python对比MEL有一个明显的区别,语法,它利用段前空字符代表表达式的定义域,我个人习惯段前为四个字符串(键盘上的Tab),下面同意:
    tempList = listRelatives(masterNewName ,allDescendents=True,shapes=False)
    for i in tempList :
        if 'Shape' in i:
            pass
        else:
            rename(i,preFixName +i)
            #print i
其中pass是什么也不做的意思,pass经常与except一起使用,我个人经常使用,如下:
try:
    a()
except:
    pass
意思是运行a(),如果发生异常,不让系统报错,我们处理异常的手法是pass,接着运行下面的语句,
很多初学者会问:有错就要停,为何要跳过,好问题!!!
我在写手指的时候就用这语法:有些角色可能是4根手指,有些角色可能是5根手指,我们加入每根手指打IK,一般是5根,但是遇到四根的时候缺少了一根MAYA会报错找不到缺少的,难道我们每次就改代码?NO!
我们可以使用try:  except:如果没有最后一根手指不报错,因为不影响下面的代码运行,我们直接跳过这个错误!
如果想报给人家听出现什么错误:
可以这样使用:
try:
    a()
except :
    print "the number of fingers less than 5"
python 的函数方式:
listRelatives(masterNewName ,allDescendents=True,shapes=False)
listRelatives是MAYA定义的函数,allDescendents , shapes是函数的变量
allDescendents=True,shapes=False就是我们为变量赋值
当然MAYA在定义函数的时候也有针对使用性进行了变量的默认值供给

相关文章

推荐阅读

热点推荐

    SQL Error: select * from ***_***_news where id in ()