我刚刚开始学习一些用于装配的Python,而我的大学并没有真正专注于此,我对尝试使用的几种代码组合感到有些困惑。
我想将每个关节的许多关节移动到不同的位置,而不是连续20次执行cmds.move(),而我希望将迭代与元组一起使用以使线条更整洁。
这是我用Python编写的一小段代码:
# import commands from maya package
from maya import cmds
moveTailJoints = {
'tail_001_jnt': {(0, 2.607, -20.579)},
}
for driver, driven in moveTailJoints.iteritems():
cmds.move(
driver.format(),
driven.format()
)
这是最好的方法吗?
答案 0 :(得分:0)
欢迎您!
几件事:
您不需要位置值{(0, 2.607, -20.579)}
周围的嵌套字典,因为它没有任何用途。
您可以使用dict
内置的.items()
方法遍历对象和位置。
您在这里不太清楚,但是我假设这些位置值是世界坐标?如果是这样,则需要在cmds.move
方法中包括绝对标志。另外,您也可以使用cmds.xform
将对象移动到世界空间位置。
import maya.cmds as cmds
moveTailJoints = {
'tail_001_jnt':(0, 1, 0),
'tail_002_jnt':(0, 2, 0),
'tail_003_jnt':(0, 3, 0),
'tail_004_jnt':(0, 4, 0)
}
for obj, pos in moveTailJoints.items():
tx, ty, tz = pos
cmds.move(tx, ty, tz, obj, a=True)
有关命令用法的更多示例,请查看Maya文档:
http://help.autodesk.com/view/MAYAUL/2018/ENU/?guid=__CommandsPython_index_html