伙计们。 我想做的是在场景中搜索所有用户创建的摄像机,并同时更改它们的属性。到目前为止,这是我得到的,并且仅更改了一个摄像机的属性。我可以得到一些建议吗?我想我需要知道如何列出此定义的用户创建的摄像机,以便我可以同时更改所有摄像机。
谢谢。
def fast_calc(X):
colsum=np.sum(X,axis=0)
X=X[:,colsum!=0]
return X.dot(X.T)
Y=np.empty([X.shape[0],X.shape[0]])
for i in range(X.shape[0]):
for j in range(i,X.shape[0]):
Y[i][j]=sum(X[i,:]*X[j,:])
Y[j][i]=Y[i][j]
return Y
答案 0 :(得分:2)
一个简单的循环应该可以解决问题,这是字典的示例,但是您也可以将attrs / values压缩到一个列表中
import maya.cmds as cmds
allCams = cmds.ls(type='camera')
defCam = ['perspShape','topShape', 'sideShape', 'frontShape']
cams = list(set(allCams)-set(defCam))
attributes = {'nearClipPlane':0.01,
'farClipPlane':1000000}
for c in cams:
for attrName in attributes.keys():
cmds.setAttr('{}.{}'.format(c, attrName), attributes[attrName])
还要注意,在您的代码中:
allCams = cmds.ls(type =('camera'),l = True)
将根据您的listRelatives给出长名:
cmds.listRelatives(camera,parent = True)
需要标志-fullPath返回长路径
否则,您将无法保留您的布景。我建议这样做:
defaultcam = [i for i in allCams if cmds.camera(i, startupCamera=True, q=True)]
fullDefCam = cmds.ls(defaultcam, l=True)