子状态机

角色有多个包含一系列步骤的复杂动作,这种现象非常常见。不是用单一状态处理整个动作,而是确定独立步骤并针对每个步骤使用单独的状态,这样做是有意义。例如,角色可能会有一组称为“花巧射击 (Trickshot)” 的动作,在该组动作中角色会蹲下来稳定瞄准、射击,然后再站起。


“花巧射击 (Trickshot)”动作中的状态顺序

尽管出于控制目的,这样非常有用,但不利之处是状态机会随着更多复杂动作的添加而变大、变笨拙。您可以用编辑器中的空白空间将状态进行直观分组,以简化一些事物。但 Mecanim 通过让您在状态机图表中将一组状态折叠成单一指定项,相比之前方法进一步简化。这些折叠的状态组称为子状态机 (Sub-state machines)

可右击“动画器控制器 (Animator Controller)” 窗口中的空白空间,然后从上下文菜单选择“创建子状态机 (Create Sub-State Machine)”,来创建一个子状态机。子状态机在编辑器中用细长的六边形表示,以与正常状态区分开来。


子状态机

双击六边形时,编辑器将清空,以便编辑子状态机(就像它本身是一个完全独立的状态机)。窗口顶部的条形将显示“浏览路径记录”,以指明当前正在编辑的子状态机(请注意,您可以在其他子状态机中创建子状态机,等等)。点击记录中的项目,会让编辑器以该特殊子状态机为重点。


"浏览路径记录"

外部转换

如上所述,子状态机只是将一组状态直观折叠进编辑器的一种方式,所以,当您在子状态机上进行转换时,必须选择希望连接的状态。


在“花巧射击 (Trickshot)” 子状态机中选择目标状态

您会注意到,子状态机中额外出现了一种状态,其名称以“可用 (Up)” 开头。


"可用 (Up)" 状态

可用 (Up) 状态代表“外部世界” - 在视图中围住子状态机的状态机。如果您向可用 (Up) 状态添加子状态机中的状态转换,系统会提示您选择一种要连接到的封闭机状态。


连接到封闭机中的一种状态

(返回 状态机 (State Machines) 简介

(返回 Mecanim 简介

Page last updated: 2013-06-24