原文作者:edward
在maya里什么是read only节点
通常创建一个新的maya 文件所自带的节点都是read only node,或者称为defualt node
这些节点不能修改命名,不能删除,甚至某些属性也不能更改
而在项目中有时会出现文件中的默认节点被非法修改(正常情况下是无法修改的)
例如: 默认 persp摄像机名字不正确
默认 renderLayer 名字不正确
等等
这类情况出现时 无论是手动想去修改该类节点或是直接用maya命令去修改都会出现以下报错
但放任不管又会影响一些项目流程工具的使用。
以下介绍2种方法修改这类节点的命名:
1,直接存为ma文件,在ma文件中直接修改
2,使用mayaAPI进行强制命名更改
通常maya的 cmd有很多规则限制,例如不能将位移节点P给形状节点,不能修改只读节点等等
但MAYA API 是更底层的,没有这些限制,所以可以无视这些规则进行修改
以下是maya python api代码,用与修改defualtRenderLayer的命名:
import maya.OpenMaya as om
import maya.cmds as cmds
#edo_renameDefualtRenderLayerName()
def edo_renameDefualtRenderLayerName(newname='defaultRenderLayer'):
drl=cmds.listConnections('renderLayerManager.rlmi[0]',s=0,d=1)[0]
if not drl=='defaultRenderLayer':
try:
cmds.delete('defaultRenderLayer')
except:
print 'defaultRenderLayer is not found!'
cmds.select(drl,r=1)
msl=om.MSelectionList()
mg=om.MGlobal()
mg.getActiveSelectionList(msl)
msl.length()
mobj=om.MObject()
msl.getDependNode(0,mobj)
mfndn=om.MFnDependencyNode(mobj)
mfndn.setName(newname)
edo_renameDefualtRenderLayerName()
,Maya技巧,Maya安装