Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【100个 Unity实用技能】☀️ | Unity 复用动画控制器 Animator Override Controller 的简单使用

【100个 Unity实用技能】☀️ | Unity 复用动画控制器 Animator Override Controller 的简单使用

作者头像
呆呆敲代码的小Y
发布于 2022-11-18 08:21:31
发布于 2022-11-18 08:21:31
2.1K00
代码可运行
举报
运行总次数:0
代码可运行

Unity 实用小技能学习

Unity 复用动画控制器 Animator override controller 的简单使用

本篇文章介绍一下Unity中的 复用动画控制器: Animator Override Controller

Animator Override Controller 是用来配合Animator Controller使用的,它让Animator Controller变得更加实用,可以让不同的使用实例的在同一状态播放不同的动作,但保留原有的结构、参数和逻辑。

Animator Override Controller 官方API介绍地址:

https://docs.unity3d.com/ScriptReference/AnimatorOverrideController.html

具体使用事例:

新建一个Animator Override ControllerAnimator Controller,右键Create即可。

Animator Override Controller有一个小的加号‘+’,可以看到与Animator Controller有所区别。

我们在 Animator Controller 中添加几个动画片段,如 Idle 与 Move。

此时可以通过新建多个AnimatorOverrideController来添加使用同一个Animator Controller,但是使用不同的动画片段来控制角色进行播放不同的动画了。

这样我们就可以在几个不同的角色身上挂载同一个AnimatorController,然后通过更换Animator Override Controller控制不同动画片段的播放了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//通过代码更换AnimatorController的Animator Override Controller
animator.runtimeAnimatorController = animatorOverrideController;

前提是这几个不同的角色的几个动画状态应该是一致的,比如都有走路、攻击、奔跑的状态,且不同片段之间的转换条件都是一样的。

在不使用 Animator Override Controller 的情况下,我们通常的做法是一人一个 AnimatorController 来完成不同动画片段切换。

再比如在FPS游戏中,我们在有多个枪支的情况下,也可以只使用一个AnimatorController,通过添加多个Animator Override Controller来实现开枪、换弹等动画片段的转换。

优点

  1. 使用的是同一份Animator Controller的转换逻辑,要修改的话非常方便,只要改一个地方就够了。
  2. Animator Override Controller 的文件大小比Animator Controller小很多,毕竟它只存储了状态对应的播放动画,而没记录其他转换、事件之类的各种信息。
  3. 在开发过程中发现,在RunTime中实时切换Animator Override Controller是可以实现的,但是实时切换 AnimatorController 只能再Editor中才可以,打包程序会报错,所以这也是使用Animator Override Controller的一个必要条件。当然如果不需要在运行过程中切换某个对象的动画控制器,那就使用AnimatorController就好啦 !

不足:优点1同时也是它的缺点,因为只能够定制播放的动画,所以如果想要在其他设置中也想要单独特化的话,就做不到了。

本篇文章就到这里啦,简单介绍一下 Animator Override Controller 的使用方法就好了,一般不是很常用。

后面有需要的话会再对 Animator Override Controller 进行一个详细的介绍。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/11/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Unity动画☀️一、通过 StringToHash ,控制Animator
并对他身上的Animator进行配置,方便我们使用代码,控制Animator,从而控制这个人物做出各种动作。
星河造梦坊官方
2024/08/14
2950
Unity动画☀️一、通过 StringToHash ,控制Animator
VR中的动画就是这么玩哒
导读 大家是不是觉得VR中的动画特别神奇,其实它是基于Unity中的动画系统Mecanim实现的,Unity在5.0之后,Mecanim动画控制越来越强大好用,小白甚至可以在稍微看下demo后,就可以构建自己的动画需求。本篇介绍通过Mecanim构建动画的整体流程,通过实例,对构建的各个部分进行介绍,其中穿插作者对部分参数或设置的理解。 好了,咱们愉快的开始吧。 文章中会涉及到一些常用术语,大家可以在“术语列表”中查看,其中涉及的主要术语有:视频片段Animation Clip阿凡达Avatar重定向Re
腾讯移动品质中心TMQ
2018/02/08
1.5K0
VR中的动画就是这么玩哒
Unity的动画系统
Unity的动画系统是一个功能强大且复杂的系统,通常被称为“Mecanim”。它为Unity中的所有元素(包括对象、角色和属性)提供简单的工作流程和动画设置。该系统支持导入的动画剪辑以及在Unity内创建的动画,并且具有人形动画重定向功能,能够将动画从一个角色模型应用到另一个角色模型。
用户11315985
2024/10/16
3750
Unity的动画系统
Unity3D动画控制器的用法
会自动生成一个状态,并将entry连接到walk,表示walk为初始动作。 可以用同样的方式将需要用到的动画拖入,也可以在Animator窗口中 右键->Create State->Empty,生成一个空状态,在右侧窗口,点击Motion右边的圆圈,在弹出窗口选择所需动画片段:
梦飞
2022/06/23
6230
Unity3D动画控制器的用法
Unity基础(23)-动画系统
分为旧版动画系统和新版动画(Mecanim)系统即Animation 与 Animator
孙寅
2020/06/02
2.1K0
Unity基础(23)-动画系统
Unity3D--Mecanim动画系统(一)
分为旧版动画系统和新版动画(Mecanim)系统即Animation 与 Animator
孙寅
2020/06/02
1.8K0
100天教程:在Unity中为敌人创造AI动作
译者:刘鸿(lewis2012) 审校:王玥亭(玥亭) 这里是虚拟现实100天的第12天。昨天,我们研究了rigs模型和Unity的mecanim系统(我应该学但在 Survival Shooter 教程中忽略了...) 今天,我们将在创建animator控制器后继续下去。 我们将创建导航组件给我们的Knight Enemy来追逐和攻击玩家。正如你可能记得的那样,Unity为我们提供了一个AI pathfinder(人工智能寻路器) ,可以让我们的游戏对象朝着一个方向移动,同时避开障碍物。 将敌人向玩家移动
企鹅号小编
2018/01/26
2.1K0
[Unity3D]Unity4全新的动画系统Mecanim
Unity4.X添加一个新的动画系统,以取代原有的3.X旧的动画系统,全新的动画系统Mecanim是官方推荐,它使我们能够写更少的代码实现连续动画。
全栈程序员站长
2022/07/14
8820
[Unity3D]Unity4全新的动画系统Mecanim
Unity动画系统
Animator 1.Animator Controller 2.Avator对角色中骨骼进行分析识别,并与Mecanim中骨骼进行对比。
祝你万事顺利
2019/05/29
1.3K0
Unity开发-Mecanim动画系统(三)
补充: inspector有一个debug模式,你在debug模式下修改一下Animation Type为0 就可以了 Unity有两套Animation系统,一套是legacy,一套是Mecanim。 Debug模式下的Animation Type 0表示Mecanim,可以用于animator;1表示Legacy,用于animation组件。
孙寅
2020/06/02
9380
Unity Metaverse(二)、Mixamo & Animator 混合树与动画融合
例如我们想为Avatar角色添加一个Idle动画,在Search搜索栏中进行检索:
CoderZ
2022/08/29
1.4K0
Unity Metaverse(二)、Mixamo & Animator 混合树与动画融合
Unity3D--Mecanim动画系统(三)-动画层Layers
其实在新版的动画状态机中,大量的技巧已经让一般的小白晕头转向了。而且就目前来说:使用状态机的单一层动画就已经可以满足日常开发需要。那么为什么出现层的概念呢? 先来几张图,对比一下,你就会发现哪里好
孙寅
2020/06/02
9410
Unity TimeLine丨A3.END-添加跨越墙壁时候的过场动画、Camera Depth
    TimeLine不是指一个制作好的mp4动画片,而是指可设置的运动、Camera、音乐等的集合,运行项目时会运行TimeLine显示我们想要的效果
星河造梦坊官方
2024/08/14
1480
Unity TimeLine丨A3.END-添加跨越墙壁时候的过场动画、Camera Depth
一、事件函数的执行顺序(脚本的生命周期)
上图概括了unity如何在脚本的生命周期内对事件函数进行排序以及重复执行这些事件函数。
酱紫安
2020/07/20
2.8K0
开发游戏时如何操控 游戏打击感?利用好Feel插件可快速提升游戏感
说简单点就是Feel 插件 可以让我们的游戏增加游戏感,所以我们才要来学习Feel的使用啦!
呆呆敲代码的小Y
2023/03/09
1.8K0
开发游戏时如何操控 游戏打击感?利用好Feel插件可快速提升游戏感
Unity-BattleStar丨11. 且听风吟:音乐与音效
Assets新建Resources文件夹,将音乐放入其中,代码使用Resources.Load方法,动态更换Audio Clip
星河造梦坊官方
2024/08/14
1210
Unity-BattleStar丨11. 且听风吟:音乐与音效
Unity动画☀️8. 添加角色控制器、Curves、添加滑动
添加角色控制器Character Controller后,人物不会因动画问题而导致Y轴变化,人物会始终位于水平地面上
星河造梦坊官方
2024/08/14
1420
Unity动画☀️8. 添加角色控制器、Curves、添加滑动
Unity动画☀️五、分割、播放动画、控制模型位移
Animator组件控制状态机,状态机控制动画Animation Clips,Animator组件可搜索添加,也可设置为Generic、Humanoid时自动添加
星河造梦坊官方
2024/08/14
3020
Unity动画☀️五、分割、播放动画、控制模型位移
为虚幻引擎开发者准备的Unity指南
游戏开发小Y
2024/01/18
6780
为虚幻引擎开发者准备的Unity指南
Unity Demo教程系列——Unity塔防游戏(六)动画(Lively Enemies)
本文重点内容: 1、记录动画 2、创建可以玩的敌人动画 3、混合动画 4、使用已有的模型和动画
放牛的星星
2020/12/11
2.4K0
Unity Demo教程系列——Unity塔防游戏(六)动画(Lively Enemies)
相关推荐
Unity动画☀️一、通过 StringToHash ,控制Animator
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验