动画状态机(1)

在游戏中一个角色往往拥有多个动画,比如在空闲状态时微微喘息,在接受指令后开始走动或者从高空处坠落时举起双手,通过脚本控制这些动画状态的切换和过度通常是一项非常重要的复杂工作,Mecanim系统就借用了计算机科学中的状态机概念来简化对角色动画的控制

 

1.状态机基础

 

状态机的基本思想是使角色在某一给定时刻进行一个特定的动作,动作类型可因游戏类型的不同而不同,通用的动作包含空闲,走路,跑步和跳跃等,其中每一个动作称为一种状态(States),一般来说,角色从一个状态立即切换到另外一个状态时需要一些一定的限制条件的,比如角色状态只能从跑步状态切换到跳跃状态,而不能直接静止状态切换到跑跳状态,上述的限制条件被称为状态过度条件(States transition)。总之 状态集合,状态过度条件以及记录当前状态的变量放在一起,就组成了一个最简单的状态机。

 

状态以及过度条件可以通过图示来表达,其中的节点表示状态,节点间的箭头表示状态的过度,状态机对于动画的重要意义在用于可以通过很少的代码对状态机记性设计和升级,从而让动画师方便的定义动作顺序,而不必关心底层代码的实现。

 

2.Mecanim状态机

 

Mecanim动画状态机提供了一种纵览角色所有动画片段的方法,并且准许通过游戏中的各种组件(例如用户输入)来触发不同的动画效果,动画状态机可以通过animator controller试图来创建,一般而言,动画状态机包含动画状态,动画过度和动画事件,而复杂的状态机还有简单的子状态机。

 

 

3.animation States(动画状态)

 

Animation stares是动画状态机中的基本组件模型,每个动画状态含有一个单独的动画序列(或者混合数),当某一游戏事件就触发了一个动画状态中,当在animator controller中选择了一个动画状态时,就能在inspector面板中查看到他的属性,其中:

Speed:动画的速度

Motion:当前状态下的动画片段

Foot 1K:是否使用foot 1K

Transitions:由当前状态发出的过度条件列表

 

以黄色显示的是动画状态机中默认的状态,它是指状态机被首次激活所进入的状态,可以再其他的状态上右击并选择set as default来改变默认的状态,每个状态右侧的solomute选择框用于控制动画在预览时的行为表现。

 

为了添加新的动画状态,可以在animator controller试图的空白处右击create-States-empty,此外,也可以将一段动画拖入到animator controller视图中,从而创建一个包含该动画片段的动画状态。

 

 

4.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Unity动画状态机是一种用于控制游戏对象动画行为的工具。它基于状态机的概念,通过定义不同的状态状态之间的转换来实现动画的播放和切换。 在Unity,可以通过以下步骤来实现动画状态机: 1. 创建动画状态机:在Unity编辑器,可以创建一个Animator Controller(动画控制器)作为动画状态机的容器。可以通过右键点击Assets面板,选择Create -> Animator Controller来创建。 2. 添加动画状态:在Animator Controller,可以添加多个动画状态。每个动画状态代表一个特定的动画片段或动画行为。可以通过拖拽动画片段或者创建新的动画状态来添加。 3. 设置状态之间的转换:在Animator Controller,可以设置不同状态之间的转换条件。转换条件可以是触发器、布尔值、整数等。当满足转换条件时,Animator会自动切换到下一个状态。 4. 添加过渡动画:在状态之间的转换过程,可以添加过渡动画来实现平滑的过渡效果。可以设置过渡动画的淡入淡出时间、过渡曲线等参数。 5. 控制动画播放:通过代码或者其他方式,可以控制Animator组件的参数来触发状态之间的转换和动画的播放。例如,可以使用Animator.SetTrigger()方法来触发转换条件。 总结一下,Unity动画状态机通过定义不同的状态状态之间的转换来实现动画的播放和切换。它是一种强大的工具,可以帮助开发者实现复杂的动画逻辑和交互效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值