- 问题
- Rigify的模块化实现
- BasicHuman Meta-Rig模块分解
- 解决办法
- 小结
前两天有朋友说使用Rigify时,当移动了某些骨骼后,再生成最终绑定时会报如下错误
RIGIFY ERROR: Bone 'spine.004': Cannot connect chain - bone position is disjoint.Incorrect armature for type 'chain_rigs'
错误信息已经指出的大致问题所在,下面老王结合BasicHuman Meta-Rig(其它类型原理相近)进一步解释一下原因和解决办法
Rigify的模块化实现下面这个图就是完全没有移动过的BasicHuman Meta-Rig
话说Blender自带的Rigify真是不错,不仅方便还具有很强的扩展性。其中扩展性的来源是其模块化
的设计。下面通过Shift + A
新建的其实都是由各个模块
组合成的一些常用预设
在骨骼的编辑模式
下,我们可以看到Rigify的模块库
下面老王先根据模块把BasicHuman Meta-Rig拆解一下(有点像吃剩的炸鸡)
- 头部和颈部是由
spines.super_head
模块构成 - 脊椎部由
spines.basic_spine
模块构成 - 红色线框部分都是分别由
basic.super_copy
模块构成 - 胳膊和腿都是由
limbs.super_limb
模块构成,但是前者为骨架
类型后者为Leg
一般来说模块和模块之间相对独立,我们删除不需要的模块,比如我们不需要胸部骨骼,完全可以将其删除;也可以添加想要的模块,比如我们可以添加多个limbs.super_limb
构成一只螃蟹的绑定
但是也有特例,有些模块要求相互链接在一起,比如spines.super_head
一定要连接到spines.basic_spine
上,细想想这个设计也是符合逻辑的
那么为什么不把spines.super_head
和spines.basic_spine
定义成一个模块呢,因为有时候一个脊椎上可以上多个头啊。
于是,那位朋友生成最终绑定时出错,多半是遇到了下面的情况
解决步骤
先选择spines.basic_spine
的顶部,然后Shift + S
将游标定位到它的顶部 然后再选中
spines.super_head
的底部,然后再Shift + S
将其底部定位到游标处,这样,二者就到相同的位置了
然后在
姿态模式
下确认一下spines.super_head
的Connect chain
选项是否勾选了(一般默认就是勾选的)
经过上面的修复,就又可以生成最终绑定了
推荐大家看一下油管UP主 的《Rig Anything With Rigify》B站上有资源