UnityFinalIK笔记总结
前言
笔者前段时间忙于应付学业,于是心思就很少在Unity上,最近就愈发感觉遗忘的东西比较多。这次再系统的整理一下FinalIk的用法吧,以后忘记了再回头瞅一瞅。
上半身处理
FullBodyBipedIK
用于两足生物的全身IK组件,组件中调整各个骨骼的weight以实现控制,不需要添加参考点就可以在场景中实时拖拽查看效果。
组件通过肢体弯曲方式找出骨架。有些模型骨架可能是完全拉直的,在一条线上的。我们需要手动去微调骨骼点,以让fullbodyik组件识别骨架。错的骨骼会在场景中标记黄色。
Target属性:设置参考点。
iterations:迭代次数,值为0时不会去主动计算全身ik。
UseThighs:使用大腿肌肉,默认勾选,运动会缓冲更柔和。
Spine stiffness:脊椎刚度
MaintainHeadRot:当为0时,头部不跟着其他位置动,保持原动画。
Arm
Chain
- Pull:用于身体拉向目标的姿态,可以无穷大。
- Reach:用于将身体拉近目标的姿态,Reach越大,胸腔越靠近。同时左右肩膀reach越大的也越接胸前。
- Push:用于将身体推出目标的姿态,与reach相反。push越大越排斥arm
- BendGoal:控制arm关节
MappingWeight:Arm骨骼的全局权重
Biped IK
BipedIk替代 Unity 的内置 Avatar IK 系统,提供更大的灵活性,并使用相同的 API 在 Unity Free 中工作。 除此之外还添加了LookAt IK、AimIK。
LookAt IK
两足动物的LookAt解算器
Aim IK
用于武器瞄准,看物体。
Aim Transform:指定武器的朝向
axis:要瞄准 IKPosition 的目标变换的局部轴。例如,如果枪的蓝色 (z) 轴指向其枪管,则需要将轴设置为 (0, 0, 1)。
Target:看向的目标。
Tolerance: 与上次达到的角度的最小偏移。如果与先前达到的角度之差小于公差,将停止求解。如果容差为零,则将迭代直到最大迭代次数。
Bones :指定哪些骨骼要进行IK计算,按层级降序排序。
Arm IK
手臂关节求解器
按名称填入手臂骨骼,配置其实跟上面BipedIk差不多。
Rotation constraints:角度、多边形(伸展锥)、样条和铰链旋转限制,适用于 CCD、FABRIK 和瞄准求解器
Interaction System :用于创建程序 IK 交互的简单工具
Grounder:自动垂直脚放置和对齐校正系统
Baker:Baker - 用于将IK程序,动画调整,时间轴和Mecanim图层烘焙为人形,通用或旧版动画剪辑的工具
Limb IK
手臂和腿部关节求解器
双手武器可以使用LimbIk+ArmIK+SecondHandOnGun脚本搭配,效果貌似更好!(双ArmIK也可以,不过可能需要调整肘关节)
Leg IK
腿关节求解器
常用函数介绍
UpdateSolverExternal
该方法用于我们自己在需要的时候更新解算器。不过我认为应当在测试调试时候使用,在正常的运行流程中不要使用该方法来更新骨骼解算器。因为在通常情况下,约束求解器会在游戏运行过程中自动更新,确保约束的实时计算和应用。如果调用该方法可能会打乱解算器的更新顺序,解算器之间存在顺序关联,如果解算的顺序发生打乱了那么可能会导致效果有些许问题。
来源:麦瑞克博客
链接:https://www.playcreator.cn/archives/unity/3274/
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!