Final Ik 说明文档翻译

 
/*全身BipedIK
Final IK 为采用biped骨骼的角色提供了一个极端灵活、强大且高效的全身IK解算器。FBBIK先把Biped角色映射到一个低解析度的多反应器角色IK绑定,解算它,然后重新把结果映射角色。这个过程在LateUpdate进行,在Mecanim/Legacy动画完成之后,所以它跟animator系统完全分离。
链:
内部,每个肢体和躯干都是FBIKChain类的实例。躯干是根链,只包含一个node,躯干是它的子链。这种设置形成一个围绕根链的多反应器IK树。
节点:
node是链的组成部分。比如,手臂链包括3个节点-上臂、前臂、手。每个节点维护一个到骨骼的引用(node.transform)。当解算器运行或者结束后,解算出的骨骼位置会保存在node.solverPosition。
反应器:
FBBIK有3种反应器-【末端反应器】(手、脚),【中间反应器】(肩膀、大腿)和【多反应器】(躯干)。当旋转【中间反应器】和【多反应器】无效的时候可以转动【末端反应器】。旋转【末端反应器】同样会改变躯干的弯曲方向(除非你用弯曲目标覆盖它)。躯干反应器是一个【多反应器】,意味著它拖动2个大腿反应器(简化躯干定位)。反应器有positionOffset属性可以非常简单的操控下层动画。反应器会在每次解算结束之后将postionOffset重置为Vector3.zero。
拉和伸:
每个链都有pull属性。当pull=1,pull权重跟肢体一样。这意味著你触到所有反应器是没有保障的,太远的会接触不到。可以通过修改reach参数,或增加解算迭代次数,或这每帧多次解算,来调整或者改进这个结果。但是,如果你把左臂链的pull权重设置到1然后其他都为0,那么你可以拉角色的左手到无限远而不丢失联系。
映射:
IKSolverFullBodyBiped解算一个非常低分辨率的快速躯壳。虽然你的角色有多得多的脊椎骨,他可能有两倍的骨骼在手臂和肩膀或者臀部骨骼等等。因此,在解算之前,解算器需要映射高分辨率的骨架到低分辨率的解算骨架,在解算完成之后再逆向操作。有3种映射器,1.IKMappingSpine用来映射盆骨和脊柱;2.IKMappingLimb映射躯干;3.IKMappingBone映射头部;你可以通过IKSolverFullBody.spineMappingIKSolverFullBody.limbMappings和IKSolverFullBody.boneMappings访问他们。
限制:
1.FullBodyBipedIK没有头部反应器。因为头部只有一个骨头,你可以再FullBodyIK结束之后随意转动,而且,只有极少的情况你需要抓住头部拉动角色。即使如此,它可以通过拉动肩膀来很好的模拟。这是一个让程序更快、更稳定的优化措施。
2.FullBodyBipedIK没有手指和脚趾反应器。解算手指IK似乎有点过分使用IK了,因为极少有游戏对手指做绑定。使用104段CCD或者FABRIK链控制手指,可能这样浪费宝贵的毫秒数并不是你想要的。你可以参考DrivingRigdemo了解如何快速摆手指到物体上。
3.FullBodyBipedIK采样角色的初始pose(在Start()函数,当每次你重新初始化解算器的时候)找到以什么方式弯曲肢体。从此,限制-角色的肢体需要被弯曲到自然的方向。有些角色可能是处于T-Pose,他们的肢体是伸直的。有些角色的肢体可能还轻微的往反向弯曲(有些Mixamo绑定的角色)。FullBodyBipedIK会警告你这些问题可能发生。你需要手动在SceneView稍微旋转骨骼到正确的弯曲方向。因为,这些旋转会在播放的时候被动画覆盖,所以你不用担心搞坏你的角色。
4.FullBodyBipedIK 没有肘部、膝部反应器。这功能在将来如果确实需要的话可能增加。仍然支持通过弯曲目标改变肘部、膝盖的位置。
5.Optimize Game Objects 需要关闭,或者至少所有解算器需要的骨骼要引入(FullBodyBipedIK.references)。
6.支持只有扭曲动画的额外骨骼。如果额外骨骼有摆动动画,比如翅膀摆动。那么FBBIK将不能正确解算。
7.FullBodyBipedIK 需要角色开启animatePhysics。这是Mecanim系统的一个bug,它不允许运行时改变animatePhysics,那么FullBodyBip
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值