Animator使用IK实现头部及身体跟随

本文详细介绍如何在Unity中使用Animator的IKPass通道实现角色头部跟随目标物体移动的效果。通过设置角色模型的AnimatorType为Humanoid,配置Animator组件及AvatarMask,结合OnAnimatorIK回调函数与SetLookAtWeight方法,实现精准的头部跟踪。同时,文章还介绍了如何控制脚或手的旋转及位置,以及配合AnimationEvent实现投掷功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在开发中往往会遇见需要视线或者说头部跟随一个物体移动的效果,这时就可以使用Animator中的IK Pass通道来完成。

假定我们有这么一个需求,人的头部(眼镜需要跟随这个球(Target)的移动来移动)

这时我们可以使用Animator中的IK Pass来实现需求。

  • 首先确定我们的角色的模型Rig的Animator Type为:Humanoid,因为我们会使用到Avatar Mask。

Paste_Image.png

  • 接着为我们的角色绑定好Animator组件,并设置Animator的当前层使用了IK Pass。

Paste_Image.png

  • 接着设置我们的遮罩(Mask)什么部分是可以变化的,这里只需要头动,使用Mask还涉及到多层的动画融合。(这里由于模型动画原因不设置都行)

Paste_Image.png

  • 接着进行代码控制。使用OnAnimatorIK回调函数进行实现。

Paste_Image.png

  • 其中SetLookAtWeight,看向的权重设置极其关键。它有许多重载,分别为LookAt的主权重,和后面细分的身体权重,头权重,眼权重还有脚权重。权重取值为0-1,越接近1,表现越大。

Paste_Image.png

  • 如果想控制脚或者手的旋转或者位置,同样可以通过使用SetIK来实现。

Paste_Image.png

  • 效果实现:

     

    Ani.gif

接着配合Animation Event实现投掷功能。

  • 需要求出添加力的方向这里使用向量的减法来实现,并将力单位化(这里加了Vector3.up是为了有抛物线效果,因为小球有重力),用系数来方便的控制力的大小。

     

    Paste_Image.png

  • 效果实现:



作者:Levi_Wan
链接:https://www.jianshu.com/p/ae6d65563efa
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值