Blender Transfer weight from character to clothing while character is posed.

Synx

Member
Jul 30, 2018
495
475
This is prob a long shot but might as well give it a try:

I have this character in Blender with the base flat footed T-pose as rest pose. Found some heels I liked that didn't fit her properly. To sculpt the heels to fit her, I put her into an heeled pose, lined up the heels and sculpted away.

Thats where i'm now; She is in her heeled pose, where the heels now fit her nicely.

Now i'm trying to add the heels to the rest of the rig. Normally for clothing I just parent the clothing to the rig with empty weights, and transfer the weights from the body to the clothing. This doesn't work since she isn't in her rest pose; The heels get deformed since the rig is deformed as well.

Is there a way to do this? Transfer the weights from the character to the heels while she is posed, without the heels getting deformed?
 

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
1,011
2 things:

In most cases, what I would do is save the file, and save as a new file just to be safe.
I could duplicate the character, rig, and everything, but I prefer not to clutter up my work space, hence saving as a different work file lets me do whatever without affecting the original.

With a version you feel safe to modify. Pose the character, and in pose mode you can set the current pose as the rest pose. Then you can do the transfer.

you can then pose the foot back to normal, and 'apply' the rig deformation modifier to the shoes.
Port the shoes back over to your original character with the original default pose, add the shoes to the armature (just select armature modifier, don't transfer or blank the weights, you want to keep the weights you already baked into the model), and it should return to normal once you pose the feet back to heel mode.

The second thing you could do, what I would do in rare cases such as armor or heels, is to avoid using armature control because I can't trust it will make the best results, and for things such as armor and heels, you don't need to deform them at all, they should be static. So i would just parent the heels too the foot bone, and pose the foot so it fits in the heel, it doesn't need to be perfect since the heels are static, you just need to hide the feet in the heels.
 
  • Like
Reactions: Synx

Synx

Member
Jul 30, 2018
495
475
Ow yeah true about the second option. I will just do that, thanks.

And save the first option incase I run into the same issue later on with a non static mesh.

Now I got you here anyway I got another question you might have an idea for (I asked this in blender exchange forum but they seem rather useless bout anything that isn't pretty basic).

I'm using Eevee and created a nice eye material for it. In lookdev mode the eyes have a small reflection of the HDRI in the eyes.

In rendered view this reflection isn't there, even if I add it as a background or light the scene with the same HDRI (which Isn't something you want to do in Eevee really). Is have somewhat faked it by adding the HDRI as an environment texture to the eyes material itself using a geometry node with reflection input. It looks good, but in the end it's still faked and the effect seems to be static as well.

Any idea on how to get the lookdev reflection to work in rendered view as well?
 

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
1,011
The reflection issue sounds odd, how you go about fixing it depends on what you are trying to do.

Based on:
even if I add it as a background or light the scene with the same HDRI (which Isn't something you want to do in Eevee really)
If I understood you correctly, it sounds like you want to avoid the HDRI as a background texture, and I assume this is because you want to avoid using it to light up the scene?

If that is the case, it makes wonder how you preview and materials are set up.
When you are talking about the HDRI are you confusing it with the preview HDRI?
1695593685598.png

Lookdev (eevee) reflections only really work based on the HDRI, or in special cases based on reflection probes. EEVEE is not able to handle true reflections (other than being able to see point/direction lights in the reflection)

A quick sanity check would be to add in a 100% reflective material node, and configure your eye material to use said node temporarily. This will just check to make sure that indeed the reflection is missing and that something is weird. An example of something weird are cases where look dev vs final render treat transparency the differently, and what looks good in look dev looks different in render, especially true if your render is Cycles and not EEVEE, and depenidng on what version of blender you use, EEVEE handles transparency different.

If you want to avoid lighting up your scene with the HDRI (if I understood you correctly), and you are not already using a HDRI then it sounds like you may have gotten the reflection confused with the HDRI preview effect. You'll need to turn on Scene World in the viewport shading to get something more accurate to your render. After than, I would then do what you already did, and just make a reflection node group to add a reflection to materials. I would do it this way simply because it adds the reflection in a controlled way, and doesn't affect the environment. And if you are using Cycles, this would get around the fact that cycles would block HDRI due to its path tracing hitting objects in the scene.

If you want to make it less static, I would add a Geometry INPUT node or texture coordinate node to modify the texture coordinates relative to the world rather than just relative to the Eye's UV, this way, the HDRI matches the world and moves if the eyes move. I would also suggest using a layer weight node to make the effect only really centered on the eye (and above), as well as filter the texture with some RGB Curves to min-max the light so the reflection is more of a glint and less of a texture wrapping the eye.

does that help at all?
 

Synx

Member
Jul 30, 2018
495
475
Not really my explanation wasn't very good I suppose. And weirdly enough its working now. Got no idea what changed but Blender acts sometimes in mysterious ways I suppose lol.

Just for explanation what I meant; This is how the eyes look in Look-Dev. The HDRI used in lookdev (the ones you got selected in your image, the forest scene) is reflected a bit in the eyes:

You don't have permission to view the spoiler content. Log in or register now.

Now setting up the same HDRI in Eevee renderview does show the reflection. Since I don't want the HDRI to actually light up the scene (HDRI don't create shadows in Eevee. Somewhat fixable by baking indirect lightning but still feels of), its somewhat workable by mixing the HDRI with a dark background using reflection light path set-up like this. Downside is that any material that has any specular is still lid up a bit by the HDRI (I don't know why the skin changes to complete black here).

You don't have permission to view the spoiler content. Log in or register now.

Reducing the white lowers the lightning of the HDRI but at the same time lowers the strength of the reflection, which kinda sucks. What i want is the above reflection effect but without the HDRI lighting up the scene at all.

And this is with faking the effect looks like what I used before (with the note set-up)
You don't have permission to view the spoiler content. Log in or register now.

This looks fine and is what i'm looking for but the downside is that its static. Moving the character around doesn't change the reflection.

I'm not sure what you meant by the last part, using a geo/texture node with coordinates relative to the world instead of the object. You mean using a vectore transform node to change it from object to world? I suppose that could drive the Y rotation in above set-up, might give that a try.