Unity学习笔记之动画系统

2023-11-01

目录

Animation 动画系统

动画文件的设置

Animator 动画系统 

BlendTree 混合树

其他动画相关概念


Animation 动画系统

Animation是老版的动画系统,新版的动画系统是Animator

组件参数:

  •         Animation:这个是当前默认播放动画片段;
  •         Animations:是Animation数组,可以放多个animation动画片段;
  •         Play Auto:是否自动播放;

编辑Animation动画:

 通过Animation组件播放动画:

 帧事件触发:

动画文件的设置

动画文件或模型文件是以fbx格式存在project目录里的。

模型的设置:

 Model选项:

  • Scale Factor:模型比例缩放,一般都是0.01,如果所在工程不一样则以工程设置为主;
  • 其他参数一般不动。

 Rig选项:

        AnimationType:

  • Legacy:老版动画系统;如果使用Animation组件进行播放,需要将动作切换到Legacy;
    • Generic:通用设置;游戏中一般非人类的模型动作可以选这个;
  • Humanoid:新版动画系统人类;当选择此选项之后,会要求定义Avatar文件,动作文件可以使用其他模型的Avatar文件;

Animation选项:

有时候给我们的多个动画是放在一个长动画里的,需要根据帧数将各个动画分出来。

也有可能拿到的是如下图中分好的动画文件:

在剪切动画时,需要检查右侧的灯的颜色;绿色灯代表匹配的很好,黄色灯匹配的一般,红色灯代表没有匹配上(匹配是指动画第一帧和动画最后一帧是否匹配):

 

Animator 动画系统 

1、Animator Controller文件:

AnyState:任意状态;常用作播放死亡状态,不管当前角色在播放什么状态,都可以被杀死然后播放死亡动作;

Entry/Exit:进入状态机和退出状态机,进入状态机默认连接默认状态动画;

Idle:橙色(名字可以改),一般是默认动画,一般播放待机动画;

Run:一般状态(名字可以改)

2、状态机的层和参数:

Layer:动画状态机中还可以嵌套一个动画状态机;

Paramters:状态切换参数(int float bool trigger);

3、动画状态切换:

Solo:动画切换优先;

Mute:动画切换禁止;

Has Exit time :勾选上会在切换动画时上一动作结束后再播放下一动画

Setting: 

  •         ExitTime:动作切换上一动作退出时间;
  •         Fixed Duration/Transtion Duration:动作切换时间长度;
  •         Transtion offset:下一动作所在上一动作比例;(动手测试下);
  •         Interruption sources:打断动画切换来源:

conditions:切换动作参数,参数是paramers里面定义的,条件可以使大于、等于、不等于、小于

 4、Animator组件:

Controller:AnimatorController文件;

Avatar:放骨骼文件;

Apply Root motion:如果勾选代表使用动画中的位移;如果当前游戏物体上的代码组件中有OnAnimatorMove内置函数,位移就受代码控制;

Update Mode:有三种更新模式:正常更新、物理更新、不受时间缩放影响;

Culling Mode:三种剔除模式:

  • Always Animate 始终有动画;
  • Cull Update Transforms 当摄像机没有渲染该物体,就会停止部分Transform相关功能;
  • cull' Completely 当摄像机没有渲染该物体,整个动画都不会被渲染;

5、代码操作 Animator:

1、Navigation 可行区域烘培:

烘培前需要先将地面和静态物体设置成 navigation static,然后用Bake选项即可自动生成可行区域

  •  AgentRadius:烘焙路径可行区域和非可行区域的间隔;
    • AgentHeight:烘焙路径时当高度小于这个值的地方,就是不可行区域;
    • Max Slope:最大可行区域的坡度;
    • Step Height:最大台阶高度;
    • Drop Height:下落高度;
    • Jump Distance:最大跳跃距离;

烘培后现实如下:

 要实现从低点到高点的跳跃:

2、NavMeshAgent 寻路组件:

 

  • Agent Type:代理类型,一般默认;
    • Base offset:组件的竖直方向的偏移量;
    • Speed:速度;
    • Agular Speed:角速度;
    • Acceleration:加速度(加速度是矢量,有大小有方向,在加速时是加速度,减速时是减速的加速度);
    • StoppingDistance:距离目标点多远就停止(速度不能太快,加速度不能太小,否则跟目标点距离等于stoppingdistance时停不下来)
    • Radiu:寻路组件半径;
    • Height:寻路组件高度;
    • Quality:寻路精细度,速度越快对寻路精细度要求越高;
    • Priority:寻路权重(0-99,值越小优先级越高,优先级低的游戏寻路组件需要绕着他走);
    • Auto traverse off mesh Link:是否支持off mesh link功能;
    • Auto repath :自动重新规划路径;
    • Area Mask:区域覆盖,当前寻路组件没有覆盖的区域,即使有时可行区域,对当前这个组件来说也是不可行区域;

BlendTree 混合树

 1、AnimatorController 1D混合树:

创建:

 

Parameter:控制当前混合树的参数;

三个蓝色三角形区域,代表的是三个动画的权重;

Threshold:阈值(-1-0 运行的是向左走动画权重越来越低,直走权重越来越高,0-1运行的是直走权重越来越低,向右走的权重越来越高);

Automate Threshold:是否自动计算;通过动画片段的动画位移来计算的阈值,我们一般使用自己设置的;

2、2D混合树:

 

2D 混合树细分为三种类型:

  •         2DsimpleDirection:在同一方向上不能有多个动画片段;
    •         2DFreeform Directional:在同一方向上可以有多个动画片段;
      •         2Dfreeform Cartesian:不是在方向上操作的动画片段;

2D 的 Parameters 有两个参数,分别控制两个轴;

其他动画相关概念

多Layer层动画状态机 与 动画层融合 avatar mask;

IK动画(逆向动画);

动画状态机重写;

动画重定向;

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

Unity学习笔记之动画系统 的相关文章

  • Java实现邮件发送功能

    确定发件人邮箱和密码 某些邮箱服务器为了增加邮箱本身密码的安全性 给 SMTP 客户端设置了独立密码 有的邮箱称为 授权码 对于开启了独立密码的邮箱 这里的邮箱密码必需使用这个独立密码 授权码 确认发件人邮箱的 SMTP 服务器地址 发件人
  • python人工智能:模型关系(泉舟时代)

    1 授课 林德尧 泉舟时代 未来城市技术总监 2 主要文章内容 通常下 Flask SQLAlchemy 的行为就像一个来自 declarative 扩展配置正确的 declarative 基类 因此 我们强烈建议您阅读 SQLAlchem
  • 《机器学习》Chapter 5 神经网络笔记

    机器学习 Chapter 5 神经网络 1 神经元模型 神经元接收到来自n个其它神经元传递过来的输入信号 这些输入信号通过带权重的连接进行传递 神经元接收到的总输入值将与神经元的阈值进行比较 然后通过激活函数处理以产生神经元的输出 2 感知

随机推荐

  • 使用css去除input边框

  • 不同CUDA版本对应的最小GPU运算能力和最低兼容驱动

    The minimum compute capability for various CUDA versions CUDA Version Minimum Compute Capability Default Compute Capabil
  • 使用 Python 进行游戏脚本编程 [翻译]

    翻译自 GDC 2002 上 Bruce Dawson 的 Game Scripting in Python 简单介绍 Python 作为游戏脚本语言的优势 原文 Game Scripting in Python 作者 Bruce Daws
  • 机器学习的环境搭建流程

    一 需要 python解释器 pycharm anaconda 机器学习需要的第三方包 二 流程 1 先确定进行机器学习需要的主要包之间的依赖关系及对应的python版本 建议python版本不要太高 3 6或者3 7比较好 因为许多第三方
  • 后端进阶之路——综述Spring Security认证,授权(一)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 后端进阶之路 文章
  • 【华为OD机试真题 Python】最左侧冗余覆盖子串

    前言 本专栏将持续更新华为OD机试题目 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun09
  • 简单的编写一个通讯录并可进行增删改查功能

    改通讯录分为三个模块 test c contact c contact h 下面依次给我相应的代码 有想问的或者觉得有帮助的帮忙点个赞和关注一下哈 蟹蟹 主要用到了结构体指针来进行对结构体的修改查找之类的算法 test c define C
  • iOS 底层解析weak的实现原理

    参考地址 http www cocoachina com ios 20170328 18962 html weak 实现原理的概括 Runtime维护了一个weak表 用于存储指向某个对象的所有weak指针 weak表其实是一个hash 哈
  • 深度学习之---yolov1,v2,v3详解

    写在前面 如果你想 run 起来 立马想看看效果 那就直接跳转到最后一张 动手实践 看了结果再来往前看吧 开始吧 一 YOLOv1 简介 这里不再赘述 之前的我的一个 GitChat 详尽的讲述了整个代码段的含义 以及如何一步步的去实现它
  • 【数字转换为汉字】

    项目场景 通常这种情况下 后端返回是数组 如果想要把数组这样显示出来 就需要把数组的索引值转换为汉字显示 如 11显示为十一 21显示为二十一 实现代码讲解 NoToChinese num 如果传递过来的值不是数据类型 则直接报错 if d
  • 蓝桥杯C/C++省赛:振兴中华

    目录 题目描述 思路分析 AC代码 题目描述 小明参加了学校的趣味运动会 其中的一个项目是 跳格子 地上画着一些格子 每个格子里写一个字 如下所示 从我做起振 我做起振兴 做起振兴中 起振兴中华 比赛时 先站在左上角的写着 从 字的格子里
  • Vue_shop(Element-UI)优化打包上线

    自己从头到尾打的源码链接 https gitee com bai xianger vue shop 一 项目的打包优化 1 网页顶部添加进度条效果 安装运行依赖nprogresst 链接 https github com rstacruz
  • 1053. 交换一次的先前排列

    转载请声明地址四元君 1053 交换一次的先前排列 题目难度 Medium 给你一个正整数的数组 A 其中的元素不一定完全不同 请你返回可在 一次交换 交换两数字 A i 和 A j 的位置 后得到的 按字典序排列小于 A 的最大可能排列
  • 无向图的广度优先遍历和深度优先遍历

    public class MGraph private char vexs 顶点 private int edge 存储边的二维数组 private int arcNum 边的数目 private boolean visited 访问标志数
  • Java学习笔记 类的特性:拓展知识与案例

    1 this的使用 使用场合 从一个构造方法调用到另一个构造方法 作用 缩短程序代码 减少开发程序时间 规则 通过关键字this来调用 this必须写在构造方法的第一行位置 在圆柱体类Cylinder里 用一个构造方法调用另一个构造方法 c
  • 浮点的加减计算方法

    浮点的计算方法 1 计算步骤 2 基本要素 2 1 浮点数 2 2 规格化浮点数 2 3 偏置指数 2 4 IEEE浮点数 2 5 特点 3 计算实例 4 舍入机制 扩展 乘除计算步骤 1 计算步骤 浮点数格式 单精度 符号位1位 阶码8位
  • MySQL权限管理

    如果声明了 WITH GRANT OPTION 那么权限的接收者也可以将此权限赋予他人 否则 就不能授权他人 MySQL权限管理 mysql gt SHOW GRANTS G 1 row Grants for root localhost
  • 使用SQL Server 获取插入记录后的ID(自动编号)

    要获取此ID 最简单的方法就是在查询之后select indentity SQL语句创建数据库和表 复制代码代码如下 create database dbdemo go use dbdemo go create table tbldemo
  • Pytorch训练时重要步骤

    目录 optimizer zero grad 代码解读 调用频率和结果 loss backward optimizer step 在学习pytorch时 官方文档 有一段示例代码 def train loop dataloader mode
  • Unity学习笔记之动画系统

    目录 Animation 动画系统 动画文件的设置 Animator 动画系统 Navigation 寻路系统 BlendTree 混合树 其他动画相关概念 Animation 动画系统 Animation是老版的动画系统 新版的动画系统是