随笔
主页
  • Unity
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
  • 数据库

    • Redis
  • Html 文档
  • CSS 文档
  • Vue 文档
  • TypeScript
  • Golang
  • 版本控制

    • Git 文档
    • Svn 文档
  • 技术文档

    • Markdown语法
    • GitHub技巧
    • Nodejs
  • 分类
  • 标签
  • 时间线
  • 目录结构
  • 配置和约定
  • 主题配置
  • 首页配置
  • front matter
  • 目录页配置
  • 摘要
  • 主题颜色
  • 评论栏
  • Markdown扩展
GitHub
主页
  • Unity
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
  • 数据库

    • Redis
  • Html 文档
  • CSS 文档
  • Vue 文档
  • TypeScript
  • Golang
  • 版本控制

    • Git 文档
    • Svn 文档
  • 技术文档

    • Markdown语法
    • GitHub技巧
    • Nodejs
  • 分类
  • 标签
  • 时间线
  • 目录结构
  • 配置和约定
  • 主题配置
  • 首页配置
  • front matter
  • 目录页配置
  • 摘要
  • 主题颜色
  • 评论栏
  • Markdown扩展
GitHub
  • 基础

  • 资源导入

  • 2D

  • Physical2D

  • UGUI

  • Animation

  • Animator

    • Animator 概述
    • Animator组件
    • Animation Clips
    • Animator Controllers
    • Animator窗口
    • 动画状态机
    • Blend Tree
    • Animator Override Controller
  • Unity
  • Animator
dong
2021-01-16

Animator Override Controller

# Animator Override Controller

Animator Override Controller 是一种资源,它可让您扩展现有 Animator Controller,从而替换使用的特定动画但保留其原始结构、参数和逻辑。

因此,您可以创建同一个基本状态机的多个变体,但是每个变体使用不同的动画集。例如,您的游戏可能有各种各样的 NPC 类角色生活在世界上,但每种类型(小妖精、恶魔、小精灵等)都有自己独特的行走、空闲、坐定等动画。

通过创建一个包含所有 NPC 类型角色逻辑的“基础”Animator Controller,即可为每种角色类型创建一个重写,并放入各自的动画文件。

以下是一个用于演示的典型Animator Controller资源:

这代表一个Animator Controller,其中包含一个简单状态机,由混合树控制四个方向的动画,还有一个空闲动画,如下所示:

为了扩展此通用 NPC 状态机来使用仅适用于(比如)恶魔型角色的独特动画,您可以创建一个Animator Override Controller,并放入恶魔的动画剪辑以替换原始动画剪辑。恶魔可能有不同的空闲和四处游走方式,可能采取更缓慢、更狂暴和更有力的动作。但是,通过使用Animator Override Controller,如何在运动状态之间进行过渡和混合的基本逻辑可被具有不同动画集的不同角色所共享,从而减少构建和修改状态机本身所需的工作量。

要创建新的Animator Override Controller,请使用 Assets > Create 菜单,或 Project 视图中的 Create 按钮,然后选择 Animator Override Controller。

Animator Override Controller具有与Animator Controller非常相似的图标,不同之处在于它在图标角上带有“加号”而不是“播放”符号:

在检视面板中选择新的 Animator Override Controller 时,最初会处于未分配状态,如下所示:

要开始使用Override Controller,必须将原始控制器资源分配给检视面板中的新Override Controller。完成此操作后,原始控制器中使用的所有动画将在 Override Controller 的检视面板中显示为列表:

然后,您可以分配新动画剪辑以重写原始剪辑。在此示例中,已使用动画的“恶魔”(Ogre) 版本重写所有剪辑。

现在,此 Override Controller 可在Ogre角色的游戏对象的 Animator 组件中使用,就像它是 Animator Controller 一样。它将使用与原始 Animator Controller 相同的逻辑,但播放的是分配的新动画而不是原始动画。

Blend Tree

← Blend Tree

Theme by Vdoing | Copyright © 2021-2023 Evan Dong MIT License | 粤ICP备2021052092号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×