Spine入门——反向动力学

Spine?

Spine 是一款针对游戏的 2D 骨骼动画编辑工具。 Spine 旨在提供更高效和简洁 的工作流程,以创建游戏所需的动画。

反向动力学 Inverse Kinematics (IK)

通常情况下,我们使用 FK 工具设置动画,它是正向动力学的缩写。当设置 手部位置动画时,FK 从上至下驱动,先转动大臂,再转动小臂来实现。大多数 情况下它能很好的达到我们想要的效果。但某些特殊情况比如:一个坐着的角色 手扶桌面,慢慢起身,这时 FK 需要不段的调整手部的位置,以使其能保持按在 桌面上。这将需要创建大量关键帧来实现。

IK 对于这种情况会更合适,它是反向动力学的缩写。IK 从下至上驱动。设 置好手部的位置后,角色起身时,手部保持不动,小臂和大臂的骨骼会自动旋转 到合适角度。

IK 也适合于完成其它一些任务,比如脚部会踩进地面的行走动画(例如游 戏场景中有一关沼泽地),可以在运行时通过调整 IK 目标(IK target)实现角色 在不平坦的地面上行走的效果,等等。在 Spine 中对骨骼的控制可以是 FK,可 以是 IK,可以是 FK/IK 两者混合的效果。当然也可以在动画中实现 FK 和 IK 之 间的平滑过度。(传说中的 FK/IK 无缝转换)

装配(Setup)

要使用 IK(IK 约束)需要三个骨骼:父骨骼、子骨骼、目标骨骼。子骨骼 必须是父骨骼的子级,但可以不是直接的父子关系。目标骨骼不能是父骨骼的子 级。开始创建 IK 约束,选中父骨骼、子骨骼,在层级树目录中点击约束 (Constraints),点击创建新 IK 约束(New IK Constraint),然后选择一个已经存 在的骨骼(父骨骼的子级不能选)作为目标,或是点击场景中空白区创建一个新骨 骼作为目标。

IK 约束会不断的调整父骨骼、子骨骼的旋转值,以使子骨骼的末端钉在目 标骨骼上。

父骨骼与子骨骼的弯曲方向可以通过 IK 约束(IK constraint)的属性来改变。

当一个骨骼的旋转属性被 IK 约束(IK constraint)所控制时,它将显示为一个 中空的骨骼,以表明某些变换操作,现在不能手动控制了。(关于如何停用 IK, 在后面介绍)

FK/IK 融合(Mixing FK/IK)

IK 的混合(Mix)滑动条,用于控制骨骼受影响的程度。当值为0表示当前骨 骼完全处于 FK 控制,当值为100表示当前骨骼完全处于 IK 控制。当值为0到100 之间,表示骨骼同时受到 FK 和 IK 的控制。两条辅助线分别表示,FK 的位置和 IK 的位置。

通常在一个动画中只需要为 FK/IK 做0到100之间的简单过渡(下文中有介 绍)。总之在某些情况下使用 FK/IK 混合功能比直接 K 帧要方便的多。例如:用 IK 做了一段手臂上下挥动的动画,接着要用 FK 做另一部分。这时关掉 IK 约束 的显示开关,IK 的控制效果就会被停用,这样更方便将 FK 对齐到 IK 的位置。

当 IK 约束被停用,骨骼将完全处于 FK 状态,并且可以像通常那样进行变换 制作。注意:当 IK 约束停用时,此约束影响的骨骼下的附属资源将变为不可编 辑。

设置动画(Animating)

当在动画模式下改变了弯曲(bend)或混合(mix)属性的值,约束节点前的小 钥匙就会变成黄色。点击小钥匙图标,将同时为弯曲(bend)和混合(mix)属性创 建关键帧,它们默认是同时创建的没法分开。

设置混合(mix)属性的关键帧,通常用于在动画中控制 IK 的起效和失效。在 曲线编辑器中,可以通过一根曲线来控制它,因此混合(mix)属性的过渡效果是 可以自定义的。

标签: spine

?>