首页 > 其他分享 >Unity3D Animation——动画复用

Unity3D Animation——动画复用

时间:2024-12-05 18:55:18浏览次数:5  
标签:Unity3D 骨骼 动画 复用 Animation Avatar 动画文件 描述

本文是教程笔记,教程原链接:【【Unity动画系统详解 四】八分钟理解并掌握Avatar和人形动画复用【Unity开发入门教程12】】 https://www.bilibili.com/video/BV1GL4y1B7s1/?share_source=copy_web&vd_source=fc9b875b7d798c12d213e8f6d07a77f9

概念

unity动画需要三个部分:动画片段、动画状态机和动画组件

动画复用

unity动画片段使用YAML文件描述,当动画文件要处理多个物体时,会在文件中写上该物体的名称。 unity会按照文件名称找到正确的物体并按照描述去移动它。

人物的动画通常由许多物体(骨骼)的动画组成,当不同人物的骨骼名称和结构都一致时,就能够复用同一动画文件。但手动修改骨骼名称很费力,所以unity提供了Avatar替身系统。

Avatar

如何把模型a的动作复用在模型b上:

  1. 将模型A的人型骨骼和Unity标准肌肉对应。将对应关系和A的骨骼保存在A Avatar文件中。

  1. 对模型B做同样操作保存在B Avatar文件中

  2. 将动画文件从对模型A骨骼节点的描述,转化为描述Unity肌肉拉伸程度的描述

  1. 这样就可以读取动画文件,并通过B Avatar映射关系改变模型B骨骼节点的位移旋转等,实现在模型B播放动画

总结

动画文件是描述骨骼节点的移动,不同模型骨骼节点可能不同。要实现动画复用就需要中间桥梁Avatar,完成“对A骨骼的描述——>unity肌肉拉伸描述——>对B骨骼的描述”的转变。

对应Unity中的操作为:

  1. 选择角色a的rig选项,种类选humanoid,自身创建avatar,应用

  2. 角色b也这样操作

  3. 动作库文件的rig选项,种类选humanoid,从a创建avatar

(这样就把动画文件对a骨骼的描述,改变为了对avatar肌肉的描述)

  1. 在animator组件中为他们指定各自的avatar

  2. 建立一个animator controller,把动画拖进去

  3. 再把controller拖到两个角色的animator组件里

实践:

  1. 下载卡哇伊动画素材包,发现该动作的Rig部分已经设置好了一个Avatar,可以省去步骤1和3

  1. 按照步骤2打开模型B(要在Project窗口而非Hierarchy中打开)

修改如下,点击apply

  1. 建立Animator组件,配置controller和avatar

同时不要忘了将动画拖入controller中

大功告成!

标签:Unity3D,骨骼,动画,复用,Animation,Avatar,动画文件,描述
From: https://www.cnblogs.com/neromegumi/p/18589180

相关文章

  • Unity引擎UI滚动列表——滚动复用扩展应用
      大家好,我是阿赵。  之前介绍了滚动复用的基础用法。上一个例子里面,是一个竖向单列的滚动列表展示。这一次来扩展一下用法。如果不知道上一次例子的,可以先往前翻一下,上面有例子的详情、原理解释和代码。一、多列的滚动复用  有时候,需要展示的东西很多,需要同时显......
  • 面试官:为什么数据库连接池不采用 IO 多路复用?
    今天我们聊一个不常见的Java面试题:为什么数据库连接池不采用IO多路复用?这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcatconnectionpool等技术来与DB连接,哪怕整个程序已经变成以Netty为核心。这到底......
  • [AirTest] airtest-selenium做Web自动化测试(上手实操三)&& airtest 代码改写成用 Djang
            经过了实操二的 测试用例复用(循环) 的实现,现对其进行改造提升优化。        实操一让我们知道了如何做单个测试用例的 自动化测试,实操二让我们知道了如何做多个测试用例的 自动化测试,那么,如何把实操二写的脚本变成更方便的测试脚本,让多个测试用例......
  • [AirTest] airtest-selenium做Web自动化测试(上手实操二)&& 如何让其实现测试用例复用(循
        经过了实操一的 初步Web自动化测试 的实现,现对其进行改造提升优化。        实操一让我们知道了如何做单个测试用例的自动化测试,那么如何实现多个测试用例的自动化测试呢?实操一快速通道:  [AirTest]airtest-selenium做Web自动化测试(上手实操一)&&如......
  • 【Unity插件】FPS Animation Framework 专注于为第一人称射击(FPS)游戏提供高质量的动画
    FPSAnimationFramework是一款Unity插件,专注于为第一人称射击(FPS)游戏提供高质量的动画框架和工具。它帮助开发者快速实现流畅、专业的角色动画,适用于单人游戏、多人游戏以及VR项目。以下是详细介绍:功能特点1.高质量动画提供多种预制动画,涵盖FPS游戏中的核心动作:......
  • 你有用过HTML5的requestAnimationFrame吗?它运用的场景有哪些呢?
    是的,我了解HTML5的requestAnimationFrameAPI。它主要用于创建流畅的网页动画和视觉效果。与setTimeout或setInterval相比,requestAnimationFrame有几个关键优势,使其成为执行动画的首选方法:requestAnimationFrame的优势:浏览器优化:requestAnimationFrame由浏览器优......
  • MINIMAX稀宇科技 爬虫AI-API复用-海螺前端JS代码的动态调试
    海螺前端JS代码的动态调试环境准备chrome浏览器,burpsuit,实际操作主要操作在chrome浏览器中进行:第零步:通过burpsuit抓包,在重放中改变requestheader参数,定位关键参数第一步:进入需要自动化发包的页面,在js代码中寻找关键参数.第三步:对关键参数的js文件进行分......
  • 请说说在什么时候用transition?什么时候使用animation?
    在前端开发中,transition和animation都用于创建动画效果,但它们适用于不同的场景:transition过渡:用于状态变化:transition适用于元素从一个状态到另一个状态的平滑过渡,例如鼠标悬停、焦点变化、激活状态等。它关注的是状态之间的变化过程,而不是定义一个复杂的动画序列。......
  • 嵌入式开发之IO多路复用(一)
    目录1、IO模型和多路复用模型1.1、阻塞I/O模式1.1.1、读阻塞1.1.2、写阻塞1.2、非阻塞模式I/O1.3、信号驱动I/O1.4、多路复用I/O1.4.1、IO多路复用步骤:1.4.2、伪代码示例讲解1、IO模型和多路复用模型在UNIX、Linux下主要有4种I/O模型:阻塞I/O: 最常用非阻塞I......
  • 计算机概念——io 复用
    前言首先什么是io复用呢?现在web框架没有不用到io复用的,这点是肯定的,不然并发真的很差。那么io复用,复用的是什么呢?复用的真的不是io管道啥的,也不是io连接啥的,复用的是io线程。这其实是操作系统的设计上的io并发不足的地方,然后自己给慢慢填了。正文听一段历史:当时操作系统设......