UnityFinalIK笔记总结

前言

笔者前段时间忙于应付学业,于是心思就很少在Unity上,最近就愈发感觉遗忘的东西比较多。这次再系统的整理一下FinalIk的用法吧,以后忘记了再回头瞅一瞅。

上半身处理

射击游戏中上半身动画有非常多,每把武器都有不一样的一套Pose,每个持器状态下又有很多种动作,可想而知如要给这些动作去做下半身动画那工作量是巨大的,当然高品质游戏肯定还是是要有与之对应的下半身动作。就算想这样做,网上也找不到那些可用的合适动作(还要考虑骨架重定向问题)。所以只能考虑动画分层用IK去处理上半身动画来减少对动画资源的依赖。这阵子摸索下来,发现可能IK处理的参数还是需要跟动画进行绑定,因为我的动作资源都是从网上零零散散找下来的,原骨架大多都不一致,这就很有可能会发生一下怪异现象,就更需要我们去做针对性的调整。更何况Ik本身就是用于处理动画,跟每个动画片段绑定是再合适不过的选择了。emmm~找一个能用的动作好麻烦啊

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

该方法用于我们自己在需要的时候更新解算器。不过我认为应当在测试调试时候使用,在正常的运行流程中不要使用该方法来更新骨骼解算器。因为在通常情况下,约束求解器会在游戏运行过程中自动更新,确保约束的实时计算和应用。如果调用该方法可能会打乱解算器的更新顺序,解算器之间存在顺序关联,如果解算的顺序发生打乱了那么可能会导致效果有些许问题。

作者:Miracle
来源:麦瑞克博客
链接:https://www.playcreator.cn/archives/unity/3274/
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
THE END
分享
打赏
海报
UnityFinalIK笔记总结
前言 笔者前段时间忙于应付学业,于是心思就很少在Unity上,最近就愈发感觉遗忘的东西比较多。这次再系统的整理一下FinalIk的用法吧,以后忘记了再回头瞅一瞅……
<<上一篇
下一篇>>
文章目录
关闭
目 录