• [Unity菜鸟] Final IK


    由于本人英文较烂,边翻译用户手册边学习。

    用户手册 

    IK Components

    Final IK 包含许多强大高速的IK组件

    Aim 

    AimIK solver是一个对CCD算法(cyclic coordinate decent循环坐标下降算法)的修正,通过旋转骨骼的层次结构,确定瞄准目标后子骨骼的Transform。

    它不同于内置Animator的 SetLookAtPosition 和 LookAtIK 功能,因为它能对不一致的层级主轴进行精确的目标转换。(because it is able to accurately aim transforms that are not aligned to the main axis of the hierarchy.)

    AimIK能重定位角色动画产生非常稳定并且自然的样子,因此它在武器瞄准系统有巨大的潜能。使用AimIK我们能通过偏移单一的向前瞄准姿势或动画来瞄准目标,即使目标几乎在角色身后。它仅仅是对四元数奇点做180度的偏移,solver不知道把脊椎转向哪里。同LookAtIK一样,AimIK提供一个clampWeight属性来避免奇点问题。

    AimIK还适用于旋转限制,然而它比其它约束solvers更容易阻塞,链条应该有很强的约束性。

    Aim提供了高速高精度,仍须记住把目标的位置与aiming Transform维持在一个安全的范围。如果到traget的距离小于到aiming Transform的距离,solver会尝试卷向自身,可能不会产生预期的结果。

    步骤:

      · 把AimIK组件添加到角色上

      · 把所有的脊椎骨(spine)骨骼节点赋给AimIK组件的Bones (如Bip002 Spine1 Spine2 Spine3 Neck)

      · 给Aim Transform赋值 (你想瞄准的目标的Transform)

      · 确保Axis代表你想要瞄准的Aim Transform的当前轴 (axis)

      · 设置Weight为1,点击Play运行

    改变瞄准目标 target

    public AimIK aimIK;
    void LateUpdate ()
    {
        aimIK.solver.IKPosition = something;
    }
    

    改变Aim Transform  

    public AimIK aimIK;
    void LateUpdate () 
    {
        aimIK.solver.transform = something;
        aimIK.solver.axis = localAxisOfTheTransformToAimAtTheTarget;
    }
    

    在运行时增加AimIK

     · 通过脚本添加AimIK组件

     · 调用 AimIK.solver.SetChain()

     AimIK slover 运行效果

    Biped IK

    IK系统标准的两足角色旨在复制和增强

  • 相关阅读:
    RedHat Openshift 搭建个人博客(wordpress)指南
    Sokcet方式请求HTTP/HTTPS的封装类HttpHelper
    不花钱的主机
    关于IE、火狐等浏览器兼容问题的总结
    ios平台调用WCF
    Windows Writer的服务提供器
    QQ开放平台 OAUTH2.0 QqConnetSDK 登录,运行原理,附源码。
    Learning Cocos2dx for XNA——深入剖析Hello World
    Albacore.NET下基于Rake(ruby make)的自动化构建工具
    排序算法
  • 原文地址:https://www.cnblogs.com/code1992/p/FinalIK.html
Copyright © 2020-2023  润新知