Animator Controller 继承关系

时间:2024-01-07 15:33:26

准备知识

对于Animator Controller中蜘蛛网一样的几十条连线,后续如果靠人工维护,那成本将是很大。

AnimatorOverrideController组件的文档:https://docs.unity3d.com/Manual/AnimatorOverrideController.html

从文档中的意思可知,Animator Controller的参数及动画拓扑关系(状态机)是可以继承的

使用情景

比如:游戏中的部分NPC动作切换逻辑,及动作参数是一样的,但他们播放的具体的动作可能是不一样的。那要如何利用Animator Controller去组织呢?

1.创建一个Animator Ctroller作为base,里面包括动作切换逻辑,及参数

2. 特定的NPC继承Base有相同的逻辑,但播放不同的动作。

使用示例

1. 创建一个Animator Cotroller Base,里面组织好动画的状态机,及转换参数

Animator Controller 继承关系

图:NPCBase_Animation_Controller.controller

2.创建一个Animator Override Controller,在Controller中赋值

Animator Controller 继承关系

图:NPC1_Animator_Override_Controller.overrideController

3. 为NPC1添加新的Animaclip

Animator Controller 继承关系

图:添加新的AnimaClip就会override 父类的AnimaClip

4. 为Npc1的Animator使用override的Ctroller,就可以正常播放动作了。

Animator Controller 继承关系

图:override 父类的AnimaClip