一.实现目标
在UE5.4(及以上版本)中 导入模之屋人物模型,制作并使用IK_Rigs,创建IK重定向器,实现任意动画重定向到模之屋MMD人物模型,并导出动画序列。
二.什么是动画重定向?
动画重定向是一项功能,允许在使用相同骨架资源但比例可能截然不同的角色之间重复使用动画。通过重定向,您可以防止动画骨骼在使用不同形状角色的动画时失去比例或出现不必要的变形。通过动画重定向,还可以在使用不同骨架资源的角色之间共享动画,只要它们共享相似的骨骼层次结构并使用称为Rig 的共享资源将动画数据从一个骨架传递到另一个骨架即可。
——摘自虚幻引擎官方文档
一旦对角色应用了重定向,它们的比例差异就会被排除在外,
并且动画会在每个角色上正常播放。您还可以从视口选项中转到“显示 > 非重定目标动画” ,并查看原始骨架(以米色显示)和当前骨架(白色)的差异。请注意在基本角色上,米色非重定向骨骼如何与骨架完美匹配。
——摘自虚幻引擎官方文档
这里我就不介绍5.4之前的动画重定向流程了(毕竟目前的动画重定向功能与之前的相比差异还是比较大的 &-&)
在UE5中我们会选择使用IK_Rig 和 IK Retargeter 进行重定向。
为了使用 IK Retargeter ,我们需要两套IK_Rig,即 源 和 目标
三.开始制作
新建一个项目,导入初学者包,开始我们的旅程!
如果我们目前有一个基于一个骨骼网格体的动画序列,就像上面初学者包中的一段小白人动画示例,假如我们想把这段动画复用给自己游戏里的角色,或者为游戏角色使用别的网站模型上的动画,就要进行动画重定向。
两种情景
这里我们讨论两种情景
1.将外部网站(如Mixamo)的动画重定向到UE5内置小白人身上
2.将任意动画重定向到模之屋模型身上
这里做区分是因为UE5内置的模型的骨骼结构可能与模之屋模型骨骼结构存在差异,很大概率无法直接进行自动重定向,所以需要我们自己制作相匹配的两套IK_Rigs,才能制作出进行自动重定向所需的IK Retargeter。
情景一
1.Mixamo To Mr.White
如下图我从一个动画模型网站Mixamo上下载了模型,并为其下载了一段动画 “Excited“
现在我想将这段动画应用到内置小白人身上,我们可以直接使用UE5.4新增的自动重定向功能,
选择源(这里是mixamo小红人)的动画,右键选择重定向动画
进入自动重定向界面如下,选择目标骨骼网格体,选择源的动画进行预览
注:这里的重定向器,勾选了自动生成重定向器,就是会以一种范式的规则将源骨骼网格体和目标骨骼网格体进行匹配,创建出合适的IK Retargeter。
这里我们不妨看一看这里UE5为我们创建的重定向资产(两套IK_Rigs和IK Retargeter),选择导出重定向资产到一个文件夹(这里我简单命名为IK)
点开IK资源,讲真的我第一次看到这个界面,真的有一点头皮发麻,(我们后面要做的就是类似的这种IK_Rig)
IK_Rig制作大体的关键流程:
1.设置重定向根
2.添加重定向骨骼链
3.添加全体型IK解算器
4.为全体型IK解算器添加根骨骼和选定骨骼
后面有详细介绍
言归正传,我们回到重定向界面,选择源的一个动画资产,点击导出动画,就能看到新的动画资产了。非常顺利!
情景二
1.下载并修正目标模型
1.将任意动画资产重定向到模之屋模型
在模之屋下载一个模型,这里我选择绝区零里的角色 简.杜示例。
首先我们需要在Blender中对模型进行处理,主要有两步操作:
(1)首先我们会用到一个Blender插件用于修正pmx模型。
(2)为我们的模型创建根骨骼。
这里我把插件放在网盘里,提取码:5566
下载后得到一个压缩包,注意不要解压,直接在 blender-2.93.1 (使用2.9的版本是因为插件的兼容性问题)里打开首选项,选择Install插件,直接选择刚刚下载的压缩包,之后启用Cats插件,如下图。
注意:这里需要进行一步重要的比例单位设置操作后再导入pmx模型:将Blender中的标准单位改为厘米,缩放比例改为0.01,见下图(点击场景选项,UnitScale 和 Lenfth和我保持一致)
原因是
MMD中,一单位长度是1分米
Blender中,一单位长度是1米
UE4/5中,一单位长度是1厘米
如果我们不调整Blender中的单位长度,就会出现模型比例错误:后面我们涉及到创建根骨骼的操作,那么创建出的根骨骼在导入UE5时会以米的单位进行导入,进而导致重定向的时候发生异常(比如目标骨骼因为根骨骼变得异常巨大而导致人物飞上高空)。
这里的 将Blender中的标准单位改为厘米,缩放比例改为0.01 ,就是直接把Blender的比例和UE5保持统一,这样导入到UE中的根骨骼的缩放才是正确的。
之后导入pmx模型,选择 简.pmx,点击右边栏的Cats的FixModel,大概等待半分钟
之后选择Misc点击GLSL进行一下着色看看效果
下面选择骨骼按Tab进入骨骼编辑模式,点击Add增加根骨骼,命名为Root,设置为模型的Hips骨骼的父骨骼。
现在可以导出了,选中整个模型,Export为fbx格式
2.将fbx文件导入UE5.4
我们把这个fbx文件导入UE5中,默认可以不进行其他设置。出现Mat和Modle文件出现在文件夹中。(这里我已经把材质放在一个文件夹中)
也许你已经尝试过直接对Jaun(骨骼网格体)进行自动重定向,但是没有达到预期的效果,因为我们的人物模型的骨骼结构与内置的小白人骨骼存在较大差异,所以自动重定向无法正常进行,见下图。
果然看到了警告,我们不妨导出重定向资产,看一看到底生成了什么样的IK_Rigs
可以看到,由于骨骼结构差异,系统无法识别我们的根骨骼,重定向链和IK都无法正常创建,可以看到重定向根显示为None,并且重定向骨骼链的数目明显变少,既然无法直接自动重定向,我们需要手动进行IK Retargeter的制作,下面我们就尝试自己制作IK Rigs和IK Retargeter),确实很麻烦,但是却可以看做是一个一劳永逸的做法,我们后面导入其他模型,就可以选择我们制作的重定向器来进行动画资源的导出。
3.为源和目标分别制作IK Rigs
我们先为UE5小白人制作一套IKRig,找到小白人的骨骼网格体资源,右键创建IK绑定,这里我命名为IK_MrWhite。
双击IK_MrWhite,开始制作
这里建议读者首先理解一下IK_Rig的原理
我们可以先不管解算器(它主要适用于更好地规范骨骼匹配,不是必须的),仅进行骨骼重定向链的制作
这里我将胯部设置为重定向根,为其创建了20条骨骼链:
Root 根 ;Spine 脊柱 ;Neck 脖子 ;Head 头
Left/Right Clavicle 锁骨
Left/Right Arm 手臂
Left/Right Leg 腿
Left/Right Thumb 拇指
Left/Right Index 食指
Left/Right Middle 中指
Left/Right Ring 无名指
Left/Right Pinky 小拇指
如果你看过UE5小白人的IK资产,里面的重定向链会更多,分的很细(应该是28个),我们这里做简单一点。
同理,为Jaun创建IK绑定,并制作相同的重定向结构,制作完成的两者IK结构如下图所示:
IK_MrWhite:
IK_Jaun:
4.创建IK重定向器
接下来我们就可以创建重定向器啦!
在文件资源管理器中右键 动画/重定向/创建IK重定向器,这里我命名为RTG_MrWhiteToJaun
进入重定向器中,选择我们的源 IK及骨骼网格体,为了方便预览可以在PreviewingSetting中调整预览位置。
下面我们可以视情况调整一下姿势(有时,源和目标的姿势可能不同,比如一个是标准的T姿势,另一个是双手下垂的姿势)以便于目标和源更好的匹配位置。
UE5.4提供了骨骼自动对齐的快捷功能,见上图左上角(先选择Running Retarget)
OK,现在点击源的预览动画,我们就能看到Jaun的模型的动画预览。
看了一些大佬的一些失误经验,发现可能有一个常见的问题,涉及到Root目标链细节中的平移模式。
这里个人建议将FX的平移模式修改为全局缩放。
这是GPT的回答:
在UE5.4的IK重定向器中,Root设置下的FK栏下有几个平移模式选项,包括“无”、“全局缩放”和“绝对”,它们的作用如下:
-
无 (None): 该选项禁用平移模式的影响,不对根骨骼的平移进行任何调整。IK系统不会对根骨骼的位移进行修改,完全依赖于骨架的父级和约束。
-
全局缩放 (Global Scaling): 选择此模式时,IK系统会考虑整个骨架的缩放影响,确保IK解算过程中骨骼和角色的缩放保持一致。这意味着 IK 重定向会按照角色的全局缩放比例来处理根骨骼的位移。
-
绝对 (Absolute): 这个选项确保根骨骼的位置保持绝对不变。即,无论如何调整其他部分的骨骼,根骨骼的位置都会固定在世界坐标系中的某个特定位置。
总结来说:
- 无: 不调整平移。
- 全局缩放: 考虑全局缩放影响。
- 绝对: 固定根骨骼的位置,忽略其他影响。
主要和资产设置里的跟锁定设置有关,如果你的重定向出的动画存在人物双脚离地乱动的情况,修改一下跟锁定试一试呢。如果源的动画中本身具有位移,取消勾选后,就会只在原地播放动画。
5.导出动画
1.我们可以直接在我们自己创建的重定向器中进行目标动画序列的导出。
2.也可以对源动画进行自动重定向,注意替换使用我们的IK重定向器资产
以上就是UE5中简单进行动画重定向的个人心得,我们的简小姐还没有添加布料模拟,尾巴,头发摇摆的效果。有关这些内容以及关于详细的解算器相关的内容,我后面有时间会总结一下学习记录。