Unity3d 动画系统

Unity3d学习笔记 本篇简单介绍Unity3d中的动画系统及其使用。

模型导入

以带动画的FBX文件为例,unity版本为5.0以上版本。

新版动画系统

当你导入FBX文件后,会发现模型具有一个Animator(状态机)组件。

我们一般将它成为(新)动画系统,新动画系统和旧版的动画系统(unity3d 4.3之前版本)的区别就在于使用了Animator组件代替了原来的Animation

旧版动画系统

同理当你使用的是旧版的动画系统就会发现是Animation组件。

在高版本的unity3d你可以通过设置模型的Rig选项设置动画的类型。

参数 Animation type

  • Legacy: 旧版本的动画
  • Generic: 通用的动画
  • Humanoid: 类人动画

动画导入

  • 动画分割 Animation Clips

你可以将动画分割成若干个独立的动画。

参数 Loop Time :是否循环播放。

  • 多个模型文件

你也可以使用多个模型文件导入动画,命名约定——"模型名称"@"动画名称".fbx

如: test.fbx ,[email protected] ,[email protected]ove.fbx

动画的播放和使用

Animator

你需要在项目中新建一个Animator Controller来控制动画的播放。

然后双击切换到Animator视图

你会发现有三个默认状态

  • Entry: Animator的入口
  • Any State:任意的状态
  • Exit: 退出状态

我们添加两个状态用来表示两个分别不同的动画,分别名为idlemove

idleEntry状态连接表示Animator进来执行该动画,点击状态在motion选择要执行的动画。

一般入口状态为idle 动画,用来表示模型闲置的状态。

再将idle状态和move状态连接,箭头指向move,表示从闲置状态开始运动。

将move状态和idle状态连接,箭头指向idle,表示从运动状态转为闲置状态。

动画的Animator(状态机)配置好了,我们需要添加一些参数来作为Animator在各个状态之间切换的条件。

在左上角的Prameters中添加两个bool变量,分别表示模型闲置和移动两种状态。

Prameters参数类型:

  • Float:float类型的参数,多用于控制状态机内部的浮点型参数。
  • Int:int类型的参数,多用于控制状态机内部的整型参数。
  • Bool:bool类型参数,多用于状态切换。
  • Trigger:本质上也是一个bool类型的参数,但是其值默认为false,且设置为true后系统会自动将其还原为false。

设置 Idling :true Moving : false

点击箭头,为状态的转换切换条件

参数 Has Exit Time:表示在动画播放完才会切换到下一动画。

最后使用代码控制动画:


using UnityEngine;
using System.Collections;

public class test : MonoBehaviour {

    private Animator _animator;

    void Start()
    {
        _animator = this.GetComponent<Animator>();
    }

    void Update()
    {
        if( Input.GetKeyDown("q") )
        {
            _animator.SetBool ("Idling",false);
            _animator.SetBool ("Moving",true);
        }
        if( Input.GetKeyDown("w") )
        {
            _animator.SetBool ("Idling",true);
            _animator.SetBool ("Moving",false);
        }
    }
}

Animation

你可以通过 play Automatically选择是否自动播放或是

代码控制:


using UnityEngine;
using System.Collections;

public class test : MonoBehaviour {

    Animation _animation;

        void Start() {

        _animation = GetComponent<Animation>();

        }

    void Update(){

        if( Input.GetKeyDown("q") )
        {
            _animation.Play("Take 001");
        }
        if( Input.GetKeyDown("w") )
        {
            _animation.Play("Take 0010");
        }
    }

}

原文地址:https://www.cnblogs.com/chenjy1225/p/9661386.html

时间: 2024-10-10 12:33:35

Unity3d 动画系统的相关文章

解决Unity3d 4.3 动画系统带来的烦恼

近期有非常多同学问我关于unity3d 4.3更新之后动画系统和曾经不一样了,并且之前用的非常熟练的创建动画和修修改画非常多操作都不好用了,那么在这里和大家分享一下三杀的个人经验,方便大家使用unity3d 4.3的动画系统. 首先,我们要明白知道的一点是Unity3d 是逐步的将老的动画系统删除,取而代之的是新的动画系统叫做Mecanim.所以就会出现变来变去,越变越不好用的情况,只是等到Unity3d把旧版动画系统全然删除的时候,一个崭新的动画系统就会展如今我们眼前,期待是这样吧. (下面内

Unity 3D游戏开发Mecanim动画系统讲解

本期教程和大家分享Mecanim动画系统的重定向特性,Mecanim动画系统是Unity3D推出的全新的动画系统,具有重定向.可融合等诸多新特性,通过和美工人员的紧密合作,可以帮助程序设计人员快速地设计出角色动画.一起跟着人气博主秦元培学习吧! 博主今天想和大家分享的是Mecanim动画系统的重定向特性,众所周知,<仙剑奇侠传>是一部经典的RPG游戏,这部游戏到今天依然焕发着强大的生命力.博主在网上认识了一个制作<仙剑奇侠传>同人游戏的小团队,他们目前正在着手制作一个称为<仙

在Unity3D的Legacy动画系统中应用Root Motion

最近仔细比较了Unity3D目前版本中的两套动画系统:Legacy和Mecanim.Mecanim系统功能较之Legacy要强大很多,但是使用AnimatorController着实不方便(尽管使用AnimatorOverrideController可以避免重复编辑状态机),是因为游戏逻辑层面往往要用一个状态机或者类似的机制来控制角色的状态,而角色层面的状态逻辑和动画层面是无法一一对应的,两套复杂的状态机要配合起来...想想就觉得蛋疼啊!难怪很多朋友现在还在使用Legacy动画系统.Legacy

Unity3D游戏开发之Unity3D动画与Mecanim动画系统

Unity3D游戏开发之Unity3D动画与Mecanim动画系统 欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,[狗刨学习网]unity极致学院,致力于打造业内unity3d培训.学习第一品牌. Mecanim是Unity新增的动画系统,其功能强大而灵活,让人类和非人类角色栩栩如生.Mecanim的重定向极大的提供了工作效率,而且占用极少CPU周期.使用从Unity资源商店找到的动画资源,或

[Unity3D]Unity4新的动画系统Mecanim

Unity4.X中添加的新的动画系统取代了原来3.X的旧的动画系统,新动画系统Mecanim也是官方推荐的,使得我们写较少的代码来实现连续的动画效果. 效果图 Unity3.X中动画系统播放动画 使用播放play()或淡入淡出播放CrossFade() 例如: animation.Play("name"); animation.CrossFade("name"); 也可以做成队列动画,然后播放,例如: animation.PlayQueued("name&

[Unity3D]Unity3D游戏开发之自己主动寻路与Mecanim动画系统的结合

大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 这段时间博主将大部分的精力都放在了研究官方演示样例项目上,主要是希望能够从中挖掘出有价值的东西分享给大家.这样博主和大家能够共同学习.好了,那么今天博主想和大家分享的是自己主动寻路与Mecanim动画系统结合起来实现的一个小案例,希望对大家学习Unity3D能够有所帮助. 博主以前告诉大家.博主是一个仙剑迷,平时学习编程累了的时候,博主就会玩玩仙剑.如图是博主偶尔回去玩玩的<新仙剑OL>

Unity3D之Legacy动画系统学习笔记

Unity3D的Mecanim动画系统是非常强大的,而且作为Unity推荐的动画系统,其未来会完全代替老的一套动画系统,即Legacy动画系统.目前的情况是Mecanim与Legacy两套动画系统同时共存,但是并不是说Legacy动画系统就没有任何价值了,作为Unity4.0以前使用的动画系统,我认为还是很有必要去了解和学习的,所以就有了这篇笔记. Legacy动画系统 http://docs.unity3d.com/Manual/Animations.html 我们可以使用Unity自带的资源

Unity3D之Mecanim动画系统学习笔记(二):模型导入

我们要在Unity3D中使用上模型和动画,需要经过下面几个阶段的制作,下面以一个人形的模型开发为准来介绍. 模型制作 模型建模(Modelling) 我们的美术在建模时一般会制作一个称为T-Pose(及双臂张开)的模型. 骨骼绑定(Rigging) 在之前制作的模型上进行骨骼的绑定,我们需要注意的是骨骼数量不能少于15根,同时要遵循Unity3D的骨骼制作标准,如下: http://docs.unity3d.com/Manual/Preparingacharacterfromscratch.ht

Unity3D之Mecanim动画系统学习笔记(一):认识Mecanim动画系统

Mecanim简介 Mecanim动画系统是Unity3D4.0开始引入的一套全新的动画系统,主要提供了下面4个方面的功能: 针对人形角色提供一套特殊的工作流. 动画重定向的能力,可以非常方便的把动画从一个角色模型应用到其他角色模型之上. 提供可视化的Animation编辑器,可以方便的创建和预览动画片段. 提供可视化的Animator编辑器,可以方便的管理多个动画切换的状态. 工作流 模型的准备 Unity不能制作3D模型和进行骨骼绑定,这些需要在专业的建模软件中由美术进行制作,一般常用的建模