import maya.cmds as cmds
# dag flag is used to find everything below (like shapes)
# so we specify we want only tansform nodes
sel = cmds.ls(sl = True, dag=True, type='transform')
for i in sel:
# we create a string attr for the current object 'i' because we will
# use it multiple times
attr = '{0}.backfaceCulling'.format(i)
# We check if this transform node has an attribute backfaceCulling
if cmds.ls(attr):
# if yes, let's set the Attr
cmds.setAttr(attr, 0)
편집 --- 여러 속성에 대한 하나의 예 :
import maya.cmds as cmds
# dag flag is used to find everything below (like shapes)
# so we specify we want only tansform nodes
sel = cmds.ls(sl = True, dag=True, type='transform')
# Multiple choices for multiple attr to change :
# attrs = ['backfaceCulling', 'visibility']
# OR if you have different values
# attrs = [['backfaceCulling', 0],
# ['visibility', 1]]
# OR better go with dictionnaries if you have multiple values :
attr_dic = {'backfaceCulling' : 0,
'visibility': 1}
# you may add type if you need to
# attr_dic = {'translate' : (0,1,3),
# 'visibility': 1,
# 'type_translate' : 'double3',
# 'backfaceCulling':1}
for a in attr_dic.keys():
# keys return : backfaceCulling and visibility
fullAttr = ['{0}.{1}'.format(i, a) for i in sel if cmds.ls('{0}.{1}'.format(i, a)) if cmds.ls('{0}.{1}'.format(i, a))]
# This list comprehension return :['pSphere1.visibility','pSphere2.visibility','pSphere3.visibility','pSphere4.visibility','pSphere5.visibility']
# syntax of list comprehension : [i for i in list if condition], it is used instead of normal for loop because it is really fast
for attr in fullAttr:
#for each obj, set value
cmds.setAttr(attr, attr_dic[a])
# if you are using type :
# if not attr_dic.get('type_{0}'.format(a)):
# cmds.setAttr(attr, attr_dic[a])
# else:
# t = attr_dic['type_{0}'.format(a)]
# cmds.setAttr(attr, *attr_dic[a], type=t)
마지막으로 ""'채택 .format()'일부 마야 개발자 : D – user1767754
AHAH, 나는이 촬영했습니다 habbits는 마야가 파이썬 3.0으로 전환 할 것이기 때문에 지금은 더 읽기 쉽다는 것을 알게되었습니다. – DrWeeny
친절하게 설명 해주셔서 감사합니다. 그러나 다른 속성을 추가로 설정하려면 어떻게해야합니까? for 루프에서 여러 attrs를 만들려면 어떻게해야합니까? – user8972552