当前位置: 代码网 > it编程>数据库>Mysql > Unity学习笔记之【IK反向动力学操作】

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

2024年08月02日 Mysql 我要评论
反向动力学,简称IK。相较于正向动力学,反向动力学旨在子级对父级产生的影响。使用IK,可以实现根据目标位置或方向来计算并调整角色的关节(骨骼)链,以使角色的末端(如手臂、腿部等)达到预期的位置或取向。通过使用 Unity 的 IK 功能,你可以实现各种复杂的角色动画效果,如角色抓取、足部对齐、手臂跟随等。2. 将所视的目标物体拖拽绑定4. 实现效果如下 :移动角色时注释立方体实现效果如下

反向动力学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);
        
    }

实现效果如下

在这里插入图片描述

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com