【Unity动画系统】动画基本原理与Avater骨骼复用

server/2024/10/18 12:33:19/

动画基本原理


动画片段文件是一个描述物体变化状态的文本文件

在Unity中创建的资源文件大多都是YAML语言编写的文本文件

Curves表示一种变化状态,为空的话则没有记录任何内容

位置变化后的旋转变化状态:

 

动画文件里的Path名字要相同才能播放相同的动画

当骨骼名称相同时就可以复用另外模型的骨骼

  • 动画内命名不同,则会标记不同颜色,并且不会播放动画
  • 也可能时因为制作的人物模型及骨骼结构也不尽相同

替身系统Avatar


将A的骨骼与Unity定制一个标准肌肉对应关系,AAvatar中保存了肌肉信息和A的骨骼信息。

制作一个B的骨骼与肌肉的Avatar。

 

将A的骨骼节点的描述转化为Unity肌肉的拉伸程度文本。

要在B上复用,就得通过B的Avatar文件把动画文件中对肌肉拉伸的描述翻译成对B模型骨骼变化的描述,这样动画文件就可以在B上进行了。

实战:


None:表示不需要播放任何动画

Generic:表示通用动画,不是人形,例如飞鸟猛兽就可以用这个动画

Humanoid:表示人形动画

Create From This model:从这个模型本省创建avatar,根据模型a的骨骼建立一个与Unity肌肉对应的关系

Copy From Other Avatar:选择另一个已经配置好的Avatar

Skin Weights:表示每一个模型的蒙皮或者说mesh上的节点可以被几个骨骼影响

Optimize Game Objects:优化游戏对象,当使用了Avatar之后,播放动画就与模型文件上的骨骼无关了,动画就会从Avatar骨骼上读取信息,选中的话,模型上的骨骼就会被删除掉

点击Apply之后就会生成一个Avatar,点击Configure Avatar就可以配置骨骼

Mapping:骨骼映射

Muscles & Settings:肌肉设置

虚线表示并非必选包含的骨骼 , 实线表示这块必选包含的骨骼

Unity中Avatar系统对骨骼和肌肉做对应关系时, 至少需要人体模型上有十五块符合排列规则的骨骼

骨骼配置关系


Clear:清除掉上面所有的匹配信息

Automap:可以自动的进行匹配

Save:会把这里匹配方式保存在一种叫human template的模板当中

Load:就是读取我们在其他地方保存模板

Reset:会将模型摆回初始状态

Sample Bind-Pose:会将模型摆回绑定时的初始状态

Enforce T-Pose:会将模型强制摆成T pose

Muscles & Settings

这里可以看到模型在肌肉拉升到极限是一种什么样的状态

如果对拉伸的程度不满意的话,可以对每一个肌肉做出限制

此时也把B按如上配置一遍

将要复用的动画 

选取下面的

然后将A的Avatar放入下面的Source

点击Apply,就从对A模型骨骼的描述,改变为了对Unity肌肉的描述

将下来就可以使用各自的Avatar进行动画演示了


http://www.ppmy.cn/server/18420.html

相关文章

Unreal Engine创建Plugin

打开UE工程,点击编辑,选择插件 点击“新插件”按钮,选择“空白选项”填入插件名字"MultiPlayerPlugin",填入插件作者、描述,点击“创建插件”按钮打开C工程,即可看到插件目录,编译C工…

Unreal Engine动态添加Button实例

在控件蓝图中添加容器&#xff0c;注意命名不要有中文 C代码中找到容器实例 1 2 3 4 5 6 7 8 UVerticalBox* verticalBox Cast<UVerticalBox>(CurrentWidget->GetWidgetFromName(TEXT("VerticalBox_0"))); if (verticalBox ! nullptr) { UScrollBox* …

npm安装时一直idealTree:npm: sill idealTree buildDeps卡住不动

npm安装时一直idealTree:npm: sill idealTree buildDeps卡住不动 解决步骤&#xff1a; 1.去以下的目录中删掉.npmrc文件&#xff08;只在C:\User.npmrc&#xff09; 2.清除缓存&#xff0c;使用npm cache verify 不要用npm cache clean --force&#xff0c;容易出现npm WAR…

2024信息系统、信号处理与通信技术国际会议(ICISPCT2024)

2024信息系统、信号处理与通信技术国际会议&#xff08;ICISPCT2024) 会议简介 2024国际信息系统、信号处理与通信技术大会&#xff08;ICISPCT2024&#xff09;将在青岛隆重开幕。本次会议旨在汇聚全球信息系统、信号处理和通信技术领域的专家学者&#xff0c;共同探索行业…

MySQL/MariaDB 如何查看当前的用户

MySQL 的所有数据库用户信息是存储在 user 数据表中的。 可以在登录成功数据后运行 SQL&#xff1a; MariaDB [(none)]> select user,host from user;就可以查看到数据中的所有用户信息。 MariaDB [(none)]> select user,host from user; ERROR 1046 (3D000): No databa…

pytest-xdist:远程多主机 - 分布式运行自动化测试

简介&#xff1a;pytest-xdist插件使用新的测试执行模式扩展了pytest&#xff0c;最常用的是在多个CPU之间分发测试以加快测试执行&#xff0c;即 pytest -n auto同时也是一个非常优秀的分布式测试插件&#xff0c;分别支持ssh和socket两种方式实现master和worker的远程通讯。…

HTML中datalist的用法

在HTML中&#xff0c;<datalist>元素用于为<input>元素提供预定义的选项列表&#xff0c;供用户从中选择。通常&#xff0c;它配合<input>元素的list属性一起使用。以下是如何使用<datalist>元素的简单示例&#xff1a; <!DOCTYPE html> <h…

CSS3:border-image

<!DOCTYPE html> <html><head><meta charset"utf-8"> </head><body><p>原始图片</p><img src"./images/border1.png" alt""><p>一、</p><p>border: 27px solid transp…