unity重定向_动画重定向技术分析及其在Unity中的应用

这是侑虎科技第228篇原创文章,感谢作者贾伟昊供稿,欢迎转发分享,未经作者授权请勿转载。当然,如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨。(QQ群:465082844)

作者简书:董夕 - 简书

前言

笔者新的手游项目使用Unity引擎,动画部分要使用重定向技术来实现动画复用。笔者之前在大公司工作的时候对这块了解比较深入,读过Havok引擎在这部分的实现源码,并基于自己的理解,在公司自研的手游引擎中实现了一个简化的版本。本文将从原理层面分析Animation Retargeting技术的实现方式,然后落回到Unity引擎中,记录笔者使用Retargeting时遇到的问题和解决方法。

壹 · 什么是动画重定向

动画重定向,即Animation Retargeting,是一种动画复用的技术。直观上,你可以把它的作用想象成周星驰电影《西游-降魔篇》里的“听话符”——“我做什么,你就跟我做什么”。

听话符

这里给出一个非官方的定义:Retargeting is just the process of “copying” the animation from one skeleton to the other.

简单来说,重定向技术就是一种将动画数据从一个骨架拷贝到另外一个骨架的过程,只是这个所谓的“拷贝”过程,没有Ctrl+C、Ctrl+V这么简单。其实现的方式,也会影响到动画应用到另外一个骨架之后的效果。

贰 · 为什么要使用动画重定向

动画重定向技术在很多地方已经得到很广泛的应用,比如目前3A级主机游戏常用的动作捕捉技术就是基于这个原理来实现的——将真实人物的动作通过图像识别等技术生成动画信息应用到虚拟的角色身上,保存成动画数据。还有Max和Maya这样的建模工具中,也都已经集成了这一技术,用来方便美术把一个动作文件复用到其他骨架上。

那什么类型的游戏开发需要这样的技术呢?我们可以假想,如果要开发类似《街霸》这样的3D格斗游戏,其中有几十个不同体型、姿态各异的角色,战斗过程中会有很多抓技和投技的动作表现,对于这一类型的技能,不同角色的受击动作应该是一致的。

如果使用最常规的制作方法,需要对每一个角色制作攻击动作对应的受击动画,或者需要限制策划设计的受击表现在使用固定姿势、挂接、特效等方式可以实现的范围内。而不甘平庸的策划同学往往需要更加复杂的受击表现,常规的制作方法带来的问题可能有如下三种:美术工作量较大。 如果有n个不同角色的骨架,有m个需要特殊表现的技能,那么只考虑受击动画就需要m*n个,这个数量级通常会在几千个动作的级别。美术需要制作、导出这些动画文件,需要非常大的工作量。

动画维护困难。 想象下,策划设计了一个需要特殊动作表现的技能,美术加班加点制作出了所有英雄的受击动画,第二天黑着眼圈来上班,策划同学满脸讪笑地走过来说——“哎呀,你看,这个受击动作的第15帧有点不自然,力量感不够强,要你不优化一下?”……每一处修改都需要美术手动同步到其他动作文件上,重新调整导出,这一过程太费时费力。

游戏发布打包文件过大。 动画文件多必然带来这一问题,尤其是在手游中,包体大小通常是安卓渠道发行的一个需要考虑的重要指标。

动画重定向技术就是一种时间换空间的思路,在运行时将一套动画根据预计算好的骨骼差异信息,得到目标模型骨架上可以适用的动画数据,就可以生成目标角色的受击动画效果。这种方式既可以减少美术的工作量,又可以增加游戏对策划需求和修改的灵活度,将需要维护和打包的动画数量从m*n这样的平方级别降低到m个。当然,软件工程中“没有银弹”的定律在这里依旧生效,重定向之后的动画可能由于体型差异等问题在某些情况下无法完全满足策划或者美术的要求,这就需要一些额外的方法或者重新制作部分动画来进行弥补,这部分放在后面进行详述。

叁 · 基本原理

写到这里,其实之前有一点没有说明的是动画重定向技术主要是针对骨骼动画的方案,由骨骼来描述动作信息,用蒙皮来表示模型网格与骨骼之间的关系,从而得到模型最终的样子。对于这块不熟悉

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值