【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 01

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

IK 02

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

IK 03

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

FK/IK融合 Mixing FK/IK

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

IK 04

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

IK 05

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

设置动画 Animating

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

IK 06

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


你可能感兴趣的:(IK,Spine)