Animator

2D 与 3D 动画在同一个舞台上:图层与关键帧、一个曲线编辑器、镜头、自动绑定、特效和一个合成器。

一句话概括#

一个 After-Effects 造型的工作室,在同一条时间轴上为 2D 和 3D 做动画,配有一个用于曲线的图形编辑器和一个用于收尾的合成器。

布局#

Animator:工具、舞台、带六个标签页的时间轴,以及场景设置

菜单栏File · Edit · Image · Filters · Tools · Window · Config · Plugins
工具栏文件操作、变换工具、形状、播放控制、当前时间与总时长、帧率、2D/3D 切换、视图分割和缩放
左侧Tools:VFX Builder、Procedural Shape、对象列表、CreateAuto-Rig,以及 View / 3D layers / Add special 各部分
中间舞台,进入 3D 时会带一个 3D 轴向控制器
底部时间轴,藏在六个标签页后面
右侧Scene settings
状态栏当前帧、当前时间与总时长、行数

时间轴的六个标签页#

Shots组成整部作品的镜头序列
Timeline随时间排列的图层和关键帧:默认视图
Graph同一批关键帧,以可编辑曲线的形式呈现:缓动真正发生的地方
Audio配乐,以及与它的同步
Color Grading调色
Compositor分层与效果

你在这里做什么#

先把场景设置好#

右侧的 Scene settings 面板是应该在开始做动画之前就处理好的事,而不是之后:

  • Canvas size(画布尺寸):自由设置,或者从 32×32 到 1080×1920 的预设。
  • Frame rate(帧率):12、15、24、30 或 60。
  • Duration(时长):以秒为单位,下面会写清对应的帧数(150 frames at 30 fps),并提供从 1 秒到 60 秒的预设。
  • Background colour(背景色)

在打完关键帧之后再改帧率,会让每一个关键帧相对时钟发生偏移。所以要先选好帧率。

添加内容#

Create 会放置形状、文字、图片和 3D 基本体。对象也可以来自其他工作室:一幅 Vectra 绘图、一个像素精灵、来自 3D 流水线的一个 mesh。Auto-Rig 会自动为一个角色搭建绑定,这是得到一个可摆姿势对象的最快路径。

做动画#

时间轴,带有图层行、动画事件轨道和帧标尺

图层承载对象;关键帧承载数值。加一个关键帧,移动播放头,改变数值,中间过程就会自动生成。Animation events(动画事件) 在图层上方拥有自己的轨道,正是它们会在某一个精确的帧触发一段声音、一次粒子爆发,或者一个脚本钩子。

洋葱皮开关在工具栏上(在命令面板里也能找到,Toggle onion skinning)。

塑造运动#

Graph 标签页是一段动画不再显得机械的地方。每一个关键帧都会变成一条带手柄的曲线上的一个点;缓动,就是你对那些手柄所做的事。

在 3D 中工作#

工具栏上的 2D/3D 切换改变的是舞台,而不是整个项目。场景设置随之也会覆盖灯光(环境光、主光、补光,以及带镜面 IBL 的 HDRI 环境)、雾效,以及摄像机(视场角、近平面和远平面)。Cam Key 为摄像机打关键帧;Morph Key 在不同形态之间为一个形状打关键帧。

特效#

VFX Builder 负责组装效果,VFX 片段和其他任何片段一样,存在于时间轴上。Procedural Shape 从参数生成几何体,而不是靠手绘。

右侧面板,十四个标签页#

右侧面板,停在 Scene Settings 上

右侧的面板不是一个检查器,而是十四个:

标签页
Scene Settings画布、帧率、时长、背景、3D 场景、灯光、雾效、摄像机
Props选中对象的属性
Params一个程序化对象暴露出的参数
Keys关键帧设置
Brush绘图工具的设置
FX应用在选区上的修改器
Post FX后期处理堆栈
VFX效果堆栈
Assets场景正在引用的内容
SegmentAI 分割:见下文
Edge针对该分割结果的边缘精修
Skinning把一个 mesh 绑定到一套绑定系统上
Pipeline这个镜头在整个生产流程中所处的位置
Inputs输入绑定

工具栏#

二十一种工具,分成四类。

Animator 工具栏:变换工具、绘图工具、形状,然后是播放控制和 2D/3D 切换

分类工具
Transformselect · move · rotate · scale
Riggingbone
Drawingpaint · eraser · fill · pen · bezier · spline · text
Shapesrectangle · ellipse · polygon · star · line
Stagekeyframe · canvas · nodes · split

2D/3D 切换也在这里,还带一个 Mixed(混合) 模式,可以在同一个视口里同时显示 2D 和 3D 图层,而不必二选一。

塑造运动#

Timeline 标签页说的是什么时候Graph 标签页说的是怎么变化。每一个关键帧都是一条带手柄曲线上的一个点,两个关键帧之间的插值方式共有九种:

linear · hold · step · easeIn · easeOut · easeInOut · bounce · elastic · spring

最后三种不是 CSS 意义上的缓动,它们会有过冲,正是这一点让一次停止读起来有重量感,而不只是一次到达。

修改器,FX 标签页#

四十个修改器,按对象各自堆叠,可重新排序,每一个都能单独开关而不必删除。六个类别:

类别
Visual(9 个)glow · blur · outline · drop shadow · colour adjust · gradient map · vignette · chromatic aberration · colour grading
Distortion(10 个)noise · wave · turbulence · pixelate · distort · liquify · ripple · displacement · spherize · swirl
Temporal(6 个)pulse · shimmer · trail · afterimage · motion blur · echo
Transform(7 个)shake · jitter · bounce · wiggle · spring · elastic · gravity
Composite(4 个)mask · blend · clamp · clip
Generative(3 个)fractal noise · cell pattern · gradient fill

TemporalTransform 这两类是会自己动起来的:一个摆动或一道拖尾,是不需要你打关键帧的运动。

Post FX(后期特效)#

一套作用于整个舞台的屏幕空间特效堆栈,带七个预设可以作为起点: cleancinematicCRTneonglitchdreamystudio

分组
Normal-map lighting角度、仰角、灯光颜色、环境光、镜面反射、光泽度、强度
Screen effectschromatic aberration · vignette · 带密度的 scanlines · film grain · glitch
Bloom强度、阈值、半径
Gradingcurves、exposure、contrast、saturation、temperature、tint、hue、lift/gamma/gain
Stylizesharpen · posterize · pixelate

面板会告诉你两件容易被忽略的事:

  • Glitch 和 grain 只在播放时才会动。 一帧静止画面只显示这个效果本身,看不到它的动态。
  • Bake Light 会把整套后期处理效果烘进图层的帧里,变成永久的画面内容,可以选择全部帧或只烘当前帧,并带有 Revert Bake(还原烘焙)。在你烘焙之前,这一切都还没有进到像素里。

遮罩通道流水线#

Pipeline 是一套可重新排序的图像处理步骤堆栈,作用在帧上,有自己的缓存,缓存过期时可以 Clear Cache。十个步骤:

grayscale · invert · luma to alpha · alpha fill · alpha fusion · colour decontaminate · premultiply · matte cleanup · smoothed alpha · alpha denoise

可以只对当前帧运行,也可以对一个范围(从/到)运行,或者对所有帧运行。这是把一个主体从视频里抠出来的收尾阶段:AI 抠像产出遮罩通道,这些步骤则让它变得可用,colour decontaminate 去掉渗入边缘的背景色,premultiply 为它做好合成前的准备。

绑定,二维与三维#

Auto-Rig 会自动为一个角色搭建绑定系统。在此基础上:

  • 2D 绑定约束分三种。IK 求解一条起始骨骼到末端骨骼的链条(带用于控制肘部或膝盖朝向的极向目标);transform 把一根骨骼的运动复制到另一根上;path 让一根骨骼沿着一条至少两个点的曲线运动。
  • Skinning(蒙皮) 把一个 mesh 绑定到骨架上,权重可以单独导出。
  • 2D Deform Editor(2D 形变编辑器) 用一个笼罩而不是骨骼来形变平面画作:这是给那些从未按骨架方式搭建过的画作用的抽色(cut-out)技法。
  • 3D 骨架有自己的结构规范,BVH 可以导入导出。

动画状态机#

和 Engine 的那一套不是同一回事:这一套决定的是播放哪个片段

一个状态携带一个片段、一个循环开关、一个速度,以及一个以毫秒计的混合时长Any StateExit State 是两个特殊节点。过渡带有一个退出时间和一份条件列表:

Bool == true · Bool == false · Number > · < · == · >= · <= · Trigger · On Click · On Hover · Timer · Anim End

右键点击连接两个状态;Alt 拖动可以平移这个图。

特效#

三个界面,它们之间并不能相互替代。

VFX Builder 一层一层地组装一套堆栈。Stylized VFX 是把它预览成实时粒子系统的 3D 工作室,它是这套堆栈生成结果的唯一预览方式预设浏览器提供六种美术方向的现成堆栈:esports、dark fantasy、anime、ethereal、painterly、minimalist。

这个 3D 工作室既能跑 GPU 或 CPU 粒子,也能渲染进一个 2D 平面或 3D 体积,并自带六个可作为起点的效果:explosion、fireball、impact、slash、lightning 和 energy ring,每一个都带缩放、时长、火花数量、速度和重力参数。

特效离开这个工作室时有自己的出口:Unity VFX GraphUnreal NiagaraBabylon.js,或者 JSON。

Performance Capture Studio(表演捕捉工作室)#

录制、清理并重定向身体、面部和手部的表演素材,这个面板对每种输入所能给到的东西异常坦率:

输入你会得到什么
Tracking JSON完整的一套:身体部位、面部通道、手部关节
Reference video(参考视频)一份参考,再加上一份本地的根运动分析
Camera recording(摄像头录制)同上,也是一份参考素材

⚠️ 本地视频分析得到的是一个运动质心,而不是真正的身体追踪。 面板会在容易被误解的地方主动说明这一点。要得到真正的表演数据,请导入 tracker JSON。

工作流程分四步:calibrate 一个中性姿势,clean 抖动和空缺,retarget 到一副骨架上(这副骨架必须先存在),然后create an Animator clip。覆盖率和置信度会按每段素材分别报告。面部曲线会保留在片段元数据里,直到变形目标被显式映射为止,它们既不会被悄悄丢弃,也不会被悄悄套用。

超越关键帧#

还有三个工作室,要从工具栏和工具侧栏进入,而不是从时间轴进入。

从视频中抠出一个主体#

  • Segmentation(分割):一个 AI 抠像模型(BiRefNet)。Run Segmentation 会把主体从一段视频或一张图片的背景中分离出来。
  • Edge refinement(边缘精修):让那个遮罩通道变得可用的一步:头发、运动模糊,以及第一遍处理会出错的半透明边缘。
  • Luma to Alpha(亮度转透明度) 把亮度转换成透明度,是拍摄在黑色背景上的素材实现效果的经典路径,也是上面那条流水线里的一个步骤。

节点图、程序化形状与素材库#

Node Graph Editor(节点图编辑器) 把处理过程连成一张图,位于时间轴之外,可以跨镜头复用。Procedural Shape 从参数生成几何体,而不是靠手绘。Animation Library(动画库) 存储运动数据以供复用,Generated Assets(生成的素材) 收集程序化和 AI 面板产出的内容。

收尾#

CompositorColor Grading 是时间轴的最后两个标签页,也是一个镜头不再只是一堆图层、真正变成一张图像的地方。

可读写的文件#

原生格式是 .avf。能导出的格式比这里大多数工作室都要多,因为一段动画必须落到别处才有意义:

格式
Sprite sheet一张 PNG,所有帧排成网格
Image sequence每帧一张 PNG
Pipeline PNG sequence同上,但经过流水线处理和合成,RGBA
Animated GIF256 色,通用
WebP相同思路,体积更小
WebM网页视频,支持透明
APNG无损动画,带透明通道
Lottie JSON面向网页和移动端的矢量动画
SVG (SMIL)可缩放的矢量动画
Spine骨骼动画数据
glTF3D 场景与动画
BVH动作捕捉数据,可导入导出
AVF runtime面向 Flutter、React、Unity 和 Unreal 的二进制文件
JSON原始动画数据,或整个项目

VFX 堆栈有自己的出口:Unity VFX GraphUnreal NiagaraBabylon.js。绑定可以连同 mesh导出、导出成仅骨架,或者导出成权重

把工作发送到其他工作室#

产出一段动画和一个 2D 绑定接受Vectra 对象、像素画、图片、来自 Sculpt、Retopo 和 Pigment 的 mesh,以及 2D 绑定。

这个 2D 绑定会以相同的形式共享给 Engine,所以在这里绑好的角色,就是游戏里做动画的那个角色,而不需要重新导入。动画也会送到 Fusion 去剪辑。

与他人协作#

Animator 按操作逐一同步:图层的添加、删除和移动,对象,时间轴,VFX 片段,画布帧,片段,标记点。

限制与常见坑#

  • 要在打关键帧之前设置好帧率和时长。 之后再改会让一切相对时钟发生偏移。
  • "No objects: generate assets or add to timeline" 是空状态提示,不是报错。创建点什么,或者送点什么进来。
  • 缓动存在于 Graph 标签页里。 Timeline 标签页显示的是什么时候,Graph 标签页显示的是怎么变化
  • 一个动画事件不是一个关键帧。 它待在自己的轨道上,只触发一次。