[官方培训]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

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Mybatis官方生成器的使用方式

《Mybatis官方生成器的使用方式》本文详细介绍了MyBatisGenerator(MBG)的使用方法,通过实际代码示例展示了如何配置Maven插件来自动化生成MyBatis项目所需的实体类、Map... 目录1. MyBATis Generator 简介2. MyBatis Generator 的功能3

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主

Qt QWidget实现图片旋转动画

《QtQWidget实现图片旋转动画》这篇文章主要为大家详细介绍了如何使用了Qt和QWidget实现图片旋转动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、效果展示二、源码分享本例程通过QGraphicsView实现svg格式图片旋转。.hpjavascript

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学