使用动画重写控制器 (Animator Override Controller) 资源可以重写动画控制器 (Animator Controller) 中的动画剪辑,同时保留其状态机的结构、参数和逻辑。可以使用此技术创建同一动画控制器的许多变体。
例如,游戏具有不同的角色,例如妖精、食人魔和精灵。每个角色使用不同的动画剪辑进行空闲、转动和慢跑,但每个状态机的结构、参数和逻辑相同。在这种情况下,可以为所有角色创建一个基础动画控制器,并为每个角色创建一个动画重写控制器资源。
创建基础动画控制器的优点是只需修改一个动画控制器即可更改游戏内所有角色的游戏玩法逻辑、结构或参数。此外,如果要在游戏中添加新角色,只需创建一个额外的动画重写控制器资源。
在使用动画重写控制器资源之前,必须首先创建和定义动画控制器资源。这些步骤从已创建和定义的名为 NPC Animator 的动画控制器开始。
要用动画重写控制器扩展动画控制器,请执行以下操作:
转到资源 (Assets) > 创建 (Create) > 动画 (Animation) > 动画重写控制器 (Animator Override Controller) 以在项目 (Project) 窗口中创建新的动画重写控制器资源。还可以使用项目窗口中的创建按钮。
在项目窗口中,选择新的动画重写控制器资源以在检视视图 (Inspector) 窗口中显示其设置。
将动画重写控制器资源重命名为 Ogre Animator。
使用控制器 (Controller) 字段选择要重写的动画控制器资源。为此,请执行以下操作之一:
选择动画控制器资源并将其从项目窗口拖入控制器字段。
选择动画控制器选择器 (⊙),然后从显示的窗口中选择 NPC Animator Controller。
检视视图窗口会显示动画重写控制器以及一个两列的表格。第一列显示原始动画控制器中的动画剪辑。第二列显示重写剪辑。默认情况下,每个重写动画剪辑与原始动画剪辑相同。
使用重写 (Override) 列中的字段为每个原始动画剪辑选择一个重写动画剪辑。例如,NPC Animator 控制器中的原始动画剪辑被 Ogre 版本重写。
在状态机中,可以使用秒或标准化时间来设置过渡退出时间。使用动画重写控制器时,请确保过渡退出时间为标准化时间。
如果指定的重写剪辑短于过渡退出时间,则退出时间可能会被忽略(以秒为单位)。当退出时间使用标准化时间时,剪辑将根据状态机定义的比例退出。
要将动画重写控制器资源分配给游戏对象,请执行以下步骤:
在层级视图 (Hierarchy) 窗口中,选择将使用动画重写控制器的游戏对象。
在检视视图窗口中,找到与所选游戏对象关联的游戏控制器组件。
在游戏控制器组件中,选择 Ogre Animator 作为其游戏控制器。
在此示例中,名为 Ogre Animator 的动画重写控制器资源与名为 NPC Animator 的原始动画控制器使用相同的逻辑、过渡和混合,但播放 Ogre Animator 重写控制器资源中指定的动画剪辑。