keywords: Maya, modify pivot center, change axis center, move pivot, Match Pivots

方式一:Insert 或者 D

默认坐标轴原点在模型底部的正中间位置,

如果想改变坐标轴原点位置,先把物体挪开,然后再按下insert键或者D键:

此时就可以移动坐标轴:

确定好新的坐标世界坐标原点后,再按一次insert键或者D键,即可完成修改。

修改坐标轴位置或者朝向,需要启用Bake Pivot Orientation(Modify -> Transformation Tools -> Move Tool),表示对坐标轴的修改是否继承到子节点(transform也是子节点的一种)。否则每当修改物体的位置或者朝向后,坐标轴又会被重置。

不勾选Bake Pivot Orientation的情况:

  • 移动坐标轴时,希望一个网格一个网格的移动,而不是随意距离拖动,点击Snap to Grids(快捷键:按住X键不放);
  • 也可以按住V键来吸附模型顶点或者关节joint;
  • 转向时按住J键来以固定角度间隔旋转坐标轴;

方式二:Reset Transformation

先将物体移动后,先执行:Modify -》 Freeze Transformations,再执行:Modify -》 Reset Transformations。

执行后坐标轴原点就会自动变为初始时的位置。

其中:

  • Freeze Transformations: 用于将translation和rotation归零,将scale归一。
  • Reset Transformations: 将坐标轴设置到父级对象的坐标原点,没有父级对象就设置到世界坐标系原点。

Reset Transformations之所以能让坐标轴原点归零,是因为重置了物体Pivots下的Local Space和World Space。

方式三:Match Pivots

Q: 方式二中提到,Reset Transformations可将子节点的坐标轴改成与父节点坐标轴一致。但是,如果场景中的两个节点没有继承关系,但又想将A节点的坐标轴位置和朝向,设置成与B节点相同,如何设置?
A: Match Pivots

案例场景:
在动画绑定中,将一个控制器的坐标轴朝向设置为与目标关节的朝向,是一个常见操作,但是控制器和目标关节没有继承关系。如下图所示:左边为关节坐标轴,右边为控制器坐标轴。

解决办法:
先选中控制器,再选中关节,Modify -> Match Transformations -> Math Pivots,并勾选Orientation
结果:

另外一个案例场景是全息影像动画,比如一台F1赛车模型,由数千个零部件组成,这些零件的坐标轴朝向要统一且坐标轴原点位置也要相同。

执行Match Pivots时如果不勾选Rotate,只勾选Orientation,则表示只匹配坐标轴朝向,不改变坐标轴原点位置。
image

注意:
1,执行Match Pivots之前,一定要对控制器执行Freeze Transformations,并且执行Delete History (Alt + Shift + D),最后再执行Match Pivots,否则控制器会出现偏移或旋转问题。
2,修改了坐标轴朝向之后,一般需要再执行Offset Parent Matrix,否则旋转并不会按照修改后的轴向旋转。比如你修改Rotate X,预期物体沿着X轴旋转,实际却沿着Y轴旋转。

方式四:Match Translation

Match Translation并不是修改坐标轴原点,而是用来匹配不同物体的坐标位置。
比如下面这种情况:想要将平面移到正方体的位置,但无法用上述方式一的方法,因为没有可以吸附的点或网格。

而且因为正方体继承在group下,想手动输入translate,将平面坐标改成与正方体一致,也行不通,因为正方体的坐标系是局部坐标系。

解决办法:Modify -> Match Transformations ->Match Translation.

以此类推,Match RotationMathc Scaling分别用来匹配转向和伸缩。

方式五:Scaling反向
坐标轴相对物体居中
参考

官方文档:Change the pivot point - help.autodesk.com


庭院深深深几许?杨柳堆烟,帘幕无重数。---欧阳修《蝶恋花》