在 maya 的列表命名约定中附加 aiArealights Python
Append aiArealights in list naming convection in maya with Python
所以我有一个功能,当我点击一个按钮时,我的列表中会出现一个 aiAreaLight。
我将灯重命名为 'PainterLight_aiArealight'+'1',所以每次我制作灯时,我都会使用 1,2,3 等...
在我的大纲中我有正确的名字,但是当我打印我的列表时,它保留了名字'transform1.
有人可以解释我做错了什么吗?
See screenshot
我的代码:
import maya.cmds as cmds
lights=[]
def Button_pressed ():
lights.append(cmds.shadingNode('aiAreaLight', asLight=True))
cmds.rename(lights[len(lights)-1],'PainterLight_aiArealight'+'1')
print(lights)
maya.cmds 通常使用字符串。所以你的灯列表确实是一个字符串列表,与 maya 中的任何真实对象没有任何联系。在这种情况下,您可以先简单地重命名您的灯光,然后将其附加到您的列表中,或者您可以使用 pymel,它使用对象并进行重命名。
import pymel.core as pm
lights=[]
def Button_pressed ():
lights.append(pm.shadingNode('aiAreaLight', asLight=True))
lights[-1].rename('PainterLight_aiArealight'+'1')
print(lights)
所以我有一个功能,当我点击一个按钮时,我的列表中会出现一个 aiAreaLight。 我将灯重命名为 'PainterLight_aiArealight'+'1',所以每次我制作灯时,我都会使用 1,2,3 等...
在我的大纲中我有正确的名字,但是当我打印我的列表时,它保留了名字'transform1.
有人可以解释我做错了什么吗?
See screenshot
我的代码:
import maya.cmds as cmds
lights=[]
def Button_pressed ():
lights.append(cmds.shadingNode('aiAreaLight', asLight=True))
cmds.rename(lights[len(lights)-1],'PainterLight_aiArealight'+'1')
print(lights)
maya.cmds 通常使用字符串。所以你的灯列表确实是一个字符串列表,与 maya 中的任何真实对象没有任何联系。在这种情况下,您可以先简单地重命名您的灯光,然后将其附加到您的列表中,或者您可以使用 pymel,它使用对象并进行重命名。
import pymel.core as pm
lights=[]
def Button_pressed ():
lights.append(pm.shadingNode('aiAreaLight', asLight=True))
lights[-1].rename('PainterLight_aiArealight'+'1')
print(lights)