使用UEFY插件创建兼容UE4和Blender/Rigify的人物骨骼
本文旨在帮助UE4独立开发者使用市场购买的动画资源以及人物模型素材。
UEFY插件购买地址:https://www.rakiz.com/uefy/
开始前的准备:
一个任意的人物模型
Blender2.80+版本
UEFY插件
从UE4中导出的Mannequin小白人
1.导入模型
首先打开Blender,新建一个项目并且将单位设置中的缩放单位调整至0.01。
这么做是因为虽然Blender的模型与UE4的比例是1:1,但骨骼的单位比例却是100:1。
现在,导入你想要构建骨骼的人物模型,将其放置在原点,确认它的面向是X轴正方向
然后导入UE4标准的Mannequin模型。模型可以在UE4新建的项目中找到并导出,在Blender中的导入设置应如下
即不导入动画,并且勾上自动骨骼坐标系。导入完成后我们选中Mannequin以及它的骨架,向Y轴方向移动一个单位。
我们现在暂时不需要用到Mannequin,可以把他放在一个新的集合里隐藏。
2.基础骨架的构建
首先我们需要构建人物模型的基础骨架。
脊柱
设置光标到原点,新建一个单节骨骼,点选他进入编辑模式(一定要确保进入编辑模式再移动!不能改变它的原点位置——作为UE4编辑器内骨骼的root位置)放大一点,将他放置到人物的盆骨位置并调整大小。在属性——骨架属性——视图显示中调整他为始终在前。H键可以隐藏选中物体,alt+H可以显示所有隐藏物体。
现在,还是在编辑模式中,我们点选这根骨骼的上端使用E键进行扩展,创建三段脊柱,一段脖子和头部骨骼。
左腿
进入前视图,选择盆骨骨骼,按E键扩展生成一段临时骨骼,然后通过它生成左大腿——小腿——左足——趾尖,再选中临时骨骼删除它。
这里我们可以通过一种方式调整关节的位置:进入物体模式,点选网格体,进入网格编辑的边模式
找到关节应该在的位置,使用alt+左键点选横边选择这一圈边,使用shift+S将光标移至所选位置。
现在回到物体模式,点选骨架,进入骨骼编辑模式,点选你要移动的关节,使用shift+s将所选移至光标位置
这样我们就可以很方便的对其所需放置的关节位置。
左臂
现在构建上肢部分。从脊柱和脖子骨骼的中间关节创建一段临时骨骼,创建出我们的左肩膀骨骼,然后再创建一段临时骨骼,延伸出左上臂——小臂——左手
删除这两段虚拟骨骼。仔细观察UE4 Mannequin的肩膀位置!将肩膀骨骼调整到图示位置
然后根据左腿部分调节关节位置的方法,调整好每个关节的位置。
左手
现在进入手掌部分的编辑。
从左手骨骼的末端延伸出一段虚拟骨骼,再延伸出食指的骨骼,删除这段虚拟骨骼(图中所选)。
在UE4 Mannequin的骨骼中,手掌骨骼的位置是稍微偏向食指的。
我们点选生成的手指骨骼,shift+D复制他到五个手指。
将每一段手指骨骼细分成三节,使用之前的方法对齐到手指上的关节骨骼。
3.骨架的更名和坐标轴的修改
我们需要把创建的骨骼修改为和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
这个部分可以使用最新版的uefy插件一键完成。点选blender上方选项卡的Scripting,选择uefy.py,点击运行,我们就可以在骨骼属性选项卡中看到UEFY面板。
点选对应骨骼段的第一根骨骼,在面板中选中对应骨骼链点击Rename Bones即可完成。
接下来我们需要调整骨骼的坐标轴朝向。在UE4中默认的骨骼坐标轴朝向规则如下:
脊柱和左大腿/小腿/肩膀/左上臂/下臂部分:X轴穿过网格体向网格体后方
左手手掌:穿过手掌向掌心
左手手指:向掌心
左脚脚掌:向Y轴正方向(模型左侧,前视图右侧)
左脚脚尖:向上(z轴正方向)
对于脊柱和上下肢的编辑我们可以使用shift点选多个,在UEFY面板中找到bone roll tools进行快速坐标轴旋转。
对于手指,我们可以只编辑01骨骼,然后用shift依次选择03-02-01,使用shift-N菜单中的活动骨骼进行快速调整。
至此。我们的骨架就创建完成了。在骨骼编辑模式全选骨架,右键点击对称即可快速生成右侧的骨骼。
在物体模式下shift依次选择网格体和骨架,使用ctrl+P选择自动生成权重的骨架依附即可绑定模型和骨骼
在物体模式下shift依次选择骨架和网格体,进入权重绘制模式,在视图叠加层中选择权重绘制——零权重——活动项可以更好的观察自动生成的权重
4.生成兼容rigify动画的骨架
调整导入的Mannequins
将Mannequin的脚骨骼末端对齐至脚趾骨骼的首端,将脚趾骨骼旋转-90度使其向前并缩放至正确大小,shift选择这两个骨骼右键点击镜像以应用至另一边
返回物体模式。确认你的人物模型和骨架的旋转为(0,0,0),坐标为(0,0,0)并且缩放比例为(1,1,1)。
如果不是,分别选择他们使用CTRL+A应用所有变换。
将光标移至原点,新建一个骨架Human(meta-rig)
如果找不到这个选项请确认自己已经开启rigify插件
选择这个骨架,缩放至100倍大小,再手动调整至肩膀与我们创建的骨架对齐。
应用这个骨架上的全部变换。
在uefy面板上设置好你的人物-UE4 Mannequin-metarig骨架的对应名称
点击Setup Character Bone Names,然后点击Pose Character,你的人物就会转换为与UE4 Mannequin 相同的A-POSE。
如果你的人物是从其他姿势转换到A-POSE,最好修改脚步骨骼让脚部垂直着地。
在姿势模式下,选择一边骨骼,使用ctrl+C,Shift+Ctrl+V可以应用至另一边
因为UE4 Mannequin的手指问题,你的人物骨骼可能手指会有问题。框选这些骨骼,使用alt+R来调整他们。
现在如果我们进入编辑模式我们会发现人物的姿势没有变化。要解决这个问题,我们先要进入物体模式,选择网格体,在属性栏的修改器属性中复制第一个修改器,然后应用新生成的那一个,选择骨架,进入姿势模式,使用CTRL+A应用当前姿势为休息姿势。
创建与rigify兼容的骨架
现在点击下方的Pose Metarig,metarig的姿势就会与你的骨架大致相同了。
我们还需要修改metarig的脊柱。隐藏除了两个骨架之外的所有物体,用shift选择两个骨架,进入编辑模式,隐藏除了脊柱之外的其他所有骨骼,在右视图中调整metarig的脊柱和我们创建的脊柱相同。
首先选择metarig脊柱对齐脖子位置。然后再分上下两段分别调整,使所有关节对齐。
进入物体模式,选择网格体,在属性菜单的修改器属性中应用所有修改器,在物体属性的关系中与父级断开联系。
现在,我们手动生成的骨架基本没有用了,我们隐藏他。将metarig置于前端,调整脚部骨骼
在前视图中将heel骨骼对齐至与脚掌同宽,两端Z轴值为0,在右视图中将两端对齐至水平之后移至脚跟处
右键点击这根骨骼点击对称至另一端
回到物体模式,选择metarig。在属性面板-骨架属性-Rigify Buttons中点击Generate Rig即可生成兼容于Rigify的骨架。
现在,隐藏metarig,点击网格体,shift选择创建的新的骨架,CTRL+P选择骨架绑定。
现在在姿势模式下,点击新生成的Rigify骨架,在骨架属性的UEFY面板中点击Build Unreal Skeleton,再点击Weight Paint,我们就能使用Rigify调整它的姿势了。
如果我们需要更改权重的绑定或者增加新的骨骼,我们需要在图层的这三层中编辑:
只有这三层的骨骼会被导出至FBX中。新生成的关节也需要在这里绘制权重!
这三层中,左侧的是会被导出的骨骼,中间层是面部Rig骨骼,右侧层是IK虚拟控制骨骼的部分。
在姿势模式中,在Rig Layers shift选择Rig层可以去移动控制骨骼的位置,调整人物的姿势以制作动画。
5.骨骼模型与动画的导出
使用Rigify制作动画的导出
首先,将rig和网格体放在同一个集合中,并且将rig重命名为Armature(否则在UE4中的骨架会多一层rig导致无法兼容!)如果我们要导出我们调好的动画和骨骼网格体,我们应该选择骨架和网格体,FBX导出设置应为导出选中物体,并且在骨架设置中去掉增加叶骨,勾选上仅使骨骼形变。
导入至UE4中时,骨骼网格体的骨架设置应为创建新的骨架。
导出兼容UE4 Mannequin的骨骼网格体以兼容虚幻引擎市场资源
我们需要在UEFY面板中点击Set Original Bone Rolls(会破坏Rigify骨骼!)
然后再使用之前的设置导出。
导入至UE4中时,骨骼网格体的骨架设置应为UE4 Mannequin骨架。这样这个人物模型就可以使用市场上购买的动画资源了。