NitroxNova / humanizer

convert MakeHuman to Godot4
The Unlicense
149 stars 15 forks source link

[Feature Request] Add a color picker for Eyebrows #4

Closed jsbrn closed 7 months ago

jsbrn commented 7 months ago

I made a test human with Humanizer and quickly noticed that the eyebrows always match the hair color. I think hair color and eyebrow color should be separated.

That's all! Love what I'm seeing so far. I am building a sizable game and I think this plugin will significantly improve my character creation/animation workflow.

emberlightstudios commented 7 months ago

Yes this can be done. Right now they are linked to hair color, but we still need to modify most of the eyebrow textures to convert them from black to white so we can blend the color with the material's albedo color property. So far this has only been done for eyebrow 001.

emberlightstudios commented 7 months ago

Ok. A few remarks.

  1. I inverted the color on all the rest of the eyebrow albedo textures. They can now be colored with the hair color picker.
  2. I decided NOT to add a separate eyebrow color picker because I don't really want it to be separate from the hair color most of the time
  3. I did add a weighting which will darken the eyebrow color relative to the hair color. I know the eyebrow textures are much whiter than most of the hair textures and so the eyebrows were far too bright. I darkened them and they look a bit better now.

Note that if you want custom eyebrow color you can do this without an eyebrow color picker, and independent of the hair color picker. When you select a hair color, all it does is go to each MeshInstance for hair and eyebrow body parts and set the albedo_color property on its surface override material. You can also do this manually by selecting the eyebrow mesh instance in the scene hierarchy and modifying the material directly. So if you want blond hair and black eyebrows just set the hair color to blonde and then select each eyebrow mesh and set it's surface override material albedo_color property to black.

emberlightstudios commented 7 months ago

Ok I changed my mind. I did add a new color picker for the eyebrows. But it is still tied to hair color in a way.

If you select a hair color it will select a slightly darker eyebrow color automatically.

If you want something different for the eyebrows select an eyebrow color AFTER selecting the hair color.

This is a good compromise so most people will only have to set 1 of the 2, but you can set them separately if you wish.

For some reason I did have to reload my project after modifying the HumanConfig resource script. If you run into any issues try restarting it.

jsbrn commented 7 months ago

That's a good compromise. Thanks!