Maya + Python: 将枢轴移动到底部边界框
我该怎么做才能把选中节点的旋转中心(也就是枢轴)移动到边界框的底部呢?
# Move the pivot for each selected not to it's center then bottom
import maya.cmds as cmds
curSel = cmds.ls(long = True, selection = True, type = 'dagNode')
for n in curSel:
bbox = cmds.exactWorldBoundingBox(n)
cmds.xform(n, cp=1)
1 个回答
7
bbox
是一个包含6个元素的列表,表示物体在三维空间中的边界,具体是 XYZ 最小值 和 XYZ 最大值,格式为 [xmin, ymin, zmin, xmax, ymax, zmax]
。如果你想把物体的旋转中心设定在底部中间的位置,那么你需要计算平均的 X 值、最小的 Y 值和平均的 Z 值:
bbox = cmds.exactWorldBoundingBox(n)
bottom = [(bbox[0] + bbox[3])/2, bbox[1], (bbox[2] + bbox[5])/2]
cmds.xform(n, piv=bottom, ws=True)