如何在UE5中进行人物动作重定向(Animation Retargeting)

老玩Unity觉得没意思,不如去隔壁的虚幻引擎5转悠转悠,看看用UE5开发是一种怎样的体验。

想在UE5里整活,动作重定向(Animation Retargeting)自然是一项十分重要的技能。听说UE5正式版的重定向流程和UE4还不太一致,毕竟Retargeting Manager都找不着了,所以不妨亲自尝试一下到底怎么玩。

本人只是初探UE5的萌新,于是现学现卖一波:首先UE5官方文档里有类似流程的图文说明,不明白的话也可以先参考Youtuber Ryan Laley的教程。前面那个教程是简化版的,如果需要更加精确的重定向,可以参考Jobutsu的教程

话不多说,开始进入正题。这里以将Mixamo上的人物动画重定向到原神模型为例进行演示。

首先从Mixamo上随便下载一个动画,比如跳跃。Download设置用默认的就行:

拖拽到UE的某个文件夹里,导入设置记得勾选Import Animations。由于只需要动作,材质那里可以选择不创建材质:

Content Browser里除开材质和贴图,应该会有5个文件,左数第一个是Skeletal Mesh,第二个就是跳跃的动画文件:

右键文件夹空白处,创建一个IK Rig,并勾选Mixamo跳跃动画的骨骼:

双击打开创建好的IK Rig,会弹出一个新窗口。在Hierarchy中选择臀部骨骼,右键设置为Retarget Root。有时可能该骨骼还有一个父亲Root骨骼,设置的时候还是选择臀部骨骼设置为Retarget Root。

UE5的动画重定向原理貌似是一条链与另一条链进行对应重定向,所以需要手动给该模型创建一些链。最基础的链包括脖子到头,脊椎,两条手臂,两条腿。创建的话可以点击IK Retargeting里的Add New Chain,然后选定开始骨骼和结束骨骼,也可以在Hierarchy面板里选中组成一条链的所有骨骼,右键点击New Retarget Chain from Selected Bones:

一条一条地创建,最基本的重定向应该包含下面六条链就够了:

如果需要手指也满足重定向要求,就得每根手指再创建一条链:

这样的话应该可以满足大部分需求了,当然还可以添加IK solver使其更加鲁棒,有兴趣的话可以参考官方文档Jobutsu的教程。每条链的顺序按创建顺序排列,竟然不能手动拖拽调整,所以随便乱创建的话看上去会比较难受。另外考虑到每个模型都要这么手动创建一遍的话,确实有点繁琐(是的,每个新模型都要手动创建一遍...不知道以后会不会有自动的流程),不像Unity直接拖进去改成Humanoid就完事了(Unity yyds!)。

设置好Mixamo的IK Rig以后,从Blender里导出一个带骨骼的FBX人物模型,例如一只可爱的猫猫(不知道怎么导出FBX和Import到UE5的同学可以参考瞬夜之港大佬的B站教程)。另外发现这个大佬也出了视频教程讲解怎么在UE5里进行骨骼重定向,感兴趣的话可以戳这里

另外需要注意的是,UE中模型上可以使用的材质球数量和导出时使用的材质球数量一致,也就是说虽然你在Blender里把模型分成两个网格,但只要他们导出前共用一个材质的话,UE中就没法让他们应用不同的材质(不像Unity,每个网格都可以设置为一个新的材质)。所以导出前如果不同网格需要不同材质的话要提前设置好。

之后还是像之前一样拖到UE5里,只是导入的时候记得勾选Import Morph Targets(不勾选就没法导入Blendshape做表情动画),以及将Material Import Method选为Create New Materials(这样能导入贴图和自动附上默认材质)。如果你忘记勾选Import Morph Targets,想重新导入却发现FBX选项面板不显示,可以戳这里。如果想使用模型自带的法线,记得Normal Import Method设置为Import Normals:

按照之前给Mixamo创建IK Rig的方式给目标模型也创建一个IK Rig文件:

Chain的命名最好保持一致或类似,不然模糊字符串匹配可能不准确,就得手动一个一个匹配好。考虑到之后可能要将Mixamo动画重定向到多个原神模型上,这里可以将Mixamo的IK Rig里的Chain重命名一下:

准备好两个模型的IK Rig文件以后,创建一个IK Retargeter,然后选择Mixamo的IK Rig:

双击进去后把Target设置为猫猫的IK Rig。

可以在Chain Mapping面板下看到Target Chain(猫猫的链条)和Source Chain(Mixamo的链条)一一匹配上了,如果对应链条的名字都差不多的话,不然就得手动修改对应的Source Chain了(Source Chain设置为None表示没有与该Target Chain相匹配的链):

另外可以看到Mixamo模型是T-pose但猫猫是A-pose,为了重定向准确,需要手动把猫猫的姿势调成T-Pose。可以导出模型之前在Blender里实现调好,也可以在UE中调。但现在是看不到猫猫的骨骼的,需要点击Edit Pose按钮(蓝色的)。

之后就能看到骨骼了,将其调成T-pose,例如世界坐标系下向上抬40度:

在点一下Edit Pose按钮退出编辑模式,切换到Asset Browser面板,双击跳跃动画:

可以看到重定向后的效果:

对效果感到满意后,可以点击Export Selected Animations将动画导出,大功告成:

如果想添加新的Mixamo的动画的话,在导入的时候选择那个跳跃动画的Mixamo模型的骨骼,去掉Mesh(Mesh可以不用导入),点击Import。之后双击原先创建的IK Retargeter应该能看到新导入的动画文件,按之前流程导出即可:

另一种重定向方法是右键那个动画文件,选择Retarget Animation Assets->Duplicate and Retarget Animation Assets:

在新的窗口里选择自己原来创建的IK Retargeter,选择保存的路径,点击Retarget即可完成对新动作的重定向(虽然显示的骨骼姿势不一致,但如果IK Retargeter里设置好了应该就没有问题):

将动画文件拖进Viewport点击运行就可以看到效果了:

当然重定向的效果还可以再此基础上进行完善,例如加上IK Solver之类的,具体还是参考官方文档Jobutsu的教程吧。

posted @ 2022-05-11 22:35  菜鸟少侠  阅读(457)  评论(0编辑  收藏  举报