Blender Rigify使用基础指南 (含Rigify——游戏引擎工作流 ...
前情提要:本文为上一篇Blender插件专题文章系列,关于rigify插件的特辑篇,坑了很久终于写完了,查阅大量资料,为Blender动画制作/游戏开发提供指导非专业动作师,内容并不一定全面,欢迎在提问区补充或者提问,如果看到了,会持续更新文章内容
左侧有文章目录,按需跳跃阅读,全文五千字,注意阅读流量消耗,pc端阅读体验更佳
插件安装
rigify为官方内置插件,在插件设置中搜索rigify勾选启用即可
简介
Rigify是Blender官方内置的插件之一,专门用于快速的骨骼搭建与动画制作,它可以在普通骨骼上快速生成带有ik预算的符合运动规律的骨骼套装,整体约等于低配版3D Max Biped骨骼
Rigify动画制作适用范围:
Blender内三维动画的制作 配合多种骨骼约束+曲线编辑器,能完成95%的动画内容
游戏角色动作制作 非必要不推荐,但如果已经前置投入了太多时间成本(比如已经做了好多动作。。),可以往下阅读,有对应的解决方法
Rigify工作流
继续往下阅读的朋友可以先阅读这张鱼骨图,文章架构与此图一致
1.元骨骼搭建与Rig创建
Rigify插件的核心功能为一键为metarig生成Rig骨骼
下图为metarig(元骨骼)与Rig的关系
在搭建骨架之前,需要做的一步是确认模型的变换全部归零,位置000,旋转000,缩放111
保证模型位于世界原点中央,没有处理好的变换会在后续带来很多麻烦,切记
rig的生成:选中搭建好的元骨骼,点击Generate Rig即可一键生成,如果生成不完整,说明有问题需要解决,一般都会报错提示
1-1角色类骨骼搭建
模型来源于https://sketchfab.com/3d-models/low-poly-male-base-mesh-7b9411ff0c624321baf4caac014bc0bd
角色类骨骼搭建,第一步需要关注:1.是否需要面部骨骼2.是否需要手指骨骼
Blender内置了两种基础人体骨骼,如果面部手指都不需要,选择右边这种,其他情况,选择左边这种
创建好后,进入编辑模式对骨架进行编辑,保证骨骼都放置在合适的位置上,与模型匹配,这里为了演示,我选择左边的复杂骨架,有两个编辑骨架时可以使用的小技巧:
点击骨架,勾选在前面,这样模型就不会挡住骨架无法看到了
进入编辑模式,一般都需要打开x轴对称,保证两边骨架对称
删除面部骨骼
面部骨骼我基本都会删除,因为很少用到
删除面部骨骼需要注意,有一个隐藏在head骨中的骨骼,名为face,删除面部骨骼时需要将face删除,否则生成rig时rigify会提示:
Generation has thrown an exception: 'bpy_prop_collection: key "ORG-nose" not found'
意思就是rigify检测到了face骨骼,认为你需要面部骨骼,但是别的骨骼都没有了,所以出错了
手指骨骼的编辑
默认角色手指骨架都有5根手指,每根手指有4节骨骼,但是通常我们会有一些特殊需要:
如角色只有4个手指;角色手指骨骼数量需要减少
默认手指如上图所示:
palm大拇指 f_index食指 f_middle中指 f_ring无名指 f_pinky小指
手指编辑注意事项:
a.删减手指骨骼,只能删去最末骨骼xxx.03,因为手指要求指节数量>=2
只能删除选中的这些骨骼
b. 如果需要删除手指,手指骨骼需要整根删除
缩减到只剩2根手指,只有5根手指骨的情况
c. 骨骼扭转方向
生成Rig后,Rig的控制点如果与模型的方向并不一致,会在动画制作中产生一些问题,如下图所示
图片来自网络,展示了metarig扭转方向不对导致的手指“骨折”的问题
就需要在编辑模式下,使用扭转工具矫正骨骼的方向,校正后,重新创建rig,会自动覆盖掉原来的那个
d.关节曲度细节
人体的骨骼的大部分关节是有弯曲方向的,在编辑骨骼的时候,也要注意制作一个大钝角,避免rig中出现关节向反方向弯折的问题
1-2动物类骨骼搭建
动物类骨骼内置有鸟,猫,等等,此处暂时不详细讲解,注意点与人体骨骼大同小异
1-3其他骨骼搭建
其他骨骼常用于:身体上的其他物体/装备的绑定/场景可动物品的绑定等等
[*]身体附件骨骼搭建:胡子,马尾辫,尾巴等
以马尾辫为例,这个角色的马尾辫需要绑定,那么我们可以怎么做呢?
选中编辑好基础骨架的骨骼,在编辑模式下,进入小人图案的页签,找到Rigify Button栏中的Tail骨骼,点击Add sample
界面中就会出现名为Tail的骨骼段,编辑它,让这个骨骼与马尾辫匹配
而且,因为马尾辫是附着在头上的,所以让Tail成为头部骨骼的子级
点击生成Rig,rig骨骼上就增加了一个马尾辫的骨骼了,并且可以随头部移动而移动
其他类型的附加骨骼,比如胡子,尾巴,n个手,n个头的怪物等等,都使用同一个流程往默认骨架上增加东西,注意选择正确的骨骼类型
条状类骨骼也可以使用tentacle(触手),和tail没发现有什么区别
[*]装备骨骼搭建:无形变装备如手枪,剑,刀等物品
以下图为例,人物有一个简单的无形变装备需要绑定,需要做手持动作
(1)先让装备坐标归0,应用所有变换
(2)编辑metarig,添加单段骨骼
(3)让骨骼与装备大致匹配,并且重命名,如Weapon,双手武器可以命名为Weapon.L和Weapon.R
(4)退出编辑模式,进入姿态模式,为这个weapon骨骼赋予rigify骨骼类型:basic_super_copy
再次创建Rig,我们就得到了为装备准备的控制键
[*]场景可动物品骨骼搭建:如滚动的风车,被风吹动的旗子等等
场景类的骨骼搭建与角色大同小异,注意以下几点:
将骨骼安排在正确的位置;选择正确的骨骼预制;确认好父子级关系与相连关系;赋予正确的rig类型
2.蒙皮与权重绘制
创建好Rig骨骼后,先选中模型,后选中rig,Ctrl P创建父级
一般选择附带自动权重即可
权重绘制技巧
进行自动蒙皮后,通常Blender自动赋予的权重是有问题的,需要手动在权重绘制模式/编辑模式中进行修正
权重信息位于模型的每一个顶点上,储存在顶点组中
顶点组与骨骼依靠名字一一对应
[*]权重对称
在Blender中,骨骼的名字按.L和.R两种后缀分为左侧骨骼和右侧骨骼
在刷权重的时候,我们一般也都需要让左侧和右侧的骨骼权重保持对称关系,不希望重复工作
我使用的Blender版本为2.93,开启对称的方法就是点击工具栏下的对称选项,会自动让成对的权重绘制保持对称关系
不同版本的选项有轻微的不同,具体可以看一下下面这个教程中的解说,自己多尝试几次找一下设置的方式也是可以的
[*]快速选择骨骼
这是一个很有用的小技巧,帮助你提升绘制权重的效率
在绘制权重的时候,可以将鼠标放在目标位置周围,按住Shift+单击鼠标右键,快速选择你需要的顶点组
[*]给整体物体赋予权重
在权重绘制中经常出现的一个需求就是某个物体需要整个赋予权重,每一个角落都不可错过
这样的需求可以在编辑模式中处理
选择物体的所有相连顶点(Ctrl L),在顶点组页签中为所有顶点指定某一个值的权重
3.动作制作
非专业动画师,没做过很复杂的动作,所以只列出几个人用过的小技巧,仅供参考
编辑动作的时候,注意:右侧菜单栏中有一堆Rigify的可操纵条目,其中Rig Layers最为常用,可以控制骨骼组的显示与隐藏
3-1几个动画效果的实现
[*]手指弯曲
姿态模式下, 选择手指骨骼的几个操纵杆,按下S进行缩放,就可以快速弯曲手指了
[*]手持武器
如,我希望这个武器可以手持在左手上,随着左手的运动而运动
我们需要用到骨骼约束,姿态模式下,进入骨骼约束属性,添加骨骼约束——子级
让武器的骨骼成为DEF-hand.L的子级即可实现我们需要的效果(DEF-前缀开头的骨骼都是形变骨,是正确的约束目标)
子级骨骼约束下的两个按钮:设置反向与清除反向,是用于控制武器骨骼与左手骨骼的,比较不好描述,实践一下就大概知道是什么意思了
骨骼约束还有n多种控制器,个人了解的也并不全面,因此此处不多赘述
3-2 动作编辑与保存
动作的编辑最主要用到下面几个页面,必须熟练掌握
[*]伪用户
动作编辑器中,动作槽后的小盾牌,可以有效保护动作数据不被误删,很常用的功能,被保护的动作片段名字前有大写字母F
[*]负时间轴
有些情况下需要开启负时间轴,比如模拟布料,前往偏好设置——动画中勾选即可
3-3 NLA 非线性动画
简单理解NLA编辑器,主要是2点:【动作的组装】和【输出动作的控制】
[*]动作的组装与混合
我们知道,动作数据储存在动作编辑器中,如走路,跑步,待机分别是3个不同的动作片段
那么,如果我们需要一个动作,角色先走路5秒,后跑步2秒,然后停下进入待机状态,这3个动作片段就需要在NLA中进行编辑混合
关于动作的编辑,以下视频讲解得非常清楚了,有需要的朋友可以自行了解一下
[*]输出动作的控制
详见4-2 导出设置
4. 导出到游戏引擎工作流
以下内容属于拓展部分,适用于游戏创作者、动作需要导出到引擎内编辑的3D艺术家们
rigify——UnityRigify骨骼烘焙插件
经过实践验证,rigify骨骼动作如果直接导入unity,会有以下问题:
[*]blender导出角色变形,引擎中产生异常形变
[*]骨骼包含多余的骨骼,无法在unity中匹配生成人形骨骼,也不符合游戏运行的要求
[*]单独导出蒙皮、动作文件时出现层级匹配错误
Rigify导入unity的骨骼层级极多,含有大量不必要的骨骼
以上这些乱七八糟的问题,一句话总结就是——Rigify骨骼不能直接导入游戏引擎,需要一套为游戏引擎准备的骨骼,烘焙了rig骨骼的动作后,再导入引擎使用
下图为3种骨骼之间的关系
针对这个问题需求,有现成的插件可以使用——Game Rig Tools
下面是插件下载的网址
请大家支持正版,力所能及为创作者提供物理支持,无法支付外汇的童鞋下载框中输入0即可免费下载
无法科技上网的朋友也可以度娘搜索 【Game Rig Tool下载】,注意甄别资源,不要中病毒
下面这个是插件的官方视频教程
4-1 插件的使用方法
(1)生成游戏骨骼
安装好插件后,选择rig骨骼,点击Generate Game Rig,生成游戏骨骼,骨骼的名称可以自己编辑,其他选项保持默认即可
生成的骨骼显示为绿色,因为这个骨骼的每一根都自动配置好了骨骼约束,与rig的形变骨(DEF-前缀的骨骼)运动保持完全一致
需要切换显示约束与否,可以在这2个按钮之间切换即可
https://u3dchina.com/data:image/svg+xml;utf8,<svg xmlns=&#39;http://www.w3.org/2000/svg&#39; width=&#39;298&#39; height=&#39;145&#39;></svg>
(2)动作烘焙
如图所示,我有一个名为Action的动作需要烘焙到游戏骨骼上导出,在右侧插件工具栏的动作烘焙页签下,点击加号键,添加需要烘焙的动作(动作可以有多个,会依次烘焙)
然后,在烘焙设置中,添加好rig骨骼和游戏骨骼
点击烘焙动作,按需编辑动作的名字,增加后缀/前缀/替换,选项不明白的全都保持默认即可,点确定
烘焙好的动作就储存在动作编辑器中了
4-2 导出设置
导出设置可以照抄我提供的配置(仅限Blender导出到Unity,Unreal没测试过,或许有些微的不同)
导出设置建议添加一个预设并命名好名字,这样每次输出直接点击预设就可以了
[*]动作输出
动作输出注意勾选NLA片段
在NLA中将动作片段下推到槽位中
输出fbx的时候,只有被勾选的动画会被输出,没有勾选的就不会被输出,也可以对NLA动作片段进行混合处理,详见3-3
进入Unity后,我们勾选的动作片段就包含在fbx文件中了
http://pic2.zhimg.com/v2-dc303827bb5ac88c201c824cfb88b99_r.jpg
[*]角度矫正
按照角度归0输出的模型,进入Unity后会有一个-90度的角度,一般来说问题不大,但也可以进行调整
这个问题的原因是Blender和Unity的默认轴向不同
既然进入unity后x轴会-90°,那么只需要让模型在Blender中有x轴90°的角度,进入Unity时角度就是归0的了
选择模型,让模型在x轴方向旋转90°,这时模型会魔改,但是不要紧
进入编辑模式,确保游标在世界原点,以游标为原点旋转90°,让模型恢复原状
目标达成,再重新输出进入Unity,模型的XYZ旋转都归零且轴向正确,符合需求
结语
不知不觉写了五千字..内容肯定无法全面,写的过程中我也填补了一些盲点,自认为还是有价值的
点赞,收藏下!
有问题可以评论区留言!:D
页:
[1]