Animation Rigging 如何让你的Avatar人物更具灵活性


🎈 简介

Animation RiggingUnity官方发布的可以对Avatar人物骨骼进行约束的工具,已经有稳定的经过验证的Vertified包体,可以将其理解为一个IK工具,使用它可以让我们的人物动作表现更具灵活性。

Package Manager

🎈 基本组件

  • Rig Builder
    依赖Animator组件,所以将其与AvatarAnimator组件挂载于同一个物体上,支持同时控制多个Rigs,帮助我们实现动画融合

Rig Builder

  • Bone Renderer
    骨骼可视化组件,方便我们进行编辑、绑定,只需要将所有的骨骼节点添加到Transform集合中。

Bone Renderer
添加完成后,在Scene窗口看到Avatar的骨骼可以被渲染出来:

骨骼可视化

  • Rig
    约束控制组件,与骨骼根节点位于同一层级,将其添加到Rig Builder组件的Rig Layers列表:

Rig
Rig Layers

🎈 应用

本文以两处用例来表现Animation Rigging的作用,使用的环境如下:

  • Unity 2022.3.33
  • Animation Rigging 1.0.3

Aim Constraint

例如你想使你场景中的NPC一直“关注”你,可以使用Aim Constraint瞄准约束:

Aim Constraint

  • Constrained Object:被约束的物体,这里的Head是NPC的头部骨骼节点。
  • Source Objects:目标物体,这里的Head是Player的头部骨骼节点,表示NPC的头部一直看向Player的头部。
  • Constrained Axes:被约束的轴,这里只使用Y轴,表示只控制NPC头部的Y轴旋转。
  • Min/Max Limit:最小最大值限制,用于限制NPC的头部旋转角度在指定范围内。

Aim Constraint

Two Bone IK Constraint

例如你想使美术提供的动作与你场景的物体更加“契合”,可以使用Two Bone IK Constraint约束,这里以一个Sit Down坐下的动作为例,如下图所示,我们可以发现Avatar坐下后胳膊与我们场景中的椅子并不是很"契合":

Sit Down
接下来我们为其添加Two Bone IK Constraint来改善Sit Down动作的表现:

Two Bone IK Constraint
RootMidTip是我们想要进行约束的骨骼节点,Source Objects中的Target是新建的一个空节点,用于控制Avatar的胳膊到指定的位置,我们将其拖到椅子的把手位置:

Target
左胳膊进行约束后的效果:

约束效果
我们可以通过插值方式来控制Weight权重数值,让约束效果逐渐起作用,使其融合进我们的Sit Down动作过程中。

Animation Rigging中有多种约束类型,合理使用可以让我们的Avatar人物更加活灵活现。

using UnityEngine;
using UnityEngine.Animations.Rigging;

public class Example : MonoBehaviour
{
    [SerializeField] private Animator animator;
    [SerializeField] private TwoBoneIKConstraint constraint;

    private void Update()
    {
        var casi = animator.GetCurrentAnimatorStateInfo(0);
        if (casi.IsName("sitdown"))
        {
            constraint.weight = casi.normalizedTime;
        }
    }
}

动画融合

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CoderZ1010

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

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

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

打赏作者

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

抵扣说明:

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

余额充值