UE5 学习记录 (1)——为模之屋人物模型进行动画重定向

一.实现目标

在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 RigsIK Retargeter),确实很麻烦,但是却可以看做是一个一劳永逸的做法,我们后面导入其他模型,就可以选择我们制作的重定向器来进行动画资源的导出。

3.为源和目标分别制作IK Rigs

我们先为UE5小白人制作一套IKRig,找到小白人的骨骼网格体资源,右键创建IK绑定,这里我命名为IK_MrWhite。

双击IK_MrWhite,开始制作

这里建议读者首先理解一下IK_Rig的原理

虚幻文档: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栏下有几个平移模式选项,包括“无”、“全局缩放”和“绝对”,它们的作用如下:

  1. 无 (None): 该选项禁用平移模式的影响,不对根骨骼的平移进行任何调整。IK系统不会对根骨骼的位移进行修改,完全依赖于骨架的父级和约束。

  2. 全局缩放 (Global Scaling): 选择此模式时,IK系统会考虑整个骨架的缩放影响,确保IK解算过程中骨骼和角色的缩放保持一致。这意味着 IK 重定向会按照角色的全局缩放比例来处理根骨骼的位移。

  3. 绝对 (Absolute): 这个选项确保根骨骼的位置保持绝对不变。即,无论如何调整其他部分的骨骼,根骨骼的位置都会固定在世界坐标系中的某个特定位置。

总结来说:

  • : 不调整平移。
  • 全局缩放: 考虑全局缩放影响。
  • 绝对: 固定根骨骼的位置,忽略其他影响。

主要和资产设置里的跟锁定设置有关,如果你的重定向出的动画存在人物双脚离地乱动的情况,修改一下跟锁定试一试呢。如果源的动画中本身具有位移,取消勾选后,就会只在原地播放动画。

5.导出动画

1.我们可以直接在我们自己创建的重定向器中进行目标动画序列的导出。

2.也可以对源动画进行自动重定向,注意替换使用我们的IK重定向器资产

以上就是UE5中简单进行动画重定向的个人心得,我们的简小姐还没有添加布料模拟,尾巴,头发摇摆的效果。有关这些内容以及关于详细的解算器相关的内容,我后面有时间会总结一下学习记录。

### 实现手指重定向功能 在Unreal Engine 4 (UE4)中实现手指重定向涉及多个方面的工作,包括但不限于准备源数据、设置目标骨架以及调整动画蓝图来适应新的需求。对于具体的手指重定向操作而言: 为了使手部动作能够被正确映射至不同的角色模型上,在导入FBX文件时需确保该文件包含了完整的骨骼层次结构,并且已经定义好了相应的关节名称与位置[^3]。 当涉及到更细致的动作如手指运动时,则可能需要用到额外的工具或插件辅助完成这一过程。例如,可以通过创建自定义IK Rig(逆向动力学绑定),使得开发者能够在保持整体姿态不变的情况下单独对手指部分实施精确控制。 此外,考虑到不同版本间可能存在特性上的变化,如果是在较新版本如UE5.4环境下工作的话,由于官方持续优化并简化了动画重定向流程,因此一些传统方法可能会有所改变甚至不再适用;此时建议查阅最新文档获取最准确的操作指南[^4]。 然而针对UE4环境下的手指重定向,虽然没有特别提及关于手指的具体处理方式,但是基于上述提到的原则——即通过合理配置骨骼信息及利用高级功能比如IK Rig等手段,同样可以在很大程度上满足此类特殊需求。 ```cpp // 假设这是用于初始化手指IK链的部分C++代码片段 void ACharacter::SetupFingerIK() { // 获取角色的AnimInstance实例 UAnimInstance* AnimInst = GetMesh()->GetAnimInstance(); if(AnimInst && FingerIKRig) { // 设置IK目标的位置和其他参数... // 应用此IK设定给指定的角色动画蓝图 AnimInst->SetComponentSpaceTransform(FingerIKTargetName, NewLocation); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值