Inverse Lock Bone (blender addon)
Inverse Lock Bone is a blender addon to lock a bone (e.g. toe bone) by recalculating something (e.g. the location of the master/root bone). In other words, given a location for the bone that needs to be locked, it can recalculate the location of the master/root bone to keep the Lock Bone locked. It is very helpful for MoCap which needs to lock the foot and recalculate the location of the master/root bone. Or in the manual animation when you almost finish your character's pose animation and just need to fix the foot sliding issue and recalculate the location of the master/root bone (i.e. controls the movement of the entire character), you may also need it. If the character always has one foot (left or right) on the ground during the animation, you can use this addon to complete the character's movement throughout the animation. You just need to switch the locked bone and make a few adjustments where the character switches his/her supporting foot. If the non-supporting foot sinks into the floor, you also have to do some adjustments to it. For the situations where both feet of the character are off the ground during the animation, you can move the character however you like.
Here is a clip from AI MoCap, the following two gifs show the difference between before and after processing.
Before: The master/root bone did not move as we expected, and the foot is gliding/sliding
After: The tail of the toe bone is locked in each step, the master/root bone's location is recalculated
Addon UI (In Pose Mode, bone properties)
There are four Lock Types: the Head point of the bone, the Tail point of the bone, the Center point of the bone, and the Entire bone. The first three Lock Types will only recalculate the location of the master/root bone. The last one, namely Entire, will also recalculate the rotation of the Lock Bone except recalculating the location of the master/root bone. After recalculating, each frame of the location of the master/root bone will be a keyframe. You can decimate them in the Graph Editor if you want. The same to the rotation of the Lock Bone if the lock type is Entire.
Example:
This is a clip from AI MoCap. Locking the tail point of the toe bone to a plane as an example.
precondition:If your animation is from MoCap, you may need to smooth the keyframes first. If you want to have smooth control of the adjustment of the legs but you have your animation frame by frame, you may also need to decimate the keyframes of legs in the Graph Editor. If you want to recalculate your master/root bone location from scratch, I would suggest you delete all the location keyframes of the master/root bone.
step one: Move the current frame to the frame that you to start from. Choose the master bone, and fill the master bone setting, and move the master bone until the Lock Bone to the location where you want to start the locking, and insert a location keyframe for the master bone.
step two: Choose the Lock Bone, fill in the start parameters by pressing the "Init Start Params" button, and choose the Lock Type if the default one is not what you want.
step three: Move the current frame to the frame that you want to end the locking (If you have the original video, it's better to use it as a reference to decide which frame to end the locking), and press the "Get End Frame" button and then the "Start Recalculate" button. Then, the master bone location will be recalculated.
step four: The locking is done, but there is still some adjustments job to do if your armature has no IK controllers, and this is the key step to switching the locked foot smoothly. If your armature has IK controllers and functions of baking IK/FK motion, you can skip this tedious step, otherwise, keep going. Go back to the Start Frame frame by frame to check if the non-supporting foot sinks into the floor, if yes, do some adjustments to it (by adjusting the rotation of the thigh or the shin or the foot, etc). Then go back to the End Frame, and check if the non-supporting foot is on the ground. If not, then adjust the rotation of the leg (thigh, shin, foot, toe, etc.) until it is. If these adjustments can't let the foot reach the ground or this is not what you want, then you can adjust the supporting leg and recalculate it again using the last parameters. The specific method is: create a new auxiliary plane (if it exists, unhide it), move the auxiliary plane to the location of the non-supporting foot, adjust the supporting foot until it is also on the same auxiliary plane, and then recalculate again using the last parameters. Once all that is done, it's time to switch the locking feet.
step five: Switch the Lock Bone. Repeat step two, step three, step four until the animation is done.
Tips:
1. For the situation that none of the feet is locked, you can duplicate some previous keyframes, and manually do your custom movement.
2. In the case of locking toe bones, each Lock Type has its pros and cons. Locking the tail of the bone is the simplest one and has fewer adjustments, but not that realistic. Locking the Head point of the bone or Locking the Entire bone, is more realistic, but sometimes there's more adjustments job to do. Each Lock Type has its use case and doesn't need to be the same.
3. If your animation is from MoCap, you may need your original video to decide in which frame your character switches his/her locked foot and during which frame range both of the feet are off the ground. And you also need it to do your adjustment job.
4. For efficient adjustment to the foot when the character switches his/her supporting foot, you may need IK control on your character's rig. If you need to lock both feet, you need IK control too. So it may be better to retarget your mocap motion to a rig with IK first and then do the clean-up job.
5. In practice, it may not be a good choice to directly use the armature without IK controllers and functions of baking IK/FK to do the cleaning-up jobs. If your animation has very few steps, that's fine, but if there are many steps, it will be very inefficient. A more practical approach would be to use this addon to lock the FK foot and recalculate the location of the hips bone, then bake FK to IK, and then use the IK controllers to lock the feet finally. The specific steps are: First, retarget the motion to an armature that has IK and FK controllers and functions of baking IK/FK motion. For example, Rigify rig, Auto-Rig Pro rig; Second, use this addon to lock the FK foot and recalculate the location of the Hips (torso/c_root_master.x) bone, in this step, we don't care about any sinking to the floor or not touching the floor or how to lock both feet. The main purpose of this step is to recalculate the location of the hips bone; Third, bake the FK motion to IK motion, and then use the IK controllers and/or other constraints to lock the foot.
The addon supports the basic armature, so the Rigify rig and the Auto-Rig Pro rig. More features and how to better integrate into the animation workflow are waiting for you to discover.
Blender version requirements:
Requires Blender 3.0+
Installation:
1. Edit > Preferences > Add-Ons
2. Click “Install…” button in the top right of the window
3. Find the Add-On file to install (usually a .zip or .py)
4. Click “Install Add-on”
5. Check the checkbox to enable the addon. Then in the pose mode, bone properties, you will find it.
Update:
version 1.1.1
- Added the blender_manifest.toml file.
- Made some adjustments to make it adapt to Blender Extension style.
version 1.1
- Made some adjustments along with the release of Blender 4.2
version 1.0
- First release
You will get the addon zip file. Requires Blender 3.0+