链接策略

在开始链接一些较为复杂的层次之前应该需要几分钟时间计划一下链接策略。对层次根部和树干成长为叶对象的方法选择将对模型的可用性产生重要影响。

将对象链接入层次的背后策略可以归纳为两个主要的原则:

通过这两条原则,对于链接对象的方法几乎有着无限的灵活性。如果对使用层次进行了计划并记住链接的用途,那么在实际中很少会遇到问题。

从父对象到子对象的过程

从父对象到子对象的过程意味着链接没有从对象到对象间无规律的跳跃。如果两个对象彼此接触它们可能是作为父对象和子对象进行链接的。甚至可以将躯干的链接顺序设为:大腿->脚->胫骨->腰部。稍候再考虑这个链接策略。计算出用这种奇怪方式链接的对象变换的方法是很困难的。更符合逻辑的过程应该是脚->胫骨->大腿->腰部。

使用多个层次

不必从臀部到脚趾构建一条单独的骨骼链,可以从臀部到脚踝构建一条骨骼链,然后构建另一条从脚跟到脚趾的独立的骨骼链。然后就可以将这些骨骼链链接到一起组成一条完整的腿的集合。

因为腿和脚已经链接到一起,所以它们可以看作一条骨骼链。然而,将它们设置为动画的方式是对每条链分别处理,允许对部分进行完善的控制。

通过使用这种腿和脚的骨骼链的排列类型,当腿弯曲时却可以使脚保持站在地面上。此操作也允许独立控制脚在脚跟或脚趾轴上的旋转,这可以实现膝盖的弯曲。

父对象的移动少于子对象

因为变换的的方式是子对象从父对象继承的,所以对父对象的微小调整可能会导致需要对它的所有子对象进行调整。链接的典型方法是选择根对象一类的对象使它们移动得最少。与根对象相邻的对象应该移动得很少,而树叶对象应该移动得最多。

当链接机器人或机械装置之类的关节结构,或要使用反向运动学的层次时,这条原则尤其有用。

当把根对象作为控制柄时,此规则例外。根的所有子对象都跟随着父对象就像骑马一样。设想一个装满了对象的盘子在运输带上移动。所有的对象都应该是盘子的子对象,但是盘子比所有的对象移动得都要多。

选择层次的根对象

可以通过下面的问题来找到最好的层次候选根对象:

如果移动此对象,所有层次中其他的对象都要随之移动吗?

一旦确定了一些根对象的候选,就可以更精确地检查它们。通过以下条件来为层次确定好的根对象:

最适合这些条件的对象就是根对象。然后可以创建层次,其中包含的所有其他对象都作为根对象的子对象。

链接反向运动学对象

反向运动学 (IK) 使用子对象作为动画的驱动力。IK 比较严谨并高度依赖于链接策略来执行计算。

在使用反向动力学链接层次时,需要考虑两个附加的原则。

上面的图形显示了两种链接骨骼结构的方法。每种结构都适合处理正向运动学。然而右边的结构更适合于反向运动学。

左边的结构将手臂和躯干链接到颈部。右边的结构将手臂和颈部链接到躯干,这是更真实的方法。

警告: 确保避免对要使用 IK 设置动画的层次中的对象使用非均匀缩放。这样,您就会看到拉伸和倾斜的过程。在子对象级别进行所有非均匀缩放也可避免此问题。如果有些对象显示了这种行为,那么要使用重置变换。

在动画之后链接对象

当把一个对象与另一个对象相链接时,子对象和其父对象之间的链接关系决定于位置、旋转度、父对象和子对象在链接创建时的比例。

想象一下将一个固定的球体链接到一个动画长方体上。

将球体链接到长方体使球体与长方体一起移动。在球体与长方体之间的距离取决于构建链接的帧的位置。对不同的帧上的球体进行链接会有以下效果:

在动画之后取消链接对象

当取消链接子对象时,它的第 0 帧会在移除链接的同时从其父对象在该帧的变换中移出。

想象一个链接到长方体的球体绕着钟面移动。该长方体在 12 点开始移动并绕着钟面行进超过 100 帧。图形显示一个长方体在沿着圆圈移动并有一个球体与之链接。

原始的动画中球体链接到设置动画的长方体并跟随之移动。

如果对球体取消链接会停止跟随长方体。球体的位置取决于它在链接移除的帧上的位置、旋转度或比例。在不同的帧上对球体取消链接会有以下效果: