Animation

本文深入解析Unity Animation窗口的使用,涵盖动画时间轴、关键帧、创建与编辑动画、Mecanim与Animation系统的区别,以及代码控制动画播放的方法。适合Unity开发者掌握动画制作与控制技巧。
摘要由CSDN通过智能技术生成

1、Animation窗口

Window——>Animation——>Animation

Animation窗口 直译就是动画窗口,它主要用于在Unity内部创建和修改动画,所有在场景中的对象都可以通过Animation窗口为其制作动画

原理:
制作动画时:记录在固定时间点对象挂载的脚本的变量变化
播放动画时:将制作动画时记录的数据在固定时间点进行改变,产生动画效果

2、相关概念

  • 动画时间轴:

每一个动画文件都有自己的一个生命周期,从动画开始到结束,我们可以在动画时间轴上编辑每一个动画生命周期中变化

  • 动画中的帧:

假设某个动画的帧率为60帧每秒,意味着该动画1秒钟最多会有60次改变机会,每一帧的间隔时间是 1s / 60 ≈ 16.67毫秒,也就是说 我们最快可以每16.67毫秒改变一次对象状态

  • 关键帧:

动画在时间轴上的某一个时间节点上处于的状态

3、Animation窗口功能

4、创建动画 

  • 在场景中选中想要创建动画的对象
  • 在Animation窗口中点击创建
  • 选择动画文件将要保存到的位置

保存动画文件时,Unity会帮助我们完成以下操作

  • 创建一个 Animator Controller(动画控制器或称之为动画状态机) 资源(新动画系统)
  • 将新创建的动画文件添加到Animator Controller中
  • 为动画对象添加Animator组件
  • 为Animator组件关联创建的Animator Controller文件

5、相关操作(包括参数、关键帧模式下编辑动画、曲线模式编辑动画)

6、Animation和Animator(这里本文主要讲Animation)

Unity中有两套动画系统
新:Mecanim动画系统——主要用Animator组件控制动画
老:Animation动画系统——主要用Animation组件控制动画(Unity4之前的版本可能会用到)

目前我们为对象在Animation窗口创建的动画都会被Animator动画系统支配
有特殊需求或者针对一些简易动画,才会使用Animation动画系统

注意:
在创建动画之前为对象添加Animation组件之后再制作动画,这时制作出的动画和之前的动画格式是有区别的

 

7、代码控制播放

//1.播放动画
if(Input.GetKeyDown(KeyCode.Alpha1))
{
    animation.Play("1");
}
if (Input.GetKeyDown(KeyCode.Alpha2))
{
    animation.Play("2");
}
//2.淡入播放,自动产生过渡效果
if(Input.GetKeyDown(KeyCode.Alpha3))
{
    //当你要播放的动画的开始状态 和当前的状态 不一样时 
    //就会产生过渡效果
    animation.CrossFade("3");
    //animation.Play("3");
}

//3.前一个播完再播放下一个
if( Input.GetKeyDown(KeyCode.Alpha4) )
{
    //animation.PlayQueued("2");
    animation.CrossFadeQueued("2");
}

//4.停止播放所有动画
//animation.Stop();

//5.是否在播放某个动画
if( animation.IsPlaying("1") )
{

}

//6.播放模式设置
animation.wrapMode = WrapMode.Loop;

//7.其它(了解即可,新动画系统中会详细讲解)
//层级和权重以及混合(老动画系统需要通过代码来达到动画的遮罩、融合等效果)
//设置层级
animation["1"].layer = 1;
//设置权重,不同层级的动画播放时,weight=1的动画会覆盖层级低的动画
animation["1"].weight = 1;
//混合模式 叠加还是混合
animation["1"].blendMode = AnimationBlendMode.Additive;
//设置混组相关骨骼信息
animation[""].AddMixingTransform();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值