Unity 3D 动画系统(Mecanim)

2023-10-27

Unity 3D 动画系统(Mecanim)

Mecanim 动画系统是 Unity 公司推出的全新动画系统,具有重定向、可融合等诸多新特性,可以帮助程序设计人员通过和美工人员的配合快速设计出角色动画,其主界面如下图所示。

Unity 公司计划采用 Mecanim 动画系统逐步替换直至完全取代旧版动画系统。

Mecanim 动画系统提供了 5 个主要功能:

  • 通过不同的逻辑连接方式控制不同的身体部位运动的能力。

  • 将动画之间的复杂交互作用可视化地表现出来,是一个可视化的编程工具。

  • 针对人形角色的简单工作流以及动画的创建能力进行制作。

  • 具有能把动画从一个角色模型直接应用到另一个角色模型上的 Retargeting(动画重定向)功能

  • 具有针对 Animation Clips 动画片段的简单工作流,针对动画片段以及它们之间的过渡和交互过程的预览能力,从而使设计师在编写游戏逻辑代码前就可以预览动画效果,可以使设计师能更快、更独立地完成工作。

 Unity 3D 人形角色动画(Avatar)

Mecanim 动画系统适合人形角色动画的制作,人形骨架是在游戏中普遍采用的一种骨架结构。。

由于人形骨架在骨骼结构上的相似性,用户可以将动画效果从一个人形骨架映射到另一个人形骨架,从而实现动画重定向功能。

除了极少数情况之外,人物模型均具有相同的基本结构,即头部、躯干、四肢等。

Mecanim 动画系统正是利用这一点来简化骨架绑定和动画控制过程。

创建模型动画的一个基本步骤就是建立一个从 Mecanim 动画系统的简化人形骨架到用户实际提供的骨架的映射,这种映射关系称为 Avatar

创建Avatar

在导入一个角色动画模型之后,可以在 Import Settings 面板中的 Rig 选项下指定角色动画模型的动画类型,包括 LegacyGeneric 以及 Humanoid 3 种模式。

  1. Legacy 与 Generic

Unity 3D 的 Mecanim 动画系统为非人形动画提供了两个选项:Legacy(旧版动画类型)和 Generic(一般动画类型)

旧版动画使用 Unity 4.0 版本文前推出的动画系统。一般动画仍可由 Mecanim 系统导入,但无法使用人形动画的专有功能。

非人形动画的使用方法是:

  • 在 Assets 文件夹中选中模型文件。

  • 在 Inspector 视图中的 Import Settings 属性面板中选择 Rig 标签页

  • 单击 Animation Type 选项右侧的列表框,选择 Generic 或 Legacy 动画类型即可。

  1. Humanoid

要使用 Humanoid(人形动画),单击 Animation Type 右侧的下拉列表,选择 Humanoid,然后单击 Apply 按钮Mecanim 动画系统会自动将用户所提供的骨架结构与系统内部自带的简易骨架进行匹配。

如果匹配成功,Avatar Definition 下的 Configure 复选框会被选中,同时在 Assets 文件夹中,一个 Avatar 子资源会被添加到模型资源中。

配置Avatar

Unity 3D 中的 Avatar 是 Mecanim 动画系统中极为重要的模块,正确地设置 Avatar 非常重要。

不管 Avatar 的自动创建过程是否成功,用户都需要到 Configure Avatar 界面中确认 Avatar 的有效性,即确认用户提供的骨骼结构与 Mecanim 预定义的骨骼结构已经正确地匹配起来,并已经处于 T 形姿态

单击 Configure 按钮后,编辑器会要求保存当前场景,因为在 Configure 模式下,可以看到 Scene 视图(而不是 Game 视图)中显示出当前选中模型的骨骼、肌肉、动画信息以及相关参数。

在这个视图中,实线圆圈表示的是 Avatar 必须匹配的,而虚线圆圈表示的是可选匹配的。

人形动画重定向

在 Mecanim 动画系统中,人形动画的重定向功能是非常强大的,因为这意味着用户只要通过很简单的操作就可以将一组动画应用到各种各样的人形角色上。

由于动画重定向功能只能应用到人形模型上,所以为了保证应用后的动画效果,必须正确地配置Avatar

以上内容是否对您有帮助,请在评论区留言或私信

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity 3D 动画系统(Mecanim) 的相关文章

  • 将球体上的 3d 点转换为 UV 坐标

    我在球体上有一个 3d 点 想要将其转换为球体纹理上的 UV 点 有人可以指出正确的方向吗 我可以采用纯数学解决方案 Edit 我目前有这个 它不会返回正确的 UV 坐标 p 是球体上的 3d 点 mesh position 是球体的位置
  • Python 中的标量场可视化

    我需要在 Python 中可视化几个重叠的标量场 我发现mayavi图书馆做这种情节 问题是我不明白如何为标量字段自定义颜色图 我的想法是为每个字段设置一种颜色的阴影 我尝试采用一个例子 http docs enthought com ma
  • 如何在Android中渲染OBJ或FBX? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有几个 obj 和 fbx 格式的 3D 对象 其中包含 mtl 和纹理文件 我想知道哪个是在 An
  • 如何在plotly 3D曲面图中标记区域?

    我使用plotly从xyz数据创建3D高程剖面图 它与以下代码配合得很好 import plotly graph objects as go import pandas as pd import numpy as np Read data
  • 如何在SceneKit中实现逼真的景深效果?

    我正在尝试渲染具有真实景深效果的帧 我已经尝试过景深属性camera节点 但它不会产生可用的结果 是否可以切换到景深效果的最大渲染质量 性能不是一个因素 我只需要渲染一帧 用户可以等待它 SceneKit 中逼真的景深效果 在SceneKi
  • 如何将 3D 图像输出到 3D 电视?

    我有一台 3D 电视 如果我不至少尝试让它显示我自己创作的漂亮 3D 图像 我就会逃避我的责任 作为一个极客 我之前已经完成了非常基本的 OpenGL 编程 因此我了解所涉及的概念 假设我可以为自己渲染一个简单的四面体或立方体并使其旋转一点
  • OpenGL z轴指向哪里?

    我正在尝试了解 OpenGL 坐标系 我到处都看到它被描述为右撇子 但这与我的经验不符 我尝试绘制一些形状和 3 d 对象 我发现 z 轴显然指向 屏幕 而 x 指向右侧 y 指向上方 这是左手坐标系的描述 我缺少什么 编辑 例如 http
  • 投影 3D 网格的 2D 轮廓算法

    给定 一个 3D 网格 由一组顶点和三角形定义 并用这些点构建网格 问题 找到任意平面上投影的任意旋转网格的二维轮廓 投影很容易 挑战在于找到平面中投影三角形边的 外壳 我需要一些有关研究该算法的输入 指针的帮助 为简单起见 我们可以假设
  • 简单的线框格式?

    我正在寻找一种用于线框模型的简单文件格式 我知道 VRML u3D 等 但这些对于我的需求来说似乎很重要 我的标准是 必须有明确的规格 要么是开放的 要么是非常完善 记录的 我只需要 想要 简单的模型 顶点和边 我不想处理面孔或物体 如果格
  • 在球体边缘绘制点

    因此 来自 Flash 背景的我对一些简单的 2D 三角函数有很好的理解 在带有 I 圆的二维中 我知道使用给定角度和半径将项目放置在边缘上的数学 x cos a r y sin a r 现在 如果我在 3d 空间中有一个点 我知道球体的半
  • 更改 3D 图形颜色 (matplotlib)

    我使用以下代码在 matplotlib 中绘制了 3D 图形 Previously defines lists of data to plot fig plt figure ax fig add subplot 111 projection
  • 改变for循环的顺序?

    我遇到一种情况 我需要根据用户输入以不同的顺序循环遍历 xyz 坐标 所以我是 3D 空间中的一个区域 然后是一组像这样的 for 循环 for int x 0 x lt build getWidth x for int y 0 y lt
  • 如何仅剪切剪切平面的交集(而不是并集)?

    在 OpenGL JOGL 中 当使用多个剪切平面时 似乎会应用所有剪切平面的并集 我想要的是路口要应用的所有剪裁平面 这可能吗 请参阅下面的简化二维示例 Edit An example of clipping by vertex shad
  • 如何在 React Native 中渲染自定义 3D 对象

    我已经成功使用 Three js expo Three 和 expo gl 在 React Native 中配置了红色立方体的 3D 渲染 但我想让用户渲染他们自己可能拥有的自定义 3D 对象 obj 或 mtl 扩展名 但我不确定如何让他
  • 简单模式7公式/例子?

    我最近发现了利用 SNES 模式 7 的伪 3D 效果 并想尝试在 Godot 引擎中复制它 我尝试在网上查找 但所有内容要么以我无法理解的方式解释 要么以我不知道的编程语言解释 我还需要学习如何旋转该区域 并将精灵作为角色或敌人放入 但我
  • 如何在不使用 Kinect SDK 函数的情况下将深度空间中的点转换为 Kinect 中的颜色空间?

    我正在做一个增强现实应用程序 将 3D 对象叠加在用户的彩色视频之上 使用 Kinect 1 7 版本 虚拟对象的渲染在 OpenGL 中完成 我已经成功地在深度视频上叠加了 3D 对象 只需使用 NuiSensor h 标头中深度相机的固
  • 3D 空间中两个盒子之间的交集

    我想为我的图形引擎实现一个碰撞检测系统 我不知道这是否是常见的方法 但我的想法是将任何实体对象 如网格或相机 绑定在 3D 盒子内 这会给我比球体更准确的结果 这个盒子由八个顶点定义 x0 min vertices x off parsin
  • 在 3D 场景中实现“抓取”相机平移工具

    在我的场景中 我有想要 抓取 的地形 然后在移动光标时让相机平移 其高度 视图向量 视野等全部保持不变 因此 最初的 抓取 点将是世界空间中的工作点 我希望在拖动时该点保留在光标下方 我当前的解决方案是获取前一个和当前的屏幕点 取消投影它们
  • 具有轴和角度的 3D 旋转

    我知道 3D 旋转在 SO 和许多其他网站上都有详细记录 但尽管阅读了无数的解释 我仍然没有弄清楚我哪里出错了 我的背景是艺术和设计 而不是数学和编程 而且我从来都不确定我的攻击角度 没有双关语 是否正确 我没有粘贴我那令人沮丧的代码的拼凑
  • java3d 中的面部着色

    使用java3d 如何不在每个顶点基础上着色 而是在每个面基础上着色 我尝试学习 java3d 但我生成的 Shape3d 看起来并不符合预期 我想用不同的颜色给不同的三角形着色 但我不知道该怎么做 纹理看起来有点大材小用 而且我根本没有掌

随机推荐

  • API是什么?深入探索编程中的应用接口

    在编程领域 API Application Programming Interface 应用程序编程接口 是指一组定义和规范了软件组件之间交互的方法和协议 它提供了一种编程接口 允许不同的软件系统之间进行通信和交互 API可以被看作是软件组
  • 函数模板与类模板的具体化

    这两天在学习 C primer 这本书时 发现有关函数与类模板的相关内容多且繁琐 而且容易混淆 因此决定写一篇博客 将它们的概念与之间的区别梳理一下 一 函数模板 在 C primer 一书中 函数模板的具体化包括了三个部分 显式具体化 隐
  • CVPR 2021|一个绝妙的想法:在类别不平衡的数据上施展半监督学习

    点击上方 视学算法 选择加 星标 或 置顶 重磅干货 第一时间送达 作者丨kid丶 知乎 已授权 来源丨https zhuanlan zhihu com p 360067653 编辑丨极市平台 CReST A Class Rebalanci
  • elasticsearch 设置seed hosts

    es集群中配置的seed hosts 通过seed hosts provider提供 provider的数据来源有集群配置文件和第三方插件提供 集群配置文件又有两种方式 一种是直接在elasticsearch yml配置文件中通过disco
  • Cocos Creator Android 平台 Facebook 原生登录

    在做海外项目中 经常需要接入Facebook SDK 现将CocosCreator Android 平台 Facebook 登录的接入流程记录下来 以备有需要的朋友做参考 一 准备工作 1 首先在facebook 开发者平台 注册账号 创建
  • MAC系统 WORD 如何调整自动序号的间隔距离

    在MAC big Sur系统中 安装OFFICE 后 遇到WORD排版时 自动序号的间隔距离太远 研究一段时间发现可以用以下方式解决 1 问题界面 二 解决步骤 选中文字后 点击右键 选择 段落 点击 制表符 点击 全部清除 点击 确定 最
  • 最长公共上升子序列(LCIS)

    目录 一 前言 二 最长公共上升子序列 1 问题描述 2 基本思路 1 状态表示 2 状态计算 三 题例 1 上链接 2 基本思路 3 代码 1 python未优化版 2 python优化版 一 前言 对于学计算机的同学来说 学习算法是一件
  • 【DockerCE】使用docker配置和运行HertzBeat

    HertzBeat是一款免Agent的监控平台 拥有强大自定义监控能力 可以对应用服务 中间件 数据库 操作系统 云原生等进行监控 配置监控告警阈值 以及告警通知 邮件 微信 钉钉 飞书 关于这个软件的介绍 我这里就不做过多的介绍了 感兴趣
  • (二)代码好坏判定

    好坏只是笼统的判定 好代码 易扩展 易读 简单 易维护 判断代码的角度 灵活性 flexibility 可扩展性 extensibility 可维护性 maintainability 可读性 readability 可理解性 underst
  • Linux多进程编程

    fork系统调用 include
  • scrapy爬虫的搭建过程(实战篇)

    scrapy爬虫的搭建过程 实战篇 1 爬虫功能 以 http bbs fengniao com forum forum 125 1 lastpost html 为起始页 爬取前十页的信息 包括文章的标题 链接地址和图片地址 保存到mong
  • 超详细!基于Proteus的简易测频计实现(数字电路课程设计)

    本文阐述基于Proteus 7 8的简易测频计电路的实现 附具体电路的工程文件下载 工程文件下载链接 设计要求 闸门时间1S 10S可选 读数保持时间10秒 可选 四位数字显示 范围000 1 9999 Hz 能够自动进行下一次测量 设计方
  • 关于null的typeof和instanceof

    问题 alert typeof null object alert null instanceof Object false 答案 这是由Javascript规范规定的 Null和Object都是javascript中的数据类型 Null数
  • DC靶机系列:DC-3

    一 信息收集 查询本机ip及目标靶机ip 本机ip 192 168 56 104 利用nmap查询同网段存活的ip 或者使用arp scan l 靶机ip为 192 168 56 112 下一步收集靶机开放的端口信息 收集靶机开放端口 输入
  • Springboot解决跨域问题的配置

    由于自己是主后端开发 前端自己很少去配置 所以自己留一个配置SpringBoot配置跨域问题的代码在这里 注意一点 如果是在生产环境 应该根据实际需求设置allowedOrigins来限制允许访问的域名 而不是使用通配符 import or
  • nvidia 显卡硬件文档手册

    https github com NVIDIA open gpu doc
  • vue项目控制按钮是否显示

    import Vue from vue permission 用于控制是否显示按键 控制权限的指令 Vue directive has bind function el binding if Vue
  • 批量将markdown内本地图片转换为网络图片

    批量将markdown内本地图片转换为网络图片 在线地址 http 106 52 170 128 8003 需求 大部分支持markdown格式的网站 都不支持将markdown和其内置的图片同时上传到服务器 因此增大了小朋友们写文档的负担
  • 软件开发中几个常用功能的实现

    软件开发中几个常用功能的实现 出处 vchelp net责任编辑 leelee 04 8 12 10 01 作者 戚高 在进行软件开发过程中间 有很多小功能的实现 虽然这些东西你可以不用 但是如果应用仂将会是你的程序更具有专业性 一 设置程
  • Unity 3D 动画系统(Mecanim)

    Unity 3D 动画系统 Mecanim Mecanim 动画系统是 Unity 公司推出的全新动画系统 具有重定向 可融合等诸多新特性 可以帮助程序设计人员通过和美工人员的配合快速设计出角色动画 其主界面如下图所示 Unity 公司计划