Are there any spines done with B-Bones?

I really like the concept of b-bones. They work fine in the rig itself, but when I use it on a character mesh, the region around the beginning and end of the b-bone, with verts that are shared between the b-bone and normal bones, make a strange noisy distortion.

No amount of smoothing can correct it, on either side (b-bone or the normal bones). It looks like it happens “internally”, the way the weights are distributed along the b-bone segments.

I didn’t post a .blend because I’m on my phone.
So I wanted to know if anyone has ever seen a character rig where the spine is done with b-bones so I can look into it, or if I should just use something else for spines.

The problem here is really the deformation in the transition between a b-bone and a normal bone.

Yes they’re handy but kinda tricky to work with, there are workarounds though. Recently Aligorith added the possibility of using different bones as “reference handles” - ie those bones that define the deformation that is transfered to the end of the connected bones. You can use that, or you can just disable inherit scale on that particular end bone (usually it’s the scale that messes everything up) and add a scale constraint from the root bone to it so that your character stays scalable.

I have run into something similar recently, I don’t know if it is exactly the same problem, and it was because the bones had different orientations. The roll values of the related bones should be the same. I solved it entering in edit mode and adjusting the roll degree values.

Nope. Never seen one…:stuck_out_tongue:


I may…or may not have done 17 tutorials on the subject. (Rigify)

Good luck!

Hi guys, thanks for looking into it.
I managed to get a clip of it in action:

https://s14.postimg.org/x4a1za3wh/bbone_spine_deform.gif

It’s that part where it compresses into itself around the waist.
Looking at it again (and with that test model), I guess I’m expecting too much. When the chest tilts down, or when the hips tilt up, it’s going to form a crease.

bbone spine.blend (451 KB)

The mesh looks much better with the Corrective Smooth modifier. I guess I’ll have to use a vertex group to limit it to only that torso region. Or am I missing something?

Edit: Hi Dan. Okay, I’m checking

.

Yeah actually this is a limitation of bbones : the skinning will only be as smooth as there are subdivisions in the bbone. You’ll need to increase the subdivisions. Bbones are best used for mesh deforms, which are lower density, or cartoony characters whose basemesh are also low density.

I see, more b-bone subdivisions does improve the deformation!
I also noticed that the position of the b-bone within the mesh greatly affects that creasing: if you centre the bone in the mesh (rather than leaving it close to the surface) it improves the deformation. The closer it is to the surface of the mesh, the worse the crease gets on the other side.

However, I don’t think b-bones can be used in the same rig as normal bones for now, because of a peculiar fact: vertices seem to be “re-assigned” to b-bones as you change the shape keys of the mesh. The vertices seem to pop in place.
So you can’t have corrective shape keys – for the armpit, the thighs etc. regions with shared verts between b-bones and normal bones:
https://blender.community/c/rightclickselect/t0bbbc/b-bones-don-t-work-with-shape-keys

If anyone thinks this should be reported as a bug, please go ahead and do it.