找回密码
 立即注册
查看: 526|回复: 4

游戏开发中的Pose Matching

[复制链接]
发表于 2021-11-21 13:26 | 显示全部楼层 |阅读模式
前言:

国内外游戏开发教程中很少见到关于Pose Matching的分析,但是Pose Matching在3A游戏开发过程中又是特别重要的一个功能点,顽皮狗,EA,Square Enix等在某些演讲中都提到过,我是由于内部演讲Motion Matching的需要,把一些周边项的功能点也同步讲下,所以收集了一些网上的资料并加以总结,后面如果有其他资料我再加以补充。
正文:

在处理游戏动画时,大部分的时间其实是在处理动画间的Transition(过渡),处理Transition有很多种办法:
    创建Transition动画并添加到状态机中将两个动画强行Blend并设置一个足够长的时间Inertialization Blend给动画标记上sync point markers,按照phase进行blendPose Matching 我们要讲到的基于大量动画数据的Motion Matching

Pose Matching的原理很简单,就是计算两个Pose某些骨骼(一般都是左右脚踝)位置和速度的相似性,计算结果为一个Weight值,Weight越小说明相似性越高。当需要从当前Pose过渡到动画A时,动态计算当前Pose与动画A每帧Pose(想灵活的话可以设置采样间隔)的Weight值,找出Weight最小动画帧的时间StartTime,从计算出来的StartTime开始过渡。
实现Pose Matching的话一般都是在Editor下进行属于预处理,可以利用Animation Modifier或者写C++ Pose Matching节点时,在保存时进行预处理操作等,预处理操作主要是提取每个Pose某些骨骼的速度和位置信息等。
Pose Matching用途也很广泛,简单就是start+Loop的使用,Start最后一帧和Loop首帧不用完全脚步对齐,利用Pose Matching可以很容易在Loop中找到最合适的开始帧;Pose Matching还有一个好处就是不用强制要求动画师必须把动画的末尾Pose设置为指定Pose(这个仁者见仁),有一点的灵活性吧;还有就是Pose Matching候补动画可以为多个,从多个动画中选出最合适的那个动画;因为动画不是强制从第一帧开始过渡的,所以玩家可能会更快地完成Transition,随之进行角色的掌控,对于操控手感来讲会有很好的提升(Transition动画不用完整地看完才能角色操控)。
我做了一个Pose Matching的示例。我们有两个Stop动画,一个Stop动画首帧是左脚在空中,另一个动画首帧是右脚在空中。因为你不可能知道玩家选择停步的时候脚的情况,所以在状态机中固定死选择某个Stop动画都是不对的。


https://www.zhihu.com/video/1435935971334811648
上面是Stop动画始终用Left Feet Up时的情况,可以看到如果停步时左脚在上,表现是良好的,但如果停步时右脚在上,那么表现是很怪异的。


https://www.zhihu.com/video/1435939688079478784
同样的道理,上面是Stop动画始终用Right Feet Up时的情况,可以看到如果停步时右脚在上,表现是良好的,但如果停步时左脚在上,那么表现也是会抽抽的。
我们利用Pose Matching把两个Stop动画都放到候选列表里,当停步时Pose Matching知道当前的Pose情况,跟两个Stop进行Pose比较选择最合适的动画以及动画帧进行过渡。


https://www.zhihu.com/video/1435939739580530689
《FF7重置版》在演讲中也提到了相关的使用,当做扩展阅读吧!






https://www.zhihu.com/video/1434838610566205440

参考资料:

Joakim Hagdahl:you-should-be-matching-poses
UE4 Locomotion Anim System - Stop Transitions
Pose Matching – Motion Symphony
Multi-Pose Matching – Motion Symphony
FF7重置版动画技术笔记 | 风蚀之月

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-11-21 13:28 | 显示全部楼层
写的不错,点赞鼓励鼓励~
发表于 2021-11-21 13:37 | 显示全部楼层
[耶][耶]
发表于 2021-11-21 13:47 | 显示全部楼层
有趣~
[调皮]
发表于 2021-11-21 13:51 | 显示全部楼层
轻量级的motion match~
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-5-15 04:31 , Processed in 0.614369 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表