Unity Animator动画状态机 深入理解(一)
接触Unity以来就已经有了Animator,Animation用的少,不过也大概理解他俩之间的一个区别于联系。

图中其实就是Animator和Animation之间的区别于联系了,啊!你肯定会告诉我这就不是Animator么。
对啊,Animator其实是由Animation组成的。比如在Animator没有出现的时候有些公司写的动画状态机其实就是代码版的Animator。
Animator其实就是把Animation统一管理和逻辑状态管理的组件,而Animation就是每一个动画。
动画状态机推荐游客学院的一篇教程。
Animator给了我们更方便的图形化状态管理。但是你想不写代码,还是不行。
但是代码会方便许多,用一个脚本就可以管理整个Animator状态机了~
其实也是角色执行的逻辑状态机~
using UnityEngine;
using System.Collections; public class AnimatorMove : MonoBehaviour { public float DirectionDampTime = .25f;
private Animator animator; void Start () {
animator = GetComponent<Animator>();
} void Update ()
{
if (animator == null) return; AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo();
if (stateInfo.IsName("Base Layer.Run"))
{
if (Input.GetButton("Fire1"))
animator.SetBool("Jump", true);
}
else
animator.SetBool("Jump", false);
if (Input.GetButtonDown("Fire2") && animator.layerCount >= )
animator.SetBool("Hi", true);
else
animator.SetBool("Hi", false);
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
animator.SetFloat("Speed", h * h + v * v);
animator.SetFloat("Direction", h, DirectionDampTime, Time.deltaTime);
}
}
这是一段比较简单的人物控制脚本,能控制人物的跑跳和打招呼。
其实就是控制一下过度的条件经过什么的操作是否允许过度。

通过上述的条件来控制动画的过度,那何为动画过度(Transition)呢?

这就是简单的动画过度控制,在Animator中能比较方便直观的修改。Transition就是所谓的过度
Settings就能调整过度的时间和衔接。
Conditions就是所谓的过度条件。
注意:如果一个动画有Conditions建议取消Has Exit Time,会出现无法及时触发的问题。
Has Exit Time就是必须过度的时间,处于这个时间时,是不允许任何对动画的操作的。
以上都是比较基础的Animator操作,后续会写一些关于IK。Blend Tree。二维混合树。同步动画层。多通道IK。等知识。
Unity Animator动画状态机 深入理解(一)的更多相关文章
- Unity Animator动画状态机 深入理解(三)二维混合树
介绍二维之前,先说说一维吧~ 这个是通过旋转角度速度快慢来表现身体的大转和中转~ 通过一个-133~133的数值来进行控制. 注:后面的那个对钩是镜像的意思. 其实二维混合树并没有想象中的那么难.先来 ...
- Unity Animator动画状态机 深入理解(二)IK控制
IK还是一个很神奇和实用的东西啊,起码可以用代码来控制人物骨骼位置还是很爽的.因为不是动画师~ 这篇可能跟Animator没啥关系了哈,都是代码层的. 看了一官方的案例,老的,有些问题,自己修改了一下 ...
- Unity3D中通过Animator动画状态机获取任意animation clip的准确播放持续时长
Unity3d 4及之前的版本中动画的播放用的animation,可直接获取其播放持续长度.但5.x及以后的版本中都是用animator来播放动画了. https://docs.unity3d.com ...
- Unity动画知识之二:Animator动画状态机
上次我们讲过Unity游戏动画从入门到住院,今天我们来讲一下动画状态机. 好了,现在我们已经成功的导入了动画.接下来要玩的东西就很装13啦.因为大部分动画师是用不到这家伙的,需要掌握这个技能的,至少也 ...
- Animator动画状态机的简单使用
一.动画状态机的使用 1.动画状态机说明 2.动画切换箭头的Inspector面板 3.动画的Inspector面板 二.动画状态机的使用和脚本控制 1.动画状态机的使用 2.动画状态机的控制脚本 ...
- 用Unity的Animation播放Animator动画Clip
简单的动画,其实不需要Animator动画状态机管理,用Animation播放效率更高,但可能由于历史遗留问题,或网上下载的第三方资源,得到的是Animator资源,可以在Clip的Debug试图下, ...
- unity 对Animator动画系统的研究
unity的新动画系统叫Mecanim,使用Animator来取代旧系统Animation,按Unity文档的惯例:知识点主要分2部分:unity manual和unity script,读者可以边看 ...
- Unity插件 - MeshEditor(六) 变形动画状态机
变形动画状态机--MeshAnimator,是针对MeshAnimation的状态管理器,有大量类似Unity animator的功能,但MeshAnimator操作会更加简便,更加直观,居家旅(zh ...
- 【转】unity Animator 怎么判断一个动画播放结束
关于unity Animator 怎么判断一个动画播放结束这里有几种方法.希望对大家有帮助.还有其他办法的可以分享一下 第一种方法:在动画结束帧后面加个动画事件,调用下含这个变量的函数接口不是可以了? ...
随机推荐
- JS+CSS3人物奔跑动画
查看效果:http://hovertree.com/texiao/jquery/58/ 效果图: 代码: <!DOCTYPE html> <html> <head> ...
- 浅谈Hybrid技术的设计与实现第二弹
前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) ...
- mariadb 最新精简压缩版 win64 解压即用
包含版本: mariadb-10.1.18-winx64 mariadb-5.5.53-winx64 32的没有压缩,估计用的人也比较少. 网盘链接: http://pan.baidu.com/s/1 ...
- iOS加密方式及解压缩文件
Base64加密方式 Base64是一种加密方法,可逆的加密. Base64中的可打印字符包括字母A-Z.a-z.数字0-9,这样共有62个字符./ + 填充 = echo -n BC|base64 ...
- 让代码更简单——自定义toBean实现
经过历时三天的鏖战,终于将阶段性项目——新闻发布系统做完了.在编码过程中,发现了很多冗余代码,统一流程,却需要不断重复编码——将用户输入实例化为对象的过程. 例: Person.set("i ...
- 2016 DTCC(中国数据库技术大会)
上周去参加了2016 DTCC(数据库技术大会),会议总共持续3天,议题非常多,我这里搜集了最新的公开的PPT内容,有兴趣的同学可以下载看看,PPT合集下载链接为:http://pan.baidu.c ...
- Java实现上传下载
一.上传 二.下载 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.Fi ...
- Mysql Join
在前面的博文中,我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据. 本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询 ...
- 对C#泛型实例化对像
public class A { } public class B<T> { public static T Get() { //在这一块如何实例化T这个对象呢?如果用default(T) ...
- 【FLUENT案例】02:DPM模型
1 引子1.1 案例描述1.2 学习目标1.3 模拟内容2 启动FLUENT并导入网格3 材料设置4 Cell Zones Conditions5 Calculate6 定义Injecions7 定义 ...