Unity动画模块 之 2D IK(反向动力学)

本文仅作笔记学习和分享,不用做任何商业用途

本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​

1.什么是IK 

 反向动力学 IK(Inverse Kinematics)是一种方法,可以根据某些子关节的最终位置和角度来推算其他父节点的位置(反向动力学 - Unity 手册

说白了,默认情况下(正向动力学)骨骼的父物体对象可以控制子对象,而IK(反向动力学)可以帮你用子骨骼影响父对象

在2D中你可以为绑定好骨骼的对象添加一个IK Manger组件

Q:Ik的应用?

A:IK 用于计算关节链中各个关节的位置和角度,以便达到目标位置或方向,在游戏和动画中,IK 可以用于更自然地控制角色的运动,例如行走、抓取物体、弯曲手肘等

机器人学:IK 也在机器人学中广泛应用,用于控制机械臂、腿部和其他关节的运动。虚拟现实和增强现实:在 VR 和 AR 应用中,IK 可以帮助用户更自然地与虚拟环境进行交互

Q:IK的工作原理

A:IK 算法根据末端效应器(例如手或脚)的位置来计算关节的角度,这通常涉及到数学求解,例如使用雅可比矩阵或迭代法

2.使用举例

2D Inverse Kinematics (IK) | Package Manager UI website (unity3d.com)

点击 IK Solvers 列表右下角的“+”号,以添加 IK 解算器。每个 IK 解算器也会作为额外的游戏对象出现在层次结构中,这会出现三种模式

以CCD模式为例,首先我需要控制大嘴花的五个啾啾,所以在其骨骼下分别添加了五个空物体

光看手册还需要机翻一下,所以我直接粘贴过来在本页看得了

Effector:定义骨骼或转换IK求解器解决
Target:变换用于指示效应器所需的位置
Constrain Rotation:这将约束效应器的旋转到目标的旋转
Restore Default Pose:在应用2D IK之前,使骨骼恢复到原始位置,禁用与效应器当前位置和旋转相关的2D IK应用
Weight:使用滑块来调整IK求解器的解决方案对原始变换位置的影响程度。当最小值为0时,IK解被忽略, 在最大值为1时,IK被完全应用
Chain Length:这个值进一步受到IK管理器的主权重设置的影响
IK解决方案应用到的链中的骨/变换(从效应器开始)的数量
Iterations:算法运行的次数
Tolerance:目标被认为到达目标位置的阈值,以及IK求解器停止迭代的时间

 把末端的空物体拖入解算器,设置一下受影响长度,创建目标获得解算对象

这样末端受击,怪物整体也会受到影响

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值