Rigify switchable parent

Hello everyone,
Does anyone could please detail how we can set up a new switchable parent constraint for an additionnal bone in Rigify?
For example a prop like a sword that we want to switch from left hand to right hand or the hips or to the back.
Like the switch we can find and use for the hand’s IKs.
The documentation is quite short;
https://docs.blender.org/manual/en/latest/addons/rigging/rigify/rig_types/basic.html
After checking Master Control and Switchable Parent for the metarig in Pose Mode, what’s next?
We just get a choice between none and Root in the generated rig.
They talk about tags, does anyone have a list somewhere?

thank you very much

1 Like

So
It looks like if you parent a new bone setted as basic.pivot to existing default Rigify hierachy and check the Master Control and Switchable Parent options, Rigify will automatically find the switchable parent candidates.
By default Root, Torso, Hips and Chest.
But let’s say you created a HandLink.L Bone parented to the LeftHand and a Sword Bone parented to the HandLink.L Bone, it will benefit of the entire left arm hierarchy added to the default one.

And your Sword bone will be able to switch from HandLink.L to Hand.L, Hand_IK.L, Shoulder.L, Head, Chest, Hips, Torso and Root.

I suppose there is a way to add also a HandLink.R but I didn’t find it yet.
There is a work around since you can edit the Switch parent constraint created in the Rig Hierarchy and replace an existing target you will not use (like the Shoulder one for example) and target the HandLink.R
but you will have to redo the change if you regenerate the Rig.

If anyone has explanations regarding the Tags and Register Parent option it is welcome.

1 Like

i would also like to know about tags and switchable parents. I will try to look up into this topic!

I’m also wondering about this. The only viable workaround for me is to keep switchable objects in root and use Dynamic Parent addon to switch parents. Would be nice to implement this switch inside the rig.

Maybe there is a rigify custom widget that someone has made for this purpose?

You can simply make a custom property with integers, copy data path of that, set a few child of constraints for parent switching and add a driver in the influence with that data path as scripted expression, and set the scripted expression to “var = 1” and increase the number for every other driven influence of the other constraints.

the arise problem when you want to scale a character root bone, because you have child of and a root influencing a prop object, you will have a double transformations