使用动画子项冻结父对象的缩放比例(MAYA MEL / Python脚本)

时间:2017-08-18 13:21:47

标签: python parent-child hierarchy maya mel

我有翻译和旋转动画的对象层次结构,比例xyz相等而且静态但不是1.当我在父网格上冻结比例时,它的子项动画会变得狂野。有什么办法可以防止这种情况发生吗?

我找到了一个解决方法,但它还不完美。假设我们有这样简单的设置: parentObject => childObject

  1. 我将childObject放在一个组“childObjectGroup”
  2. 父childObjectGroup到世界,并将其变为零,不包括scale。
  3. 将childObject的变形烘焙给世界,这样我们就不再需要一个团体了。 (找到了一个很好的脚本)
  4. 冻结比例转换为parentObject和childObject
  5. 重新归还他们
  6. 它适用于这样的简单层次结构,但不确定如何将它应用于具有深树和几个早午餐的更复杂的层次结构。可能我错过了一些东西,并且有一个非常简单的解决方案。

1 个答案:

答案 0 :(得分:1)

每当你改变父节点的比例时,它的孩子的翻译就会改变 - 至少,如果你在世界空间单位中进行测量。因此,将父级下的10个单位缩放到0.5将实际移动5个世界空间单位(例如)。

我很确定你的旋转应该没问题,因为刻度并没有真正改变绕枢轴旋转的方式;但是,如果你从一个不在物体中心的枢轴旋转东西并且你有不均匀的缩放(xyz并非全部相等),那么压扁空间内的旋转会感觉像椭圆形一个圆圈。

如果这不是问题,最需要担心的是翻译位置 - 你基本上需要在每个键上获得每个对象的世界空间位置,并修复&#​​39;比例,然后通过键并再次设置世界空间位置(我将使用xform命令,因为您可以使用世界空间值查询和设置位置)。所以,你概述的步骤可能是最好的选择......

如果你有不均匀的比例,你实际上可能无法以一种能给你相同结果的方式进行旋转(仅取决于位置/枢轴和连续的后代位置/枢轴)。如果父母的比例实际上没有伤害任何东西并且不应该被键入/动画,那么可以锁定并隐藏它而不会产生任何不利影响。