[官方培训]08-UE动画基础 戴浩军 Epic 笔记

2023-11-27 05:20

本文主要是介绍[官方培训]08-UE动画基础 戴浩军 Epic 笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

UE动画基础

UE动画概述

  • UE动画功能强大,复杂,灵活
  • 不同类型项目对动画系统应用范围各不相同
  • “动画”作为一个宽泛概念,在引擎中有多种实现方式,需要灵活选择

影视CG相关常见动画种类浏览

  • 骨骼网格体动画(动画序列,变形目标,动画曲线,Pose Asset)
  • 物理动画(刚体,布料,破碎,实时毛发模拟)
  • 顶点动画缓存
  • 顶点材质动画(世界顶点偏移)
  • 毛发Groom Cache动画
  • 时间轴动画(Sequencer动画)
  • 时间轴相机动画
  • 时间轴控制绑定动画
骨骼网格体动画

骨骼动画就是用骨骼位置和蒙皮信息带动骨骼网格体的模型顶点位置,从而实现模型的动画效果。

动画序列

动画序列是骨骼动画系统中常见的动画资产类型,通常个用来表现角色肢体的动画。

变形目标

变形目标对应的就是Maya中的BlendShape,是通过在不同的模型顶点形态之间进行插值,结合动画曲线,来实现形变动画。通常用来表现角色身体和面部的肌肉的变形动画。

动画曲线

动画曲线是指在动画序列中通过改变某些属性来实现多种动画数据统一变化的一种方式。

曲线有三种类型:

  • 目标变形曲线 专用于驱动目标变形的数值,基于骨骼网格体资产。
  • 属性曲线 是一种通用曲线,可以在动画蓝图中实时读取曲线当前数值,理论上可以用来驱动任何数据,基于骨骼资产。
  • 材质曲线 用于驱动骨骼网格指定的材质中具有相同名称的材质参数,基于骨骼资产。实际上材质曲线是专用的属性曲线,可以在编辑器中随时切换。可以在DCC中预先添加所需要的属性,并在时间轴上设置关键帧来制作好属性曲线,通过FBX格式导入UE。
姿势资产(Pose Asset)

可以将包含多种曲线的动画序列逐帧转换为一组pose,通过在动画蓝图中输入数据的方式来驱动pose,实现基于曲线的综合动画效果。目前主要用于驱动角色面部动画。

物理动画

通过实时的物理模拟来实现刚体,布料,破碎,毛发等实时物理模拟动画效果。

顶点动画缓存

本质上就是在DCC软件的时间轴上,记录模型每个顶点的唯一动画信息。导出例如为alembic格式,再导入虚幻引擎。作为几何缓存或骨骼动画的变形目标进行实时播放。

顶点材质动画

顶点材质动画指的是通过材质中的世界位置偏移节点,配合UV信息的变化来表现植被,水面,环境和布料等动态规律明显的几何形变动画效果。

毛发Groom Cache动画

可以将外部预解算的Groom毛发动画,通入abc格式导入引擎中。

时间轴动画(Sequencer动画)

Sequencer动画是指在虚幻引擎的Sequencer编辑器中,通过直接修改场景对象属性,尤其是transform属性而生成的动画效果。还可以在DCC软件中制作好,再通过FBX格式导入。

时间轴相机动画

时间轴相机动画是Sequencer动画的一种。相机动画还可以将其特有的焦距,光圈等相机专用参数导入到引擎。

时间轴控制绑定动画

现在可以导入外部的DCC软件中的动画数据。

骨骼动画功能与特性

CG项目相关

  • DCC动画制作要求

虚幻引擎对DCC中骨骼网格和骨骼动画导入数据的兼容性很强,只要是在各内软件中具有蒙皮信息的物体,通过FBX格式导出后都能导入骨骼网格体和骨架。角色模型蒙皮的对象可以是符合虚幻标准的骨架,也可以是任意其它骨架。甚至在Max等软件中可以不用骨骼而是直接蒙皮到其它几何体上。都可以作为骨骼网格体导入引擎。

唯一要注意的要求是同一套骨架内的骨骼名称不能相同,否则导入引擎会报错。

  • 动画导入/导出

骨骼动画如何从DCC软件中导出并导入UE?

以Maya为例,我们选中几何体和骨骼导出为FBX格式,在导出设置中我们只需要勾选动画导出就得到了最基本的包含模型骨骼和动画的fbx文件。然后在虚幻引擎fbx导入器中确保勾选导入动画,就可以完成模型,骨骼和动画数据的最基本的导入。
在这里插入图片描述
在这里插入图片描述

动画数据导入导出的注意点

  1. 系统单位的问题

对于影视CG项目而言,推荐的做法是一开始就把系统单位设置为厘米。

模型尺寸或动画距离都基于厘米来测量。尽量不要在制作过程中修改系统单位,这样在导入引擎后既可以保证骨骼没有缩放又能够保证动画位移数据尽可能一致。要杜绝因为系统单位而引起的骨骼缩放,这样的话即使在引擎中手动弥补也会带来其它问题。
在这里插入图片描述

  1. 动画导入范围

比如我们在Maya中有一段动画时间轴上的播放范围是1-30帧,但是有关键帧的范围只有1-15帧。此时导出动画,并在导入引擎时动画长度的选项是默认的导出时间。那么最终导入的动画序列长度就是30帧,其中只有15帧有动画数据。

此时把动画长度选项改为带动画的时间,重新导入动画,动画序列的长度就变成了15帧,通过这个方式可以确保动画数据的精简。
在这里插入图片描述

引擎导出到外部DCC

在引擎中选中动画序列导出为FBX格式,并在Maya中用fbx导入器导入即可,记得在导入设置中选择Unreal Take这个动画轨道。引擎中的强制锁定跟骨骼等效果在导出后还原成了位移动画。通过这个方式可以最大程度保留原始动画数据。
在这里插入图片描述

  • 动画重定向

将针对某个角色制作的动画数据适配给另一个角色。

  • Live Link

Live Link是虚幻引擎的动画插件,可以用于从Maya中将动画数据实时传输到虚幻引擎。也可以通过移动设备进行面部实时动捕。

  • 引擎内修改或创作动画

控制绑定(Control Rig)是虚幻引擎推出的实时绑定系统,结合动画模式可以让我们直接在引擎编辑器中创作骨骼动画。

CG中的动画环节

如何确保骨骼动画数据保真度

骨骼动画数据从DCC到UE失真的因素:

  • Maya关节方向导致的数据显示差异
  • 坐标系转换导致精度的误差
  • 帧率差异导致动画长度不同
  • Maya数据显示精度
  • Maya动画曲线信息无法导出到UE,导致帧之间插值方式有差异
  • Maya双精度浮点数和UE动画数据但精度浮点数的差异
  • 动画压缩导致高频信息丢失
  • 插值方式会改变动画形态

下面通过一个案例来具体说明

案例地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最佳实践:

  • Maya系统单位设置为厘米,项目中不再修改
  • Maya设置Z-up
  • 显示Maya数值小数点后6位
  • Maya中避免帧率缩放,一旦缩放需要手动调整关键帧位置
  • Maya从0帧开始制作动画,导出动画FBX时帧数范围保持0到最后一帧
  • UE中导入动画时选择“导出的时间”,手动设置导入动画数据的时长
  • UE中导入动画时选择和Maya中相同的采样率,并针对精度要求高的动画提高帧率和采样率
  • 避免因为距离过远的动画和幅度过小的动画数值(例如角色离世界中心很远,或者做一个尺寸很小的动画,在引擎中放大使用等)
  • 高频动画关闭动画压缩,并根据需要修改帧过渡方式

如何选择动画实现方式

在这里插入图片描述

在这里插入图片描述

如何通过动画环节的快速迭代最大化实时流程的价值

  • 通过原型+迭代的方式并行推进动画制作

在这里插入图片描述

  • 通过Live Link实时预览引擎内效果

在这里插入图片描述

  • 引擎内修改和创作动画

通过控制绑定(Control Rig)和动画模式直接引擎内修改。

  • 引擎内实时动作捕捉

在这里插入图片描述

动画案例简析

Meerkat Demo(狐獴)案例工程动画技术分析

  • 动画方法分析和相关注意事项介绍
  • 把角色部件封装为蓝图
  • 狐獴肢体骨骼动画和表情变形目标动画
  • Live Link应用
  • 基于Control Rig和动画模式的引擎内创作动画

Slay Animation Sample案例工程动画技术分析

  • 按镜头划分动画序列资产的管理方式
  • 在角色蓝图中协同动画播放
  • Sequencer时间轴动画和骨骼动画结合应用
  • Addtive表情动画和肢体动画结合应用
  • 实时布料物理模拟动画的应用

参考资料汇总

参考资料索引

  • 动画|虚幻引擎-Unreal Engine

  • 动画系统概述|虚幻引擎文档

  • 在虚幻引擎中为角色和对象添加动画|虚幻引擎5.0

  • 用虚拟制片做动画

  • 初识动画-Unreal Engine

官方案例工程

  • Content Example
  • Meerkat Demo
  • Slay Animation Sample
  • Metahumans
  • Face AR Sample
  • Valley of the Ancient

在这里插入图片描述

学习地址

地址

这篇关于[官方培训]08-UE动画基础 戴浩军 Epic 笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/427116

相关文章

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

使用WPF实现窗口抖动动画效果

《使用WPF实现窗口抖动动画效果》在用户界面设计中,适当的动画反馈可以提升用户体验,尤其是在错误提示、操作失败等场景下,窗口抖动作为一种常见且直观的视觉反馈方式,常用于提醒用户注意当前状态,本文将详细... 目录前言实现思路概述核心代码实现1、 获取目标窗口2、初始化基础位置值3、创建抖动动画4、动画完成后

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin