Unity学习--2D动画--[骨骼动画]反向动力学IK

·来源于唐老狮的视频教学,仅作记录和感悟记录,方便日后复习或者查找


一、什么是IK

简单来说IK是反向动力学

正向动力学是父骨骼带动子骨骼移动

反向动力学是子骨骼带动父骨骼移动


二、IK包引入

去Package Manager里,在Advance中点击【Show Preview packages】

然后搜索2D IK即可

注意:2021版本以上该包集成进入了2D Animation中,所以如果已经安装了2D Animation包,那就不用再次导入了


三、IK的使用

1.制作好骨骼与蒙皮

这里用上一篇笔记中编辑好的人物,这里给权杖多加上很多骨骼

2.拖入场景中,并放在根物体下

3.在想要采用IK动力学的骨骼下创建空物体

并拖动到这个骨骼的末端位置

4.给根物体添加IK Manager脚本

相关参数

Chain(CCD)

点击【+】创建

然后会出现这么一个物体在根物体下

拖入之前创建的IK点,并选择这个IK点影响的父骨骼数量,然后点击创建目标,就会发现它自动创建了一个Target作为它的子物体并拖入了Target框中

这个时候就可以拖动这个Target物体,来控制它的移动啦!

可以看出类似辫子藤曼的效果,不过可以看到如果移动到太上面了,会直接反向

Chain(Fabrik)

它的设置过程和Chain(CCD)完全一样的

不同之处在于,它移动到上方不会直接镜像转过去,而是很丝滑地绕过去

limb

它的设置也和Chain(CCD)几乎一样,只是它不用去设置影响的父骨骼的数量

可以看到它自动帮我们决定了有哪些骨骼(不过这里不知道为什么少关联到了一个骨骼)

现在就可以看到这些骨骼相互影响移动地更自然也更方便了

可以通过其他的可以设置父骨骼数量的解算器(比如Chain(Fabrik))来添加上解决这个问题

还可以调整设置这些解算器影响到的骨骼的颜色

当觉得有些地方反向了的时候,可以按这个把它翻转过来


四、IK的意义

很显然,有了IK的帮助,我们的动画制作更加方便了

只要用短短几个关键帧的位置改变就做出了很丰富的动画效果,因为移动的时候会自动帮我们计算父骨骼应该移动的位置,这带来了很多的方便


五、结合代码

using UnityEngine;

public class MouseMoveHand : MonoBehaviour
{
    public Transform ik_target; //放入IK的目标物体
    private Vector3 mousePos; //鼠标位置
    private float z; //ik_target的位置的z坐标
    void Start()
    {
        print("MouseMoveHand Start");
        Cursor.visible = true;
        z = ik_target.position.z; //获取ik_target的位置的z坐标
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButton(0)) {
            mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            mousePos.z = z;
            ik_target.position = mousePos;  //将鼠标位置作为IK的目标位置
        }
    }
}

效果如下:


六、总结

①IK动力学就是通过子骨骼的位移去计算父骨骼的移动,可以制作藤曼,鞭子,人物四肢灵活移动的效果

②可以搭配代码移动实现一些特别的效果,比如添加一些限制旋转的角度之类的。鼠标控制物体移动的时候,最好让他在视口的横截面上移动,那就要先保存要移动的物体的Z坐标,并之后把它修改给鼠标位置的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

萘柰奈

谢谢老板喵

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

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

打赏作者

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

抵扣说明:

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

余额充值