Unity 动画

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 手册

相关推荐
凡情11 小时前
android隐私合规检测
android·unity
小贺儿开发11 小时前
Unity3D 本地 Stable Diffusion 文生图效果演示
人工智能·unity·stable diffusion·文生图·ai绘画·本地化
mxwin1 天前
Unity Shader 半透明物体为什么不能写入深度缓冲?
unity·游戏引擎·shader
晚枫歌F1 天前
三层时间轮的实现
网络·unity·游戏引擎
咸鱼永不翻身1 天前
Lua脚本事件检查工具
unity·lua·工具
leo__5201 天前
单载波中继系统资源分配算法MATLAB仿真程序
算法·matlab·unity
努力长头发的程序猿1 天前
Unity使用ScriptableObject序列化资源
unity·游戏引擎
mxwin1 天前
Unity Shader 手写基于 PBR 的 URP Lit Shader 核心光照计算
unity·游戏引擎·shader
小贺儿开发1 天前
Unity3D 智能云端数字标牌系统
unity·阿里云·人机交互·视频·oss·广告·互动
魔士于安1 天前
Unity windows 同步 异步 打开文件文件夹工具
游戏·unity·游戏引擎·贴图·模型