使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

时间:2024-04-05 08:23:08

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

https://zhuanlan.zhihu.com/p/161332116

 

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

刘泽昕

本文翻译自UEFY作者在Youtube创建的教程视频,链接:

视频地址

旨在帮助UE4独立开发者使用市场购买的动画资源以及人物模型素材。

UEFY插件购买地址:https://www.rakiz.com/uefy/

如果你不想购买这个插件,你可以等待Epic Games官方发布他们在5个月前(2020年2月)公布的官方Send to Unreal插件,虽然他们五个月以来在任何渠道上都没有关于这个插件发布进度的消息。

开始前的准备:

一个任意的人物模型

Blender2.80+版本

UEFY插件

从UE4中导出的Mannequin小白人

1.导入模型

首先打开Blender,新建一个项目并且将单位设置中的缩放单位调整至0.01。

这么做是因为虽然Blender的模型与UE4的比例是1:1,但骨骼的单位比例却是100:1。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

现在,导入你想要构建骨骼的人物模型,将其放置在原点,确认它的面向是X轴正方向

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

然后导入UE4标准的Mannequin模型。模型可以在UE4新建的项目中找到并导出,在Blender中的导入设置应如下

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

即不导入动画,并且勾上自动骨骼坐标系。导入完成后我们选中Mannequin以及它的骨架,向Y轴方向移动一个单位。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

我们现在暂时不需要用到Mannequin,可以把他放在一个新的集合里隐藏。

2.基础骨架的构建

首先我们需要构建人物模型的基础骨架。

脊柱

设置光标到原点,新建一个单节骨骼,点选他进入编辑模式(一定要确保进入编辑模式再移动!不能改变它的原点位置——作为UE4编辑器内骨骼的root位置)放大一点,将他放置到人物的盆骨位置并调整大小。在属性——骨架属性——视图显示中调整他为始终在前。H键可以隐藏选中物体 alt+H可以显示所有隐藏物体。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

现在,还是在编辑模式中,我们点选这根骨骼的上端使用E键进行扩展,创建三段脊柱,一段脖子和头部骨骼。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

左腿

进入前视图,选择盆骨骨骼,按E键扩展生成一段临时骨骼,然后通过它生成左大腿——小腿——左足——趾尖,再选中临时骨骼删除它。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

这里我们可以通过一种方式调整关节的位置:进入物体模式,点选网格体,进入网格编辑的边模式

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

找到关节应该在的位置,使用alt+左键点选横边选择这一圈边,使用shift+S将光标移至所选位置。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

现在回到物体模式,点选骨架,进入骨骼编辑模式,点选你要移动的关节,使用shift+s将所选移至光标位置

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

这样我们就可以很方便的对其所需放置的关节位置。

左臂

现在构建上肢部分。从脊柱和脖子骨骼的中间关节创建一段临时骨骼,创建出我们的左肩膀骨骼,然后再创建一段临时骨骼,延伸出左上臂——小臂——左手

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

删除这两段虚拟骨骼。仔细观察UE4 Mannequin的肩膀位置!将肩膀骨骼调整到图示位置

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

然后根据左腿部分调节关节位置的方法,调整好每个关节的位置。

左手

现在进入手掌部分的编辑。

从左手骨骼的末端延伸出一段虚拟骨骼,再延伸出食指的骨骼,删除这段虚拟骨骼(图中所选)。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

在UE4 Mannequin的骨骼中,手掌骨骼的位置是稍微偏向食指的。

我们点选生成的手指骨骼,shift+D复制他到五个手指。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

将每一段手指骨骼细分成三节,使用之前的方法对齐到手指上的关节骨骼

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

3.骨架的更名和坐标轴的修改

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

我们需要把创建的骨骼修改为和UE4骨骼同样的名字

脊柱部分:pelvis-spine_01-spine_02-spine_03-neck_01-head

左腿部分:thigh_l-calf_l-foot_l-ball_l

左臂部分:clavicle_l-upperarm_l-lowerarm_l-hand_l

五指:手指名(thumb,index,middle,ring,pinky)_001/002/003_l

接下来我们需要调整骨骼的坐标轴朝向。在UE4中默认的骨骼坐标轴朝向规则如下:

脊柱和左大腿/小腿/肩膀/左上臂/下臂部分:X轴穿过网格体向网格体后方

左手手掌:穿过手掌向掌心

左手手指:向掌心

左脚脚掌:向Y轴正方向(模型左侧,前视图右侧)

左脚脚尖:向上(z轴正方向)

对于脊柱和上下肢的编辑我们可以使用shift点选多个,在UEFY面板中找到bone roll tools进行快速坐标轴旋转。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

对于手指,我们可以只编辑01骨骼,然后用shift依次选择03-02-01,使用shift-N菜单中的活动骨骼进行快速调整。

至此。我们的骨架就创建完成了。在骨骼编辑模式全选骨架,右键点击对称即可快速生成右侧的骨骼。

在物体模式下shift依次选择网格体和骨架,使用ctrl+P选择自动生成权重的骨架依附即可绑定模型和骨骼

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

在物体模式下shift依次选择骨架和网格体,进入权重绘制模式,在视图叠加层中选择权重绘制——零权重——活动项可以更好的观察自动生成的权重

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

4.生成兼容rigify动画的骨架

调整导入的Mannequins

将Mannequin的脚骨骼末端对齐至脚趾骨骼的首端,将脚趾骨骼旋转-90度使其向前并缩放至正确大小,shift选择这两个骨骼右键点击镜像以应用至另一边。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

返回物体模式。确认你的人物模型和骨架的旋转为(0,0,0),坐标为(0,0,0)并且缩放比例为(1,1,1)

如果不是,分别选择他们使用CTRL+A应用所有变换。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

将光标移至原点,新建一个骨架Human(meta-rig)

如果找不到这个选项请确认自己已经开启rigify插件

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

选择这个骨架,缩放至100倍大小,再手动调整至肩膀与我们创建的骨架对齐

应用这个骨架上的全部变换。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

在uefy面板上设置好你的人物-UE4 Mannequin-metarig骨架的对应名称

点击Setup Character Bone Names,然后点击Pose Character,你的人物就会转换为与UE4 Mannequin 相同的A-POSE

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

如果你的人物是从其他姿势转换到A-POSE,最好修改脚步骨骼让脚部垂直着地

在姿势模式下,选择一边骨骼,使用ctrl+C,Shift+Ctrl+V可以应用至另一边

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

因为UE4 Mannequin的手指问题,你的人物骨骼可能手指会有问题。框选这些骨骼,使用alt+R来调整他们。

现在如果我们进入编辑模式我们会发现人物的姿势没有变化。要解决这个问题,我们先要进入物体模式,选择网格体,在属性栏的修改器属性中复制第一个修改器,然后应用新生成的那一个,选择骨架,进入姿势模式,使用CTRL+A应用当前姿势为休息姿势。

创建与rigify兼容的骨架

现在点击下方的Pose Metarig,metarig的姿势就会与你的骨架大致相同了。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

我们还需要修改metarig的脊柱。隐藏除了两个骨架之外的所有物体,用shift选择两个骨架,进入编辑模式,隐藏除了脊柱之外的其他所有骨骼,在右视图中调整metarig的脊柱和我们创建的脊柱相同。

首先选择metarig脊柱对齐脖子位置。然后再分上下两段分别调整,使所有关节对齐。

进入物体模式,选择网格体,在属性菜单的修改器属性中应用所有修改器,在物体属性的关系中与父级断开联系。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

现在,我们手动生成的骨架基本没有用了,我们隐藏他。将metarig置于前端,调整脚部骨骼

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

在前视图中将heel骨骼对齐至与脚掌同宽,两端Z轴值为0,在右视图中将两端对齐至水平之后移至脚跟处。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

右键点击他选择对称至另一端

回到物体模式,选择metarig。在属性面板-骨架属性-Rigify Buttons中点击Generate Rig即可生成兼容于Rigify的骨架。

现在,隐藏metarig,点击网格体,shift选择创建的新的骨架,CTRL+P选择骨架绑定

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

现在在姿势模式下,点击新生成的Rigify骨架,在骨架属性的UEFY面板中点击Build Unreal Skeleton,再点击Weight Paint,我们就能使用Rigify调整它的姿势了。

如果我们需要更改权重的绑定或者增加新的骨骼,我们需要在图层的这三层中编辑:

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

只有这三层的骨骼会被导出至FBX中。新生成的关节也需要在这里绘制权重!

这三层中,左侧的是会被导出的骨骼,中间层是面部Rig骨骼,右侧层是IK虚拟控制骨骼的部分。

在姿势模式中,在Rig Layers shift选择Rig层可以去移动控制骨骼的位置,调整人物的姿势以制作动画

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

5.骨骼模型与动画的导出

使用Rigify制作动画的导出

首先,将rig和网格体放在同一个集合中,并且将rig重命名为Armature(否则在UE4中的骨架会多一层rig导致无法兼容!)如果我们要导出我们调好的动画和骨骼网格体,我们应该选择骨架和网格体,FBX导出设置应为导出选中物体,并且在骨架设置中去掉增加叶骨,勾选上仅使骨骼形变。

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

导入至UE4中时,骨骼网格体的骨架设置应为创建新的骨架。

导出兼容UE4 Mannequin的骨骼网格体以兼容虚幻引擎市场资源

我们需要在UEFY面板中点击Set Original Bone Rolls(会破坏Rigify骨骼!)

使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼

然后再使用之前的设置导出。

导入至UE4中时,骨骼网格体的骨架设置应为UE4 Mannequin骨架。这样你的人物模型就可以使用虚幻引擎市场上购买的动画资源了。

发布于 07-17