Unity 动画

发布于:2025-04-15 ⋅ 阅读:(26) ⋅ 点赞:(0)

Apply Root Motion 勾选的话就会使用动画片段自带的位移

Update Mode (动画重新计算骨骼位置转向缩放的数值):

  • Normal : 随Update走,每次Update都计算
  • Animate Physics :与 fixed Update() 同步(与物理系统交互)
  • UnScaled Time: 不受游戏 time scale影响,与 Update 同步

Culling Mode(剔除)

设置这里的Multiplier可以改变动画的播放速度(绝对值大于1是加速,值小于0是倒放)

Write Defaults(默认开启):勾上了writeDefaults的State中不被该motion修改的值都会变为默认值。最关键的一点,这个默认值是什么这里没有给出答案。(抽象)

讲解视频:【Unity动画系统详解 九】Unity在动画系统里贴心的为我们准备了Write Defaults,但这东西却分分钟变成定时炸弹【Unity开发入门教程17】_哔哩哔哩_bilibili

 文章:[Unity] AnimatorStates中的write defaults详解:https://blog.csdn.net/rickshaozhiheng/article/details/77838379

avatar替身系统 与 动画复用

免费动画下载网站:Mixamo

这个网站下载的动画文件的话,一般是Generic 格式的,动画文件内容描述的骨骼的描述方式是骨骼的位置及旋转。但是不可能所有模型骨骼都是一致的,那么怎么复用动画文件呢?

 在这里设置 Animaition Type,设置为 Hunanoid ,生成一套 avator

Unity 使用Avatar系统来识别布局中的特定动画模型是否为人形,以及模型的哪些部分对应于腿、手臂、头和躯干。

由于不同人形角色之间骨骼结构的相似性,可将动画从一个人形角色映射到另一个角色,允许__重定位__和__反向运动学 (IK)__。

将动画对骨骼的描述转换为对avator 的描述,就可以实现动画复用(但是精度不高,经常出现动画变形的问题 -- 简单的可以自己调整avator解决)

AvatarMask-部分动画的应用

很多时候,我们希望只改变角色的部分动画。

你只需要选择在这一个动画层中,哪些骨骼需要动就可以。

 Root Motion 

给方块制作一个位移动画,设置第一帧的位置,设置第二帧的位置。开启动画之后方块会在两个位置之间来回。当开启Root Motin 之后方块会连续的向上移动,不会回到动画记录的第一帧的位置

开启了Root Motion 之后动画会通过动画文件中记录的绝对坐标和方向以及物体的缩放比例(两个同样的物体同样的动画,缩放比例不一样,位移也不一样)计算出相对位移和旋转

物体添加脚本,脚本里面写 OnAnimatorMove() 函数的话就会将移动控制权从动画转移到脚本

Generic 动画的 RootMotion

如果动画中没有对位移的直接描述,那么我们怎么利用RootMotion 来进行角色的移动

---- >  选中一个骨骼,把 Generic 动画对这根骨骼的位移旋转描述当成对整个游戏对象的位移和旋转的描述

IK

参考:【Unity】Avatar与AvatarMask系统介绍(TPS.番外篇)_unity avatar-CSDN博客

人形Avatar - Unity 手册


网站公告

今日签到

点亮在社区的每一天
去签到