中EN
概念页

游戏动画技术基础

Game Animation Technical Foundations

《GAME ANIM》第 5 章按基础→中级→高级梳理游戏动画师必须掌握的引擎侧概念:三类动画形态(循环 / 线性 / 过渡)、骨骼导出与数值运算、样条与碰撞移动、FK/IK,以及状态机、参数化混合、局部动画、叠加层、布娃娃,再到全身 IK、Look-At、混合形状与程序化系统。本页只收录书中实际讲到的内容,并与引擎架构页互链。

三类游戏动画

类型特征典型用途
循环 (Cycles)起止速度/姿势匹配,可无限播放直至被打断idle、walk/run
线性动作 (Linear Actions)有明确起止,常从/回 idle;玩家常「一次提交、中途不可改」跳、拳、挥剑
过渡 (Transitions)短、偏艺术掌控的重心转移与着地;可按相对朝向做多向起步idle→run 各方向

循环要点:曲线在首尾无硬台阶、切线连续;身体各部不要同帧到位(用重叠遮住导出末帧);避免某一拍特别抢眼暴露循环节拍。

骨骼、绑定与导出

3D(以及许多 2D 包)把部件绑到骨骼,按帧导出旋转/位移到引擎回放。看穿「全是关节数值」之后,引擎侧可做:

  • 交叉淡入淡出 → 混合
  • 数值相加 → 叠加动画(如同一呼吸叠在多种动作上;与 DCC 层概念相同)
  • 相减 → 从动画去掉某姿势,供叠加使用
  • 只导出/播放部分骨骼 → 局部动画 (partial)(持枪上半身 + 空手跑步下半身)
  • 沿关节链渐变权重 → 羽化混合 (feather blends)

导出通常按项目帧率(书中称最常见 30 fps,越来越多 60)写成每帧采样,运行时再线性插值。压缩常抽帧;压太狠会比 DCC 里明显顿挫——见 动画压缩。

样条、碰撞移动与根

书中强调角色在世界中的碰撞位置是旋转枢轴与「角色存在点」;动画相对该规定点导出,结束姿势需与其他片段(如 idle)在该点对齐。根运动(角色位移由动画驱动 vs 由代码移动、动画「原地」播放)在玩法章展开,技术前提是:导出约定与引擎移动必须一致,否则脚滑/错位。

FK 与 IK

  • FK:按层级正向转关节,作者友好。
  • 实时 IK 代价高,书中建议 principally 用于:① 脚贴合不平地面(动画仍在平面上制作);② 混合时需保持附着(如双手扶方向盘)以免 FK 混合「抽手」。

中级:状态机与混合工具

  • 状态机 (State Machines / FSM / state graphs):可视化描述角色可处状态、状态间过渡,以及单状态内混合(如瞄准)。摇杆/按键可直接映射触发或混合;优秀动画师不仅做片,还在引擎里调混合。
  • 参数化混合 (Parametric Blending):按速度、方向等参数在多条动画间连续混合(对应引擎里的混合空间一类系统)。
  • 局部动画 / 叠加层 (Partial / Additive Layers):上半身独立;原动画 + 偏移姿势 = 修改后动画。叠加可做 cycle breaker、瞄准偏移等。
  • 物理、动力学与布娃娃:运行时算 → 易全局调参、动作间自然衔接,但吃 CPU;DCC 预烘焙进片段 → 省运行时、增内存,改参需重导。群众/手游常偏烘焙。

高级概念(书中点到)

程序化运动与系统、全身 IK (Full-Body IK)、Look-At、混合形状 (Blend Shapes)(面部等,见 变形动画)、肌肉模拟、动画纹理/着色器,以及 AI 决策与寻路如何驱动 NPC 动画选择。这些是「知道存在与适用边界」,实现细节因项目而异。

flowchart TB
  subgraph basic ["基础"]
    C["循环"]
    L["线性动作"]
    T["过渡"]
  end
  subgraph mid ["中级"]
    SM["状态机"]
    PB["参数化混合"]
    PA["局部 / 叠加"]
  end
  subgraph adv ["高级"]
    IK["全身 IK / Look-At"]
    BS["混合形状"]
    PROC["程序化 / AI"]
  end
  basic --> mid --> adv

上图:书中第 5 章的递进结构——先掌握三类片段与导出数值,再进入状态机与分层,最后才是程序化与面部等高阶手段。

  1. Ch05 · What You Need To Know
  2. Jonathan Cooper《GAME ANIM: Video Game Animation Explained》第 2 版(2021,CRC Press)第 5 章
  3. Game Anim Video Game Animation Explained 2nd Edition (Jonathan Cooper).pdf

相关页面

游戏美术游戏动画五大基本功Five Fundamentals of Game AnimationDisney 的「动画十二原则」面向线性媒介;游戏动画还必须在玩家每秒级输入下既好看又好控。Jonathan Cooper 在《GAME ANIM》第 2 版中提出与之互补的五大基本功:手感 (Feel)、流畅性 (Fluidity)、可读性 (Readability)、上下文 (Context)、优雅 (Elegance)——目标是角色不仅「看起来对」,还要「操控起来对」。游戏美术游戏动画工作流Game Animation Workflow第 6 章讲的是「怎么把动画做进游戏里」的日常方法:大量参考、不要恋战、姿势到姿势优先、尽早进引擎、由内向外阻塞、姿势库与预制场景,以及防丢数据的习惯。核心信念是:迭代 + 在真实玩法相机下验收 才出质量。游戏美术技术动画Technical Animation第 8 章「Our Project: Technical Animation」覆盖角色从建模约束、蒙皮、绑定,到命名/目录、引用、导出格式与引擎规则、内存与切片、引擎内事件标签与混合时间、测试关与资产卫生。目标是让动画师少踩导出坑、系统可共享缩放。游戏美术玩法动画Gameplay Animation第 9 章从 Three Cs(角色 Character、相机 Camera、控制 Control)出发,系统讲地面移动(idle、循环、原地 vs 向前、 strafing、起停过渡)、跳跃与攀爬度量、以及攻击/受击的预备—响应—可读性与连招切割。这是五大基本功在「每帧可玩」场景下的落地清单。游戏美术动作捕捉与 Motion MatchingMotion Capture & Motion Matching第 11 章回答「要不要动捕」、光学/惯性/深度/表演捕捉差异、拍摄规划与演员工作,以及后期的重定时、姿势夸张、偏移姿势、循环混合;并专节讲 Motion Matching 的适用边界与第三人称地面移动的 shot list。引擎实现细节见已有页 运动匹配(UE Pose Search);本页保留书中制作向观点。游戏开发骨骼、姿势与动画片段Skeletons, Poses & Animation Clips角色动画系统的数据核心是三样东西:骨骼(关节层级)、姿势(每个关节的 SRT 变换)和动画片段(姿势随局部时间变化的采样)。GEA 把各种动画方法看成对"逐点控制表面"这一理想的不同压缩方式;骨骼蒙皮用少量关节驱动大量顶点,是今天最主流的方案(GEA4 卷 II 13.1–13.4)。游戏开发动画混合Animation Blending动画混合把两个或多个输入姿势合成一个输出姿势。基本工具是对每个关节的局部 SRT 分别做 lerp(旋转用 nlerp 或 slerp);在此之上有时间插值、交叉淡入淡出、方向移动、一维/二维混合空间、部分骨骼混合和叠加混合(差分片段)。前几种都是加权平均,叠加混合则是"加上一段变化"(GEA4 卷 II 13.6)。游戏开发动画管线与动作状态机Animation Pipeline & Action State Machines低层动画管线把片段和混合规格变成局部姿势、全局姿势和蒙皮矩阵调色板;其上的动作状态机 (ASM) 给游戏代码提供"按状态驱动动画"的接口。每个状态是任意复杂的片段混合,跟踪当前所有片段的方式有扁平加权平均和混合树两种;过渡用数据驱动的过渡矩阵描述,控制参数通过节点搜索、命名变量或控制结构体暴露给代码(GEA4 卷 II 13.9–13.10)。游戏开发 · UE5动画蓝图与动画系统Animation Blueprint & Animation SystemUE5 角色动画以动画蓝图 (Animation Blueprint) 为核心:它每帧为骨骼网格体 (Skeletal Mesh) 计算最终姿势。动画蓝图内部用状态机 (State Machine) 组织“何时播什么”,用混合空间 (Blend Space) 按速度、方向等参数连续混合,用蒙太奇 (Animation Montage) 在插槽 (Slot) 中插播攻击、交互等一次性动作,用 Control Rig 做程序化骨骼控制(如贴地)。算出的骨骼姿势最终交给蒙皮 (Skinning) 驱动顶点。游戏美术顶点混合与蒙皮Vertex Blending & Skinning顶点混合(也叫线性混合蒙皮、enveloping、骨骼子空间变形)让一个顶点受多根骨骼的变换影响,按权重混合结果,使关节处的"皮肤"连续弯曲。它非常适合在 GPU 上执行;主要缺点是关节折叠、扭转和自相交,可用双四元数蒙皮等方法改善。游戏美术变形动画Morphing变形在两个模型之间插值,需要解决顶点对应和插值两个问题。顶点一一对应时可以逐顶点线性插值;更直观可控的形式是变形目标/混合形状:在中性模型上叠加加权的差分向量,常用于面部动画。过场中无法用这些方法表达的动画,可以用压缩后的几何缓存逐帧回放。游戏开发动画约束与后处理Animation Constraints & Post-Processing片段混合之后、渲染之前,动画系统常常还要修改姿势,这叫动画后处理:程序化动画、逆向运动学 (IK)、布娃娃。另一大类需求是约束:把武器挂在手上(挂接点)、让多个角色对齐演出(参考定位器)、手抓物体(手部 IK)、脚不滑步(根运动提取与脚部 IK),以及注视、掩体、穿越辅助等(GEA4 卷 II 13.7、13.11)。游戏开发 · UE5IK Rig 与动画重定向IK Rig & RetargetingIK Rig 资产为某个骨骼网格定义 IK 目标 (Goal)、求解器栈 (Solver Stack) 和骨骼设置;IK Retargeter 用两个 IK Rig 中定义的重定向链 (retarget chains),在骨骼数量、骨骼名称和朝向都不同的骨架之间传递动画,还可以用 IK 保持手脚接触点的精确。参考姿势不同(例如 T 形与 A 形)时,需要编辑重定向姿势。游戏开发动画压缩Animation Compression未压缩的动画每关节每样本最多 10 个 32 位浮点通道,数据量巨大。GEA 列出的压缩手段按力度递增:省略无用通道、量化(如 16 位 RL 编码)、降低采样率或省略近似线性的关键帧、用 B 样条拟合曲线、小波压缩,以及最根本的:只把需要的片段放进内存(选择性加载与流式加载)(GEA4 卷 II 13.8)。

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原