Unity(2022.3.41LTS) - 动画控制器过渡详解

目录

零.简介

一、过渡的概念

二、过渡的创建

​编辑

三、过渡的属性

创建参数

给过度加参数

选择过渡的条件

四、过渡的触发方式

五. 代码控制过渡

1.API介绍

a、SeBool方法

b、SetInteger方法

c、SetFloat方法

2.实例

3.运行效果

4.完整代码

六、过渡的优化



零.简介

在 Unity 中,动画控制器的过渡是实现不同动画状态之间平滑切换的关键部分。

一、过渡的概念

过渡是指从一个动画状态切换到另一个动画状态的过程。在动画控制器中,过渡可以基于各种条件触发,例如动画参数的变化、时间的流逝、事件的发生等。通过设置过渡条件和过渡属性,可以控制动画的切换方式和过渡时间,以实现自然流畅的动画效果。

二、过渡的创建

  1. 在动画控制器编辑器中,选择一个源动画状态,然后右键点击并选择 “Make Transition”(创建过渡)。
  2. 将鼠标指针拖动到目标动画状态上,释放鼠标即可创建一个过渡。

三、过渡的属性

  1. 过渡条件:过渡条件是触发过渡的条件。可以通过设置动画参数的阈值、时间的流逝、事件的发生等条件来控制过渡的触发。例如,可以设置一个 “速度” 参数,当角色的速度超过一定值时,触发从行走状态到奔跑状态的过渡。
  2. 过渡时间:过渡时间是指从源动画状态切换到目标动画状态所需的时间。可以设置过渡时间来控制动画的切换速度,使其更加自然流畅。过渡时间可以是固定的时间值,也可以是基于动画参数的动态时间值。
  3. 过渡曲线:过渡曲线用于控制过渡的插值方式。可以选择不同的过渡曲线类型,如线性、平滑、加速、减速等,以实现不同的过渡效果。过渡曲线可以在动画控制器编辑器中进行可视化编辑,以便更好地调整过渡的效果。
  4. 过渡中断:过渡中断是指在过渡过程中是否可以被其他过渡中断。可以设置过渡中断属性来控制过渡的中断行为。例如,可以设置过渡中断为 “允许中断”,这样在过渡过程中如果满足其他过渡条件,就可以中断当前过渡并切换到新的动画状态。

创建参数

点击参数页面

选择参数类型

我这里选择了bool类型

命名为Jump,后面的这个是默认状态false,勾选上就是默认状态true

给过度加参数

点击过渡,然后点击这里的加号

选择过渡的条件

点击加号之后,选择刚才创建的bool.默认为true的情况下,才会运行

这时候我们点击运行游戏,就会发现人物动作不在调转到跳跃动画了

四、过渡的触发方式

  1. 基于动画参数:可以通过设置动画参数的变化来触发过渡。例如,可以设置一个 “速度” 参数,当角色的速度超过一定值时,触发从行走状态到奔跑状态的过渡。可以在脚本中通过修改动画参数的值来触发过渡。
  2. 基于时间:可以设置过渡在一定时间后自动触发。例如,可以设置一个过渡在 2 秒后自动从站立状态切换到行走状态。
  3. 基于事件:可以通过触发特定的事件来触发过渡。例如,可以在角色的攻击动画中设置一个事件,当攻击动画播放完成时,触发从攻击状态切换到站立状态的过渡。可以在脚本中通过触发事件来触发过渡。

这里还是用是上一步创建的bool参数.也可以根据前面的步骤来做一个跑步的动画.创建一个int或float类型的参数,然后用大小来判断是否过渡动画.用户按下键位要跑的时候,代码更改这里的参数大小,来实现动画的过渡.

这里还是继续bool的跳跃,经过前面现在人物已经默认不自动切换到跳跃了.这里我们代码控制下.

五. 代码控制过渡

1.API介绍

在 Unity 中,Animator 类的 SetBoolSetInteger 和 SetFloat 等方法是用于设置动画参数以控制动画状态机的重要 API。

a、SeBool方法

SetBool 方法用于设置布尔类型的动画参数。这个参数可以在动画控制器中作为过渡条件或用于控制动画的某些特性。

animator.SetBool("IsRunning", true);

上述代码将名为 “IsRunning” 的布尔参数设置为 true。如果在动画控制器中有基于这个参数的过渡条件,那么可能会触发相应的动画过渡。

b、SetInteger方法

SetInteger 方法用于设置整数类型的动画参数。

例如:

animator.SetInteger("AttackType", 1);

这里将名为 “AttackType” 的整数参数设置为 1。可以根据不同的整数值在动画控制器中进行不同的动画状态切换或控制。

c、SetFloat方法

SetFloat 方法用于设置浮点类型的动画参数。

例如:

animator.SetFloat("Speed", 5.0f);

此代码将名为 “Speed” 的浮点参数设置为 5.0。可以利用这个参数来控制动画的速度、强度等特性,比如根据角色的移动速度设置这个参数来实现不同速度下的动画过渡。

2.实例

首先获取组件,

private Animator animator;

         void Start()
         {
             animator = GetComponent<Animator>();
         }

然后获取键盘输入来改吧参数

     if (Input.GetKeyDown(KeyCode.Space))
     {
         animator.SetBool("Jump",true);
     }

3.运行效果

按一下空格键,等前面的动作走完就可以跳跃了.

4.完整代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AbunatorCon : MonoBehaviour
{
    private Animator animator;
    // Start is called before the first frame update
    void Start()
    {
        animator = GetComponent<Animator>();


    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            animator.SetBool("Jump",true);
        }
        
    }
}

这个只是例子代码.实际用的时候需要再加一下,判断落到地面再把这个bool的jump参数设置为false.

六、过渡的优化

  1. 合理设置过渡条件:过渡条件应该根据游戏的需求和逻辑进行合理设置。避免设置过于复杂的过渡条件,以免影响性能。同时,过渡条件应该具有明确的触发逻辑,以便在游戏中能够准确地控制动画的切换。
  2. 优化过渡时间:过渡时间应该根据动画的特点和游戏的需求进行合理设置。过长的过渡时间可能会导致动画切换不流畅,影响游戏体验;而过短的过渡时间可能会导致动画切换过于突然,也会影响游戏体验。可以通过调整过渡时间和过渡曲线来优化动画的切换效果。
  3. 减少过渡数量:过多的过渡可能会导致动画控制器变得复杂,影响性能。应该尽量减少过渡的数量,只在必要的情况下设置过渡。可以通过合并相似的动画状态或使用动画混合来减少过渡的数量。
  4. 测试和调试:在设置过渡后,应该进行充分的测试和调试,以确保动画的切换效果自然流畅。可以使用 Unity 的动画预览窗口和调试工具来检查过渡的触发条件、过渡时间和过渡曲线等属性,以便及时调整和优化过渡的效果。
Unity 2022.3引入了一些新的导航功能,以帮助开发者更方便地为游戏添加导航系统。新版本中的导航系统改进了性能和功能,使其更加强大和灵活。 首先,Unity 2022.3引入了实时路径搜索功能。该功能可以根据场景中的物体位置和碰撞体等信息,在实时场景中进行路径搜索。这意味着开发者可以在游戏运行时动态计算角色或其他游戏实体的路径。这一功能对于实时策略游戏或动态变化的游戏环境非常有用。 其次,新版本的导航系统还改进了自动化的对话框生成功能。开发者可以通过简单的设置,自动生成适应场景的对话框来实现导航指示。这个功能可以大大减轻开发者的负担,并提高游戏中导航的质量。 此外,Unity 2022.3还提供了更多的导航算法选项。不同的游戏场景可能需要不同的导航算法来平衡效率和精度。新版本中的导航系统提供了多种算法选项,让开发者能够根据具体需求选择合适的算法。 最后,Unity 2022.3导航系统的改进还包括了对2D游戏的支持。早期的导航系统主要面向3D游戏,但新版本中加入了对2D游戏的导航支持。这使得开发者能够更方便地为2D游戏创建导航系统,为玩家提供更好的游戏体验。 总的来说,Unity 2022.3版本的导航系统带来了更多强大和灵活的功能,包括实时路径搜索、自动对话框生成、多种导航算法选项以及对2D游戏的支持。这些新功能使得开发者在为游戏添加导航系统时更加便捷,为玩家提供更好的游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一然明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值