Unity学习笔记之【IK反向动力学操作】

反向动力学Inverse Kinematics

  • 反向动力学,简称IK。相较于正向动力学,反向动力学旨在子级对父级产生的影响。

  • 使用IK,可以实现根据目标位置或方向来计算并调整角色的关节(骨骼)链,以使角色的末端(如手臂、腿部等)达到预期的位置或取向。

  • 通过使用 Unity 的 IK 功能,你可以实现各种复杂的角色动画效果,如角色抓取、足部对齐、手臂跟随等。

前言:使用IK时需要到动画器图层设置勾选IK选项

在这里插入图片描述

一、实现角色头部持续看向某物体

1. 在玩家角色的脚本中添加所看向的目标物体

    public GameObject target;
    public Transform target_trans;

2. 将所视的目标物体拖拽绑定

在这里插入图片描述

3. 编写有关IK的方法 OnAnimatorIK

    private void OnAnimatorIK(int layerIndex)//参数layerIndex设置动画层数

    {
        animator.SetLookAtWeight(1);//设置头部权重
        animator.SetLookAtPosition(target_trans.position);//看向目标物体的位置
    }

4. 实现效果如下 :移动角色时注释立方体

在这里插入图片描述

二、实现手部IK动作

    private void OnAnimatorIK(int layerIndex)//参数layerIndex设置动画层数

    {
        //手IK位置权重
        animator.SetIKPositionWeight(AvatarIKGoal.RightHand,1);
        //手IK旋转权重
        animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1);
        //设置右手IK指向
        animator.SetIKPosition(AvatarIKGoal.RightHand, target_trans.position);
        //设置右手IK旋转
        animator.SetIKRotation(AvatarIKGoal.RightHand, target_trans.rotation);
        
    }

实现效果如下

在这里插入图片描述

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老师好我差点叫何同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值