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

news2024/12/23 23:07:55

文章目录

  • 🎈 简介
  • 🎈 基本组件
  • 🎈 应用
    • Aim Constraint
    • Two Bone IK Constraint


🎈 简介

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;
        }
    }
}

动画融合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/21168.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

认知无线电网络的服务质量——蜻蜓算法的应用(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

【深入浅出Spring6】第七期——使用JDBC模板与代理模式

一、JDBCTemplate JdbcTemplate 是Spring提供的一个JDBC模板类,是对JDBC的封装,简化JDBC代码Spring也继承了其他持久化的框架,比如 MyBatis 等本篇我们从简单的增删改查角度介绍如何使用Spring提供的这个模板类 $ 准备工作 创建一个新的模块…

livekit 简单上手教程

什么是livekit? livekit是一个开源的webrtc项目,基于pion实现了SFU架构的go程序。 它主要有以下几个特性: 可以水平扩展的sfu架构。有完整的sdk程序接口供开发人员使用。基于JWT进行身份验证,可与大部分系统进行权限集成。内置Tur…

SpringCloud学习笔记 - 分布式配置中心 - config

1. 简介 Spring Cloud Config是用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持的。 它由服务端和客户端构成: 其中,服务端也称为分布式配置中心,是一个独立的微服务应用,用来连接配置仓库、为客户端提供支持…

32.nacos配置文件中心,使用实例(springcloud)

1.为什么使用Nacos 配置文件中心1.如果在生产情况下,修改了配置文件,项目需要下架,重新打包,重新发布。这在单机模式下影响不会太大,但如果过在一个集群项目中就会照成很大的影响,需要停掉多个项目。因此&a…

字节研发之道

前言 字节的迅速崛起缔造了一个互联网的神话,堪称火箭般的蹿升。当阿里来到第十八个年头时,员工人数还不足6万。老牌互联网腾讯现在也不过11万左右人数。但字节发展到七个年头时,人数就突破了10万。曾经入职阿里是一票难求,但现在…

基于51单片机的音乐盒播放器proteus仿真

资料编号:092 下面是相关功能视频演示: 92-基于51单片机的音乐盒播放器proteus仿真(源码仿真全套资料)功能介绍:使用51单片机,采用蜂鸣器进行音乐播放,提供了音乐代码生成器软件,可…

JavaWeb运行环境安装教程以及各个安装包

文章目录安装包下载安装教程一、JDK安装1、下载2、安装3、配置环境4、验证环境配置二、IDEA安装下载链接三、MySQL安装1、下载2、安装四、Navicat安装五、Tomcat安装1、下载2、环境配置3、修改编码4、启动六、Maven安装1、下载2、环境配置3、新建本地仓库4、修改镜像5、添加IDE…

Design Compiler工具学习笔记(1)

本人做过FPGA设计的项目,后面想转 IC 设计方向。现在从 DC 工具的使用开始学起,DC 是新思科技的EDA软件,具体的安装见下面的文章: Synopsys EDA Tools 安装问题记录https://blog.csdn.net/qq_43045275/article/details/127630241…

5G无线技术基础自学系列 | CloudRAN架构

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 5G在核心网实现云化之后,更…

2.旋转的骰子(1)

1.动画——旋转的骰子 我们想用纯html 和CSS, 做一个旋转的筛子,骰子要有立体感,每个面上要有圆点,表示点数,并且骰子可以原地旋转。 2.分析需求——庖丁解牛

【DELM回归预测】基于matlab多元宇宙优化算法改进深度学习极限学习机数据回归预测【含Matlab源码 2230期】

⛄一、多元宇宙优化算法 MVO是Seyedali Mirjalili受到多元宇宙理论的启发提出来的元启发式优化算法。主要根据多元宇宙理论的3个主要概念-白洞、黑洞和虫洞,来建立数学模型。 MVO算法中的可行解对应宇宙,解的适应度对应该宇宙的膨胀率,在每…

【第三部分 | 移动端开发】2:流式布局

目录 | 移动端布局 | 流式布局(百分比布局) | 案例:京东搜索页相关知识点 | 移动端布局 | 流式布局(百分比布局) 介绍 核心思想:不使用固定布局,而是使用百分比 为了保护盒子的内容不因拉伸…

Spring AOP使用与原理

AOP介绍 SpringAOP核心概念 上述中已经出现的关键词有Advice(顶级的通知类/拦截器)、MethodInvocation(方法连接点)、MethodInterceptor(方法拦截器) SpringAOP在此基础上又增加了几个类,丰富了AOP定义及使用概念,包括 Advisor:包含通知(拦截…

基于密度的划分、DBSCAN(机器学习)

目录 居于密度的划分 DBSCAN算法 居于密度的划分 基于划分聚类和基于层次聚类的方法在聚类过程中根据距离来划分类簇,因此只能够用于挖掘球状簇。 为了解决这一缺陷,基于密度聚类算法利用密度思想,将样本中的高密度区域(即样本点分布稠密的…

图的概念(1)

图是什么? 首先,我们导入需要的包? import numpy as np import random import networkx as nx from IPython.display import Image import matplotlib.pyplot as plt 图的定义? 图表示物件与物件之间关系的数学对象,…

Metasploit入门用法

靶机介绍 Difficult: As always, it’s a very easy box for beginners. Goal: Get flag Download:https://www.vulnhub.com/entry/funbox-scriptkiddie,725/ 解题过程: 1.使用nmap进行端口扫描:Nmap -sV IP 2.使用search命令查…

yolov5加入分割头,多任务头

Yolov5同时进行目标检测和分割分割_MidasKing的博客-CSDN博客_yolov5分割 用YOLOv5ds训练自己的数据集,注意点!_用猪头过日子.的博客-CSDN博客 基于pytorch用yolov5算法实现目标检测与分割_无损检测小白白的博客-CSDN博客 原理 代码:

一种三自由度机器人的设计(CAD+Solidworks+文档)

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1课题研究背景及其意义 1 1.2三自由度机器人的发展与现状 1 1.3三自由度机器人的原理和介绍 3 1.4三自由度机器人目前存在问题 4 1.5三自由度机器人的力控制问题 4 1.6三自由度机器人的发展趋势 5 第2章 总体技术方案及系统组成 7 2.…

[附源码]SSM计算机毕业设计电子病历信息管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…