找回密码
 立即注册
查看: 703|回复: 0

Blender Rigify使用基础指南 (含Rigify——游戏引擎工作流 ...

[复制链接]
发表于 2022-7-5 08:36 | 显示全部楼层 |阅读模式
前情提要:本文为上一篇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]: 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——Unity  Rigify骨骼烘焙插件

经过实践验证,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个按钮之间切换即可


(2)动作烘焙
如图所示,我有一个名为Action的动作需要烘焙到游戏骨骼上导出,在右侧插件工具栏的动作烘焙页签下,点击加号键,添加需要烘焙的动作(动作可以有多个,会依次烘焙)


然后,在烘焙设置中,添加好rig骨骼和游戏骨骼


点击烘焙动作,按需编辑动作的名字,增加后缀/前缀/替换,选项不明白的全都保持默认即可,点确定


烘焙好的动作就储存在动作编辑器中了


4-2 导出设置

导出设置可以照抄我提供的配置(仅限Blender导出到Unity,Unreal没测试过,或许有些微的不同)


导出设置建议添加一个预设并命名好名字,这样每次输出直接点击预设就可以了



  • 动作输出
    动作输出注意勾选NLA片段



在NLA中将动作片段下推到槽位中


输出fbx的时候,只有被勾选的动画会被输出,没有勾选的就不会被输出,也可以对NLA动作片段进行混合处理,详见3-3


进入Unity后,我们勾选的动作片段就包含在fbx文件中了



  • 角度矫正
    按照角度归0输出的模型,进入Unity后会有一个-90度的角度,一般来说问题不大,但也可以进行调整
    这个问题的原因是Blender和Unity的默认轴向不同
    既然进入unity后x轴会-90°,那么只需要让模型在Blender中有x轴90°的角度,进入Unity时角度就是归0的了


选择模型,让模型在x轴方向旋转90°,这时模型会魔改,但是不要紧


进入编辑模式,确保游标在世界原点,以游标为原点旋转90°,让模型恢复原状


目标达成,再重新输出进入Unity,模型的XYZ旋转都归零且轴向正确,符合需求


结语

不知不觉写了五千字..内容肯定无法全面,写的过程中我也填补了一些盲点,自认为还是有价值的
点赞,收藏下!
有问题可以评论区留言!:D

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-22 10:29 , Processed in 0.092405 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表