1
$\begingroup$

I posed the character feet, so they match with the position of the heels, but I can't parent them with that pose. This is the feet pose with the heels.Normal pose

And this is how they deform when parented. Heels parented

This is the rest poseRest pose

Is there a way to parent the heels without changing the rest pose? Or a way to copy the first "pose" into a shape key, so the heels will be in the correct position?


I got it working thanks to one of the solutions, but when I tried to rotate the character with the root bone, the shoes bones don't move along the feet. This is the normal poseNormal pose

And this is how it looks after rotating the root bone Rotating the root bone

$\endgroup$
3
  • 1
    $\begingroup$ I would apply the armature modifier on the heels objects with the correct pose so that it's their default state, then add a new one. Or store the feet posed for heels in the asset browser. Or add another set of bones specifically for controlling the shoes, and store that bone's pose in the asset browser. $\endgroup$
    – Lauloque
    Commented Oct 5, 2023 at 4:57
  • $\begingroup$ Or parent and modify the mesh so that it gets the shape you want? $\endgroup$
    – moonboots
    Commented Oct 5, 2023 at 7:00
  • $\begingroup$ @L0Lock How does the applying modifier work? I tried that, but when I parented the heels again, they deformed as always. Also tried with extra bones, but they don't work well when moving the foot. $\endgroup$
    – Kai
    Commented Oct 5, 2023 at 16:05

1 Answer 1

2
$\begingroup$

First, let's do a little recap of where we start from:

We have a rig with feet and toes bones that deform the mesh and are controlled by multiple controller bones using KF and IK systems.

The character was rigged barefoot, and bound to the armature with its feet flat on the ground.

We could apply the armature posed with shoes and freeze the mesh as is, if the character is only meant to always have this pair of shoes on and never be barefoot.

For the cases where the character might not wear shoes, or wear different ones, one possibility is to incorporate the shoes in the rig system.
But we need to be able to deform the shoes with the toes, and be able to work with multiple shoes. In that regard, one way to do it is to keep the rig and character's meshes built for barefoot, add a shoe and toe bone, and store poses in the asset browser for each shoe.

We start from having already added the shoe bones, constrained to the feet IK controllers with a "Child Of" constraint.


A bit of preparation work to help ourselves in the future:

  1. In the armature settings, enable the name display:
    enter image description here
  2. In pose mode, select the two shoes bones press M to move them to a different layer and chose the last of the left-side group:
    enter image description here
  3. In the armature settings, select that same layer, and ⇧ Shift select the last third in the right-side group of layers, which contains your rig's deformation bones:
    enter image description here

Your viewport should show this:

enter image description here

Change the shoe parent to the foot deformer bone

We need to switch the shoe bones' Child Of targets to the bones that actually deform the foot instead of the foot IK controller, as the IK one doesn't carry the rotation you add to the foot when posed for wearing the shoe on.

Select a shoe bone, and change its Child Of constraint target bone to its corresponding DEF-foot bone. Hit the "Set Inverse" button. Repeat for the other foot. You should have something like this:

enter image description here

Now, enable X-mirror posing in the top-right corner of the viewport:
enter image description here

You can place one of the shoe's bone correctly around the foot, and the other shoe bone will be aligned at the same time.

You can disable X-mirror posing once you have something like this:

enter image description here

Add a toe bone to the shoes

In edit mode, with X-mirror enabled, select the tail of a shoe bone, hit e to extrude a new bone as child, Y to lock it to the Y axis, and hit enter once the bone look ok. Rename both bones to something like ShoeToe with .L and .R on each side. Which would look like this:

enter image description here

Tab in pose mode, select one of the DEF-toe bone, then ⇧ Shift select its corresponding ShoeToe bone, hit ⎈ Ctrl⇧ ShiftC > Add Constraint (With Target) Child Of. This will make the ShoeToe bone inherit the toe bone rotation.

Weight the toe of the shoes to the ShoeToe bone

In object mode, select the Armature, then shift select the shoe model, and ↹ Tab into Weight Paint Mode.

In the mesh properties, in Vertex Groups panel, create two new groups named after the ShoeToe bones.

Make sure these options are enabled in the weight paint tool:

enter image description here

With this, if you correctly named your bones and groups with L/R extensions, you can select one of the vertex groups and paint it, it will automatically "take away" the weights from the foot bones to the toe, and also paint the other shoe's weights.

It should look like this:
enter image description here

Final Adjustment

You can deselect the deformer bones' layer and select the legs' IK and FK bones.

Polish the pose of the shoe and its toes to make it perfectly fit the feet as it is posed right now. When you are satisfied with the pose of both the feet and shoes, select their controller bones

To do this, enable the "Pose Library" addon in the Preferences. Then select the bones you want to save a pose from, and go to the Asset Browser > Asset menu > Create Pose Asset. Give it a name, even a thumbnail if you want. And you can double-click it from the asset browser to apply it.

You might notice that your feet and shoe model do not bend the same way. Since your shoe is the one being adapted to your feet, pose the feet with a bent toe, go to weight paint mode, and try to edit the ShoeToe weights until they make the shoe deform the shoe's toes correctly. Edit the position of the rotation point of the bones if needed

$\endgroup$
4
  • $\begingroup$ I got it working, but now I just tested something that I forgot and it doesn't work well. When I rotate or move the root bone, the shoes bones moves incorrectly and doesn't follow the feet rotation or movement $\endgroup$
    – Kai
    Commented Oct 6, 2023 at 0:22
  • $\begingroup$ please edit your question to add details about this new issue. please consider sharing your file as well. $\endgroup$
    – Lauloque
    Commented Oct 6, 2023 at 4:25
  • $\begingroup$ Added the issue and blend file $\endgroup$
    – Kai
    Commented Oct 6, 2023 at 14:16
  • $\begingroup$ I'm making a new answer, the solutions I proposed aren't enough adapted to your rig, plus you also need to be able to deform the shoes to follow the toes' deformation so solution 3 is actually the worse in that regard. $\endgroup$
    – Lauloque
    Commented Oct 9, 2023 at 19:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .