Unity创建人物基本动画(基础组件等相关知识和Idle的创建)

1.基础流程

步骤一:创建人物模型

首先,我们需要创建一个人物模型。可以使用Unity自带的模型,也可以使用第三方模型。在本文中,我们将使用Unity中自带的模型。

步骤二:创建动画控制器

在创建动画之前,我们需要先创建一个动画控制器(Animator Controller)。动画控制器是一个用于控制对象动画的组件,它可以将对象的动画状态分为多个离散的状态,根据需要在这些状态之间进行切换。

打开Unity编辑器,选择人物模型,然后点击inspector栏中的Add Component,搜索添加组件Animator。然后,在“Project”视图中创建一个动画控制器,将它拖动到Animator组件的控制器属性中。

步骤三:创建动画状态

在动画控制器中,我们需要为人物模型创建动画状态。动画状态是人物模型在不同动作下的状态,比如站立、行走、奔跑和跳跃等。

在动画控制器中,右键单击空白处选择“Create State > Empty”创建一个空状态。然后,将状态名称改为“Idle”,并将人物模型的动画文件拖动到状态中。

接下来,我们需要创建其他的动画状态。右键单击“Idle”状态,选择“Make Transition”,然后将鼠标拖动到另一个状态上。这样就可以创建一个状态之间的转换关系。重复此操作,创建其他状态之间的转换关系。

步骤四:创建动画过渡

在动画控制器中,我们还需要为状态之间的切换创建过渡效果。过渡效果可以使动画在状态之间平滑过渡,看起来更加自然。

右键单击从一个状态到另一个状态的转换关系,选择“Create Transition”,然后在Inspector视图中设置过渡条件。比如,在从“Idle”状态到“Walk”状态的转换中,我们可以设置速度大于0.1时触发转换。

步骤五:创建动画事件

在动画控制器中,我们还可以为动画状态添加事件。事件可以在动画播放到指定的帧或关键帧时触发,比如播放声音或者触发特效。

在动画状态中,右键单击空白处选择“Add Event”,然后在Inspector视图中设置事件的名称和触发时间。

步骤六:测试动画

完成上述步骤后,我们可以在场景中测试动画效果。在场景中选择人物模型,然后在动画控制器中选择相应的状态,查看动画效果是否符合要求。

2.相关介绍

①组件Animator。

在Unity中,Animator是一个用于控制游戏对象动画的组件。它的主要作用是根据指定的动画状态和过渡条件来控制对象的动画。

具体来说,Animator可以实现以下功能:

  1. 控制对象的动画状态:Animator可以将对象的动画状态分为多个离散的状态,比如走路、跑步、跳跃等,然后根据需要在这些状态之间进行切换。这使得游戏对象的动画看起来更加自然和流畅。

  2. 实现状态过渡:Animator可以实现状态之间的平滑过渡,使得游戏对象的动画看起来更加连贯。通过指定过渡条件,Animator可以在动画状态之间进行平滑的过渡。

  3. 控制动画的播放速度和循环播放:Animator可以控制动画的播放速度,并且可以设置动画是否循环播放。

  4. 控制动画事件:Animator可以在指定的动画帧或状态切换时触发事件,比如播放声音或者触发特效。

总的来说,Animator是Unity中非常重要的一个组件,它可以帮助开发者实现游戏对象的动画控制,从而提高游戏的交互体验。

②animation文件

在Unity中,Animation(动画)是一种用于创建和控制对象动画的系统。与Animator不同,Animation系统是基于关键帧的,可以通过在时间轴上放置关键帧来指定动画的状态和过渡。

具体来说,Animation系统可以实现以下功能:

  1. 创建关键帧动画:使用Animation系统,开发者可以创建关键帧动画。关键帧动画是一种通过在时间轴上放置关键帧来定义动画的方式。在每个关键帧上,开发者可以指定对象的位置、旋转、缩放等属性,从而实现动画效果。

  2. 控制动画播放速度:Animation系统可以控制动画的播放速度,并且可以设置动画是否循环播放。

  3. 实现动画事件:Animation系统可以在指定的动画帧或关键帧时触发事件,比如播放声音或者触发特效。

  4. 实现动画层:Animation系统支持多个动画层,可以让开发者在同一对象上同时播放多个动画,从而实现更加复杂的动画效果。

3.Idle的创建

①选中player后在inspector窗口中点击Add Component,搜索添加Animator组件。

 ②选中Player的情况下,打开Animation窗口,创建一个动画文件命名为Idle。拖拽动画源文件到Animation窗口中。

③将创建的Idle文件拖拽到Aimator窗口中,保存退出。

 

④测试动画效果。

 

tips:

采样率的设置在animation窗口中时间轴右侧的三个点中,勾选samples。

在animator中创建两个运行模式之间的连线,设置切换条件,其中exit time 为切换时的动画播放进度。

 

创建基础的Idle动画的时候不需要任何判断条件,但后面复杂的动画以及动画切换需要我们为其编写相关脚本,我们最好创建一个专为动画服务的脚本文件,如下图我创建了一个名为PlayerAnimation的脚本

 

  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Unity中的模型动画控制、基础移动、旋转库等的详细使用脚本示例。 1. 模型动画控制 ```C# using UnityEngine; public class AnimationController : MonoBehaviour { public Animator animator; void Update() { // 播放动画 if (Input.GetKey(KeyCode.W)) { animator.SetBool("isWalking", true); } else { animator.SetBool("isWalking", false); } // 暂停/继续动画 if (Input.GetKeyDown(KeyCode.Space)) { if (animator.speed == 0) { animator.speed = 1; } else { animator.speed = 0; } } // 重置动画 if (Input.GetKeyDown(KeyCode.R)) { animator.Play("Idle"); } } } ``` 上述脚本通过输入控制模型动画播放、暂停/继续、重置等操作,使用了Animator组件和对应的参数。可以在Animator窗口中设置动画参数和状态机。 2. 基础移动 ```C# using UnityEngine; public class BasicMovement : MonoBehaviour { public float speed = 5f; void Update() { float horizontal = Input.GetAxis("Horizontal"); float vertical = Input.GetAxis("Vertical"); Vector3 movement = new Vector3(horizontal, 0f, vertical) * speed * Time.deltaTime; transform.Translate(movement, Space.Self); } } ``` 上述脚本通过输入控制物体的基础移动,使用了Input.GetAxis获取输入值、Vector3实现移动向量、transform.Translate实现移动操作。 3. 基础旋转 ```C# using UnityEngine; public class BasicRotation : MonoBehaviour { public float rotationSpeed = 100f; void Update() { float horizontal = Input.GetAxis("Horizontal"); transform.Rotate(Vector3.up, horizontal * rotationSpeed * Time.deltaTime); } } ``` 上述脚本通过输入控制物体的基础旋转,使用了transform.Rotate实现旋转操作。可以使用Vector3.up指定旋转轴,以及rotationSpeed控制旋转速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值