Maya PyMEL

什么是pymel?

pymel 与mel以及cmds区别?

import pymel.core as pm
import maya.cmds as cmds
  • 返回类型不同

cmds只返回字符串

pymel返回实例对象,可以用type,dir以及help内置函数

# 通过pm.PyNode()将节点实例化

resNode = pm.PyNode("defaultResolution")
# 列出节点所有属性
resNode.listAttr()
resNode.width.set(720)
resNode.width.get()
pm.selected()

Node Editor

node.inputs()

# 获取的是实例化对象,有属性和方法
pm.sceneName()
pm.env.minTime
pm.env.maxTime
pm.listCameras()

import pymel.core as pm

for k, v in pm.language.Env.envVars.items():
    print(k, v)


fileName = pm.sceneName().splitext()[0].basename()
startFrame = pm.env.minTime
endFrame = pm.env.maxTime
cameraName = "%s_f%03d_f%03d" % (fileName, startFrame, endFrame)
cameraList = [cam for cam in pm.listCameras(p = True)]
selPanel = pm.getPanel(withFocus = True)
selCam = pm.modelPanel(selPanel, q=True, camera=True)
cam = pm.PyNode(selCam)
cam.rename(cameraName)

node = pm.PyNode("defaultRenderGlobals")
pm.listAttr(node)
node.imageFilePrefix.set("<Scene>/<RenderLayer>")
node.animation.set(1)
node.startFrame.set(startFrame)
node.endFrame.set(endFrame)
pm.setAttr("defaultResolution.width", 1280)
pm.setAttr("defaultResolution.height", 720)

https://help.autodesk.com/cloudhelp/2017/ENU/Maya-Tech-Docs/PyMel/