书接上文《虚幻引擎图文笔记:彻底搞懂重定向(Retargeting)之 解释一下UE Skeleton骨架》,今天介绍一种扩展UE Skeleton的流程(我们称之为UE Skeleton Plus),本文会使用Blender作为外部DCC工具,如果你使用Maya或者Max等工具原理是相同的。
- 为什么要做UE Skeleton Plus
- 步骤
- 1. 分析骨架
- 2. 从UE4导出FBX并导入Blender
- 3. 整理骨架
- 4. 整理骨头命名
- 5. 嫁接骨头
- 6. 从Blender导出FBX并导入UE4
- 7. 由新骨骼生成Rig
- 8. 重定向
- 小结
老王从虚幻商城买了一套单长刀动画和一套双短刀动画,想把它们都放到游戏主角身上,但是问题来了:
下面两个图分别是这两套动画的骨架(导入到Blender中显示方式和UE4不同,大家会意即可)
- 单长刀骨架(Skeleton 单)比标准UE Skeleton多了红圈标注的骨头
- 双短刀骨架(Skeleton 双)比标准UE Skeleton多了黄圈标注的骨头
这两个骨架虽然都包含UE Skeleton,但是彼此之间互不包含。于是在三套骨架(Skeleton 单|Skeleton 双|UE Skeleton)之间,无论怎样重定向,动画信息必然受损。要解决这个问题我们需要一套如下图所示包含Skeleton 单和Skeleton 双的骨架。
类似的需求很常见,并且道理也不难理解,问题就是目前在UE4里还做不了骨架并集这件事。所以下面老王就介绍一下借助外部DCC工具来制作UE Skeleton Plus的流程。
步骤下面就是单长刀骨架,它源自商城里Frank climax’s Katana动画集。
1. 分析骨架我们首先要分析一下这个骨架。
黄框标注的就是比UE4多出来而且必须加到UE Skeleton Plus的骨头,绿框标注的是动画师添加的摄像机和特效绑定骨头,老王不打算保留到UE Skeleton Plus里面
导入Blender,老王使用了一个名为“Better FBX addon”的收费插件,它比自带的FBX导入导出工具各方面方便一点点,不过原生的问题也不大。
导入Blender是这样的
这里我们重点关注的是骨架,所以可以先把网格模型隐藏起来
把摄像机和特效的骨头都删除
把UE Skeleton里的IK相关骨头都放到一个单独的组里隐藏起来(主要是因为太碍眼)
矫正一下Pelvis的朝向(这个是因为强迫症)
给除UE Skeleton之外的骨头整理一下命名:
- 身体左/右的骨头分别加上
_l/_r
后缀(必须) - IK骨骼的子骨骼都加上
ik_
前缀(可选) - 大写变小写(可选)
整理前
整理后
这一步是本文的关键,但是思路并不复杂:在不改变原有结构的基础上把新的结构“嫁接”上去,并且注意,因为后续的重定向是可以把不同名称的骨头映射到一起的,所以我们一定先分析再动手,如果结构已经有了就无须嫁接了。
本例中我们是拿单刀骨架去扩展双刀骨架,双刀骨架就不展示了(实际老王根本没有),我们就假定双刀骨架是把单刀骨架的一些骨头镜像到另一侧得来的吧,其实也是差不多的。
Blender的骨架对称命令非常好用
一键就可以生成所选骨头的对称骨头,而且连命名规则都可以很智能地遵守(这就是为什么上面一定要加
_l/_r
后缀的原因)
注意:我们只让没有ik_
前缀的骨头生成对称骨头,一方面带ik的骨头本来就是用于长刀的,另一方面前篇文章也说了ik_hand_l/ik_hand_l是ik_hand_gun的子骨骼,而ik_hand_gun是非对称的。
这就是我们的UE Skeleton Plus
按理说腰部的刀鞘即使是双刀一般也会放在身体大的一侧,老王把它对称了,为的是体现两肋插刀!(其实就是因为强迫症)
导入时不要选Skeleton,这样才能从自身生成
查看一下,新的骨架包含我们需要的所有骨头及结构
将这个骨架更名为UE Skeleton Plus
关于什么是Rig见《虚幻引擎图文笔记:彻底搞懂重定向(Retargeting)之 UE4的Rig到底是啥》
新生成的Rig文件命名为 Humanoid Plus
把所有相关骨架都声明为Humanoid Plus,然后进行重定向。
这样我们就拥有了一套比UE Skeleton兼容性更好的骨架UE Skeleton Plus,当然,如果以后有了新的需求,可以继续在UE Skeleton Plus的基础上扩展,并命名为UE Skeleton Plus MAX。