Animator动画状态机

本文详细介绍了有限状态机的概念及其在游戏开发中的应用,特别是Unity中的Animator动画状态机。从创建、参数配置、动画添加到切换条件设定等方面进行了深入讲解,包括如何通过 Animator 组件和API控制动画状态的切换,并提供了创建序列帧动画的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、有限状态机

有限状态机(Finite - state machine, FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型

有限:表示是有限度的不是无限的
状态:指所拥有的所有状态

举例说明:
假设我们人会做很多个动作,也就是有很多种状态
这些状态包括 站立、走路、跑步、攻击、防守、睡觉等等
我们每天都会在这些状态中切换,而且这些状态虽然多但是是有限的
当达到某种条件时,我们就会在这些状态中进行切换
而且这种切换时随时可能发生的

游戏开发中有很多功能系统都是有限状态机
最典型的状态机系统

  • 动作系统 —— 当满足某个条件切换一个动作,且动作是有限的
  • AI(人工智能)系统 —— 当满足某个条件切换一个状态,且状态时有限的

2、简单的状态机实现

//最简单的状态机实现代码就是基于switch的实现

//假设我们只有一个值来控制当前玩家的状态
string animName = "idle";
switch (animName)
{
    case "idle":
        //待机动作逻辑
        break;
    case "move":
        //移动动作逻辑
        break;
    case "run":
        //跑步动作逻辑
        break;
    case "atk":
        //攻击动作逻辑
        break;
}

3、创建动画状态机

两种方法:

  • 通过为场景中物体创建动画时自动创建
  • 手动创建动画状态机文件

4、动画状态机窗口参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值