Maya + Python: 将枢轴移动到底部边界框

3 投票
1 回答
6487 浏览
提问于 2025-04-18 02:53

我该怎么做才能把选中节点的旋转中心(也就是枢轴)移动到边界框的底部呢?

# 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)

撰写回答