IK约束
IK约束在Spine Essential版中不可用。
IK约束用于设置骨骼旋转,可使骨骼末梢接触或指向目标骨骼。这有多种用途,但最常见的是通过移动手或脚来控制四肢。
通常设置动画的方式称为FK或正向运动学。FK是一种自上而下的方法:要设置手部位置动画,首先旋转上臂,然后旋转下臂。许多动作都可以用这种方式完成,但其他动作很难做到。例如,要在骨架站立时保持手的位置,需要连续调整手臂骨骼,需要许多关键帧才能使手保持在适当位置。
IK或“反向运动学”可以通过使用自下而上的方法更优雅地解决这个问题。例如,设置手位置,然后Spine会自动设置上臂骨骼和下臂骨骼的旋转。
IK可用于许多任务,例如在行走动画期间防止脚穿透地板、在运行时调整IK目标以站立在不平坦的地形上、鸡等。
设置
Spine IK可以约束一个或两个骨骼。要创建IK约束,请首先:
- 对于一个骨骼,选择要约束的骨骼。创建IK约束后,骨骼将旋转以指向目标骨骼。
- 对于两个骨骼,选择要约束的骨骼并选择其子对象之一。创建IK约束后,骨骼将旋转,以致子骨骼的末梢位于目标骨骼。
单击受约束的骨骼将在末梢创建目标,确保在创建IK约束时受约束的骨骼不会移动。
接下来,在层级树属性中选择新建...
IK约束
,进入选择目标模式。通过单击现有骨骼或在空白区域单击以创建新骨骼来选择目标骨骼。单击受约束的骨骼将在该骨骼的末梢创建目标。目标骨骼不能是受约束骨骼的子级。
不支持约束三个或更多骨骼,因为其具有不确定性且难以控制。而应使用多个IK约束或FK。
属性
对于单骨骼IK:
对于双骨骼IK:
父级
这将显示第一个受约束的骨骼。单击该骨骼将选中它。
单击铅笔图标可以选择不同的骨骼。
子级
对于一个骨骼IK,此属性将为空。
这显示了第二个受约束的骨骼。单击骨骼将选中它。
点击铅笔图标可以选择不同的骨骼,或者点击X
按钮可以清除子骨骼。
目标
这将显示目标骨骼。单击该骨骼将选中它。
单击铅笔图标可以选择不同的骨骼。
正向
此属性仅适用于双骨骼IK。
选中后,子骨骼相对于父骨骼以正向(逆时针方向)旋转。
正弯曲方向属性可设置关键帧。
压缩
此属性仅可用于一个骨骼IK。
当与目标骨骼的距离小于受约束骨骼的长度时,压缩会使受约束骨骼缩放得更小。
压缩属性可以设置关键帧。
拉伸
当到目标骨骼的距离大于受约束骨骼的长度时,拉伸会使受约束骨骼缩放得更大。
拉伸属性可以设置关键帧。
与双骨骼IK一起使用时的限制:
- 子骨骼的本地Y平移设置为0。
- 当柔和度大于0时不应用拉伸。
- 当父骨骼具有本地非均匀比例时,不会应用拉伸。
均匀
柔和度
此属性仅可用于双骨骼IK。
柔和度会在受约束的骨骼拉直时减慢骨骼的速度。柔和度为0时,IK骨骼可能会在目标超出范围之前快速移动,这通常是不需要的。
柔和度值是目标骨骼与骨骼最大伸展之间的距离,骨骼在伸直时开始减慢速度。除非目标移动到超过骨骼的最大伸展范围,否则骨骼不会完全伸直。
柔和度属性可以设置关键帧。
混合
通常,混合FK和IK只在动画期间过渡到0(仅FK)和100(仅IK)或反向过渡时短暂需要。但是,某些情况下可以利用混合FK和IK来实现难以设置关键帧的组合运动。例如,手臂使用IK微微上下挥动,同时还使用FK执行另一个动画。
当混合值大于0且小于100时,移动目标骨骼可能会导致旋转突然使用另一个方向。这是因为骨骼旋转和约束旋转之间的插值使用最短的旋转方向。
对于双骨骼IK,当混合大于0并且父骨骼具有本地非均匀比例时,子骨骼的本地Y平移将设置为0。
限制
由于IK和骨骼变换的相互作用,存在一些小限制:
- 目标骨骼不能是受约束骨骼的子对象。
- 对于双骨骼IK:
- 子骨骼必须是父骨骼的直接子骨骼。
- 任何受约束的骨骼都不能禁用继承旋转、缩放和剪切。
- 父IK骨骼的本地剪切设置为0。
- 当混合大于0并且父骨骼具有本地非均匀比例时,子骨骼的本地Y平移设置为0。
- 拉伸使子骨骼的本地Y平移设置为0。
- 如果柔和度大于0,则不应用拉伸。
- 当父骨骼具有本地非均匀比例时,不会应用拉伸。