【Unity基础】6.动画状态机

  【Unity基础】6.动画状态机

        大家好,我是Lampard~~
        欢迎来到Unity基础系列博客,所学知识来自B站阿发老师~感谢 

(一)Animator Controller组件

(1)创建组件

    Animator Controller组件是unity用于控制管理动画状态的组件。什么是状态机,为什么引入这个概念呢? 

    一个角色可能存在着跑,跳,站立,攻击等多种动画状态,若在以往,我们可以通过代码来创建并切换角色不同的动作,但是这样一来增加了程序的工作量,二来并不直观,美术要看到实机效果(比如奔跑动画切攻击动画)需要程序把资源打入到包体,把代码写好才能测试。

    因此unity提供了这个组件,让美术同学编辑器中就可以管理不同状态下的动画展现,并且看到实际效果;让程序同学只需要关注不同状态下的变量变化,不需要管理动画的增删

    只需要右键create,选中Animator Controller就可以创建一个动画管理器组件

(2)动画状态编辑界面

    双击我们创建的Animator Controller,就可以打开动画编辑界面,我们能够看到初始的Animator Controller都会自带三个状态,分别是Any State, Entry和 Exit

Any State状态

    表示任意状态的特殊状态。例如我们如果希望角色在任何状态下都有可能切换到死亡状态,那么Any State就可以帮我们做到。当你发现某个状态可以从任何状态以相同的条件跳转到时,那么你就可以用Any State来简化过渡关系

Entry状态 

表示状态机的入口状态。当我们为某个GameObject添加上Animator组件时,这个组件就会开始发挥它的作用。
如果Animator Controller控制多个Animation的播放,那么默认情况下Animator组件会播放哪个动画呢? 由Entry来决定的。
但是Entry本身并不包含动画,而是指向某个带有动画的状态,并设置其为默认状态。被设置为默认状态的状态会显示为 橘黄色

Exit状态

表示状态机的出口状态,以红色标识。如果你的动画控制器只有一层,那么这个状态可能并没有什么卵用。但是当你需要从子状态机中返回到上一层(Layer)时,把状态指向Exit就可以了

(二)动画状态

(1)新增&删除&重命名动画状态

    如果看不懂上面三个初始状态的简介那木有关系,因为我们会从头开始学习

    首先就是创建和删除了,在动画状态编辑器中,右键create state就可以创建一个动画状态。选中动画状态,右键delete就可以删除(初始的三个状态删不了哟)

    其次如果你想给一个状态重命名,只需要选中这个状态,在右侧的Inspector属性面板中找到名字属性修改就可以了

(2)动画状态的属性

    在动画面板中我们可以看到状态还有以下的属性,不用太纠结,在日后肯定会用到它们的,现在我们可以简单的看一下介绍:

(3)动画状态的联系

    动画状态之间会有联系,比如受击状态后接死亡,比如前摇状态后接攻击。这些状态的联系,unity会用transition来定义这组关系,而在状态编辑器中,会用一个线段的指向来呈现 

     像上图我们就给state1和state2做了一个双向的联系,意味着S1可以转换成S2,S2也可以转成S1,它们的联系在右侧属性面板中的transtions记录着,若是想删除它们的联系,那么在transtions中删除即可

    我们知道entry会指向初始的动画状态,比如现在默认就是指向S1状态,那如果我想让S2作为初始状态,只需要选中S2状态,右击Set as default state即可

(三)挂上状态动画

(1)创建动画animation

    上面巴拉巴拉一大堆,可能就有读者大大开始吐槽:这个和动画有神马关系???

    莫急!!终于要到关键的步骤给状态挂上动画了。首先是创建一个简单的animation,比如我们给之前的直升机,加上上升的动画,简单编辑一下其Y轴随时间变化增加;

(2)添加动画至状态motion

    选中我们要挂在的动画状态,然后把创建好的动画拖动至motion属性栏中就可以挂上了

    点击运行看看,动画状态从entry进入到State1,然后就播放fly动画。而我们的直升飞机就飞起来了~

     若此时加一个动画状态State2,让State1在播放完毕后进入到State2会怎么样呢?

    正如我们所想,此时fly动作被播放一遍以后就进入到state2,因为state2没有定义其他的motion动画,因此直升机就呆呆的不动了 

    好啦今天先到这里,下周进行更复杂一些的动画编辑操作~

    点赞,关注!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/159776.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习-无监督算法之降维

降维:将训练数据中的样本从高维空间转换到低维空间,降维是对原始数据线性变换实现的。为什么要降维?高维计算难,泛化能力差,防止维数灾难优点:减少冗余特征,方便数据可视化,减少内存…

主动配电网故障恢复的重构与孤岛划分matlab程序

微❤关注“电气仔推送”获得资料(专享优惠) 参考文档: A New Model for Resilient Distribution Systems by Microgrids Formation; 主动配电网故障恢复的重构与孤岛划分统一模型; 同时考虑孤岛与重构的配电网故障…

嵌入式开发学习之STM32F407串口(USART)收发数据(三)

嵌入式开发学习之STM32F407串口(USART)收发数据(三) 开发涉及工具一、选定所使用的串口二、配置串口1.配置串口的I/O2.配置串口参数属性3.配置串口中断4.串口中断在哪里处理5.串口如何发送字符串 三、封装串口配置库文件1.创建头文…

低代码技术这么香,如何把它的开发特点发挥到极致?

前言 什么是低代码技术? 低代码是一种可视化软件开发方法,通过最少的编码更快地交付应用程序。图形用户界面和拖放功能使开发过程的各个方面自动化,消除了对传统计算机编程方法的依赖。 文章目录 前言低代码平台怎么选?用友Yonbu…

2024上海国际智慧城市展览会(世亚智博会)智慧城市,数字中国

在数字化、智能化的时代背景下,智慧城市成为了全球瞩目的焦点。而作为智慧城市领域的重要盛会,2024上海国际智慧城市展览会(简称:世亚智博会)则将再次汇聚全球目光。此次展览将于2024年3月26日至28日在上海跨国采购会展…

Java项目调用Python脚本(基于idea)

前期准备 1.首先需要在本地环境中安装配置python环境 Python(含PyCharm及配置)下载安装以及简单使用(Idea) 博主本次使用python版本为py3.7.3 2.idea安装python插件 位置:File->Settings->Plugins->python->安装后重启即可 3.引入jython依赖 &l…

在IE浏览器下fixed定位容器随着滚动条出现抖动问题(实测有效)

在ie浏览器下使用fixed定位的容器随着滚动条滚动出现晃动,这种问题比较常见,以下我们给两个解决方案。 方案一 把滑动滚动取消 方案二 在vue组件的created生命周期中添加此代码 document.addEventListener(wheel,function(event) {event.preventDefa…

Jenkins发布失败记录

Exception when publishing, exception message [Exec exit status not zero. Status [127]] 见链接:Jenkins发布时常见异常(持续更新...)_exception when publishing, exception message [exec_码农StayUp的博客-CSDN博客 The remote end hu…

华为云云耀云服务器L实例评测|企业项目最佳实践之包管理工具安装软件(六)

华为云云耀云服务器L实例评测|企业项目最佳实践系列: 华为云云耀云服务器L实例评测|企业项目最佳实践之云服务器介绍(一) 华为云云耀云服务器L实例评测|企业项目最佳实践之华为云介绍(二) 华为云云耀云服务器L实例评测&#xff5…

大模型引发“暴力计算”,巨头加速推进液冷“降温”

点击关注 文|姚悦 编|王一粟 一进入部署了液冷服务器的数据中心,不仅没有嘈杂的风扇声,甚至在不开空调的夏日也完全没有闷热感。 在大模型引发“暴力计算”的热潮下,数据中心的上下游,正在加紧推进液冷“…

Apipost一键压测已支持导入CSV文件

最近更新中Apipost对UI页面进行了一些调整,另外一键压测功能支持参数化!本篇文章将详细介绍这些改动! API调试页面的细节改动 在请求区填入请求参数或脚本时会有相应的标识 如在Query中填入多个参数时上方会展示数量 在预、后执行脚本中写…

Seata入门系列【7】Seata之TCC模式入门案例

1 前言 Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 TCC 与 Seata AT 事务一样都是两阶段事务,它与 AT 事务的主要区别为: TCC 对业务代码侵入严重:每个阶段的数据操作都要自己进行…

最好的开放式蓝牙耳机有哪些?排名前五的开放式耳机五强

越来越多的人开始选择蓝牙耳机作为他们的音频解决方案。蓝牙耳机市场提供了各式各样的选择,不仅有常见的头戴式、耳塞式和半入耳式,还有一种备受欢迎的"开放式耳机"。今天,我将向大家介绍一些优秀的开放式蓝牙耳机款式,…

网站如何有效防止网络攻击

互联网上的网站和应用程序受到各种威胁,如黑客、恶意软件和数据泄漏。因此,了解如何解决网站被攻击的问题至关重要。本文将介绍一些简单的步骤,帮助您提高您的网站的安全性。 确认攻击 要解决网站被攻击的问题,首先需要识别是否遭…

将中文名格式化输出为英文名

要求: 编写Java程序,输入样式为:Zhong wen ming的人名,以 Ming,Zhong.W 的形式打印出来。其中.W是中间单词的首字母;例如输入”Willian Jefferson Clinton“,输出形式为:Clinton,Willian.J public static …

FPGA project : flash_write

本实验重点学习了: flash的页编程指令pp。 在写之前要先进行擦除(全擦除和页擦除); 本实验:先传写指令,然后进入写锁存周期,然后传页编程指令,3个地址; 然后传数据&a…

攻防千层饼

近年来,网络安全领域正在经历一场不断升级的攻防对抗,这场攻防已经不再局限于传统的攻击与防御模式,攻击者和防守者都已经越发熟练,对于传统攻防手法了如指掌。 在这个背景下,攻击者必须不断寻求创新的途径&#xff0…

Hadoop问题:start-all.sh显示未找到命令

在sbin文件夹下是start-all.sh可以运行的,但是到了别的文件夹下就不行了,于是想到了是文件路径问题,因为hadoop环境是和java环境一起配置的导致sbin写成了bin 解决办法: 打开.bashrc配置hadoop的环境变量 sudo vim ~/.bashrc …

Photoshop Lightroom 2024 (Lr2024)最新安装特别版

Adobe Photoshop Lightroom 2024是一款由Adobe Systems公司发布的软件,其英文直译为“明室”,也常被称为数码暗房。它主要用于图片管理和后期润色,包括图片导入、整理、编辑、导出等全过程,不仅可以对图片进行编辑,还可…

Qt不能安装自己想要的版本,如Qt 5.15.2

使用在线安装工具安装Qt5.15.2时,发现没有Qt 5的相关版本,只有Qt 6的版本,这时选择右边的Archive,再点击筛选,这时就会出现之前的Qt版本。