type
status
date
slug
summary
tags
category
icon
password
fullWidth
fullWidth

虚幻引擎5 Motion Matching实践简介

状态机的优缺点

💡
动画状态机(Animation State Machine):一种用于控制和管理动画状态的机制,通过定义不同的动画状态及其之间的转换规则,使动画变得更加自然流畅。
  • 动画状态机的基本元素
    • 状态(State):每个状态对应一个动画片段(Animation Clip);如角色站立、走路、奔跑的动画片段
    • 转换(Transition):状态之间的切换;转换可以设置触发条件,满足条件时才会进行状态切换;如当角色的速度大于一定值时,从走路状态切换到奔跑状态
    • 参数(Parameter):控制状态机中转换和状态的变量;如可以设置一个浮点数来控制角色的移动速度
  • 优点
    • 直观组织和管理多种动画片段的播放
    • 精准定义转换条件,实现动画片段之间的过渡
  • 缺点
    • 状态和转换条件的增加会导致状态机变得难以维护
    • 新增动画片段可能会对原有状态机造成破坏性修改

Motion Matching原理和优点

  • 工作原理:根据角色的当前状态自动从数据库中匹配最合适的关键帧
    • 构建动画数据库:预先录制大量动画片段,并储存在一个动画数据库中,每一都会
  • 工作原理:根据角色的当前状态自动从数据库中匹配最合适的关键帧
    • 构建动画数据库:预先录制大量动画片段,并储存在一个动画数据库中,每一都会包含相应特征数据
    • 特征提取:从角色的当前状态中提取特征数据,如运动速度、方向、骨骼姿势;用于描述当前运动状态
    • 匹配过程:根据当前角色的运动状态,与动画数据库中的所有动画帧进行比较;通过计算数据库中每个动画帧和当前状态的匹配度,找到最适合的下一帧动画
    • 动画过渡:使用动画混合平滑过渡到该帧,实现自然的切换
从动画数据库中找到最适合的下一帧动画
从动画数据库中找到最适合的下一帧动画
  • 优点
    • 新增动画数据不会改变原来的工作流
    • 动捕数据处理简单,基本可以直接放进数据库

Motion Matching特征向量

  • 特征向量:Position、Velocity、Direction等运动参数均可以作为特征向量;可以用基本特征向量组合出新特征向量,如Trajectory、Crashing Legs等
  • 特征匹配:用KD-Tree加速动画帧的匹配过程,先把数据库中的每一帧的特征数据通过PCA降维后构建成KD-Tree,检索时可以高效地在多为空间中检索,相比于线性检索,KD-Tree的时间复杂度从O(n) 降低到O(log n)
💡
PCA(Principal Component Analysis,主成分分析):一种常用的降维技术,用于高维数据的降维和特征提取;通过将高维数据投影到低维空间中,保留数据中最重要的特征,降低数据的复复杂性。
PCA降维→构建KD Tree
PCA降维→构建KD Tree
  • Matching具体过程:如何确定下一帧该用当前动画片段的顺序帧还是跳帧?
notion image
 
UFSH摘要:《鸣潮》基于虚幻引擎4的多平台效果和性能优化实践 by 王宏波UFSH摘要:用虚幻引擎5为《幻塔》定制高品质动画流程风格化渲染管线 by Neverwind
Loading...
Latest posts
工作笔记:一些乱七八糟的踩坑记录
2025-4-17
游戏算法-Floyd搜索算法知识梳理和通用框架
2025-4-2
游戏算法-A*搜索算法知识梳理和通用框架
2025-4-2
游戏AI行为决策-目标导向行为规划(GOAP)通用框架
2025-3-23
自制Python任务调度模块-MySchedule
2025-3-20
学习笔记:23种设计模式
2025-3-19