Amadeus Project WIP

Updated (see below)

Original Post

I’ve got a short film in mind and have been studying (when I can) to learn stuff to make it happen. Most of that is currently to improve my ability to texture stuff.

I’ve gotten to a point where I’m kind of pleased with the result, so I figured I might as well start a proper WIP thread and share.

This is Kailee, the protagonist in my short.

  • Kailee has two UV-maps:
    • one for the head bump map, and
    • another for everything else, which includes both head and body.
  • Albedo (diffuse) is all texture map, of course.
  • Bump is part procedural and part texture map.
  • The freckles are procedural, with a very small B&W texture map controlling density/prominence.
  • The acne is also procedural. I decided not to be too unkind to my young teenager and kept it to a minimal level. Let me know if this is just too unreal for y’all.

Obviously there is still much to do with her:

  • My next step is to refine the shape of the eyelids and add some proper bump to the mapping on the eyelids and add the shiny bits between the eyeball and the eyelids and along the caruncle.
  • Then on to eyelashes and vellus and ear and nose hair.
  • Then to finish messing with the eyebrows and scalp hair (which I’ve begun already, but isn’t yet in any condition to share).
  • Then the teeth and tongue. Boo.
  • After that it’s shapekeys for facial mocap, and maybe I’ll play with wrinkles.

And if when I get overwhelmed I’ll take another break and finish up the piano. (You’ll all see that again. Once done I plan to release that so you can use it in your own projects, like I did the with the notebook.)

I feel like I have no idea what I’m doing, but I’m sure enough about how I want to go about it, lol. Learning materials is hard. My goal is to make her life-like enough to look fabulous but not be creepy.

JSYK, the images above are in the default pose, without any simulation or anything, so that’s why the shirt is hovering over her shoulder.

Oh, here’s some older pics that belong here too :slightly_smiling_face:

Here’s the first pose y’all saw of her (in my other thread when I was struggling with cloth sim collisions). This is the fixed sim version, though. I designed the shirt myself. (The shoes I snagged from blendswap and modified.)

I’m also kind of pleased with the jeans. This was the first time I baked a high(er)-res, procedurally-textured object onto a low-res, UV-textured object. I know I could model separate belt loops (and a belt), but her shirt is pretty long and I went overboard learning how to do the cool stuff to the jeans as it was, seeing as you’ll never see much of it. (I’ve even mentally added a scene to the beginning of my short film just to quickly show them off, lol.)

Well, that’s about all I’ve got for now. Please do point out anything obvious you think I ought to fix.
Thanks for viewing!

5 Likes

Everything looks pretty nice so far, Lighting looks nice, geometry around the ears might need some work, I can tell this was a makehuman mesh so it might require some more manual work. I think what’s killing realism is the lack of eyelashes. Cloth geometry looks good but the jeans have a bit too uniform color.
I can’t really see bump on skin either, though this is a denoised screenshot so i can’t really judge it.

Updates :slightly_smiling_face:

Hair

Obviously the biggest update is playing with hair. Of course now that 3.5 is out I am considering redoing it, lol. I’m not sure I am entirely happy with the current ponytail. I might just use hair curves to create a more tightly-pulled back ponytail. IDK. The difference will probably be how easy it is to manage physics. At the moment physics aren’t doing nice things with the ponytail (the images above only have physics applied to the loose hair in front), and I think it is too obvious that the loose hair in the front is basically card hair (mesh to curve). I might ultimately wind up with some kind of frankenstein hair getup.

Here’s the current node tree, which is basically just the mesh-to-curve etc for each hair mesh object:

Vellus

The two closeup images above show her with vellus hair, which I was experimenting with, but I don’t think I’ve got quite right yet. The difference is a 5–10 minute render versus a 2–3 hour render with vellus… so, I don’t think I am going to mess with it much more, even though it looks better. (It took my wife and daughter a bit to be able to see the difference, and I’m not sure if that means I am doing it right or not, but I can’t say I’ve ever really noticed it on most teenagers before either, even when I was a teen.)

Eyebrows & Eyelashes

I am pleased well enough with the eyebrows and eyelashes.

Skin

The only skin I plan to mess with more is the hands, which at the moment are just the simple low-res color. I will probably do like I did with the head and create a separate UV map just so I can add proper non-procedural bump and fix the fingernails.

Top to bottom that’s acne, freckles, albedo, displacement/bump maps, procedural bump, and small and large veins. Notice that a few things depend on that one texture in the freckles frame, which turned out to be much more useful than I originally thought it would. It basically controls the prominence / density / placement and is only a 512×512 greyscale image.

The veins coloring I learned from Kammerbild’s “How I gave Suzanne human skin in Blender” tutorial (warning: this guy and his commentators have some fairly off-color commentary, jsyk). I feel a bit validated about my procedural bump too, since he does basically the same thing I did. Heh.

The most curious bit is the Group Input switch to choose between body and head uv / bump maps. That way I get a seamless blend between them at the neck, so long as I fade the bump data to only procedural at the seam. (I’ll likely have to update it to do the hands the same way.)

Fooey. More work. I’m so ready to be done with this, lol.

Next Steps

Fixing my rig’s fingers. I made a mistake not making sure the bone angles were aligned properly, so I’m getting some wonky deforms (which you can see in the images above). I may just rebuild the hands to provide more control.

@hopefullyidont1
Yeah, I wasn’t going to mess much more with the jeans, as they are mostly covered by the shirt, but since you said something I’ll play with adding some color and wear variation.

I remember when you could buy new jeans that hadn’t already been half destroyed by the factory, lol.

2 Likes

Update to the jeans, @hopefullyidont1.

jeans

Yeah, I know, I just slapped on a Musgrave, but again, I didn’t even leave in geometry for the belt loops, since the jeans are generally obscured by the shirt.

The image is a bit post-processed between Material Preview and Render Preview, just to make sure to show the texture better. The jean material itself is procedural — only the stitches and bump are baked from a higher resolution mesh. It’d take a pretty chunk of memory to do albedo and fine bump using images, and my little-ol’ fifteen-year-old PC just can’t handle much more than what I’m throwing at it now.

For animation, I figure this ought to do. Not gonna spend much time on her butt, heh.

Feel free to correct my approach if I’m wrong.

Wow, she looks so much better with hair!

I do think it could be worth exploring the new hair system, but what you have already looks pretty decent. I don’t think it looks like it’s obviously mesh to curve. The hair looks a little “perfect” (so not quite photoreal up close) but reasonably natural.You do have some nice little flyaways though.

Hair shader translucency looks a little high but that could be the lighting.

There’s really no need to spend a lot of time on areas that are covered by the shirt unless you plan to re-use the shorts with clothes that won’t be. If you were going to use these with other outfits, I’d say your musgrave needs more tweaking for the fading to look more natural (there are some tiny spots that don’t make sense), or advise painting by hand and using the musgrave or noise to mask that for procedural detail, but there’s no need since the problem areas will be covered. Adding geometry for the belt loops would just raise your polycount for no good reason, otherwise.

1 Like

So, as this is my WIP I figure it’d probably be better to just ask questions here instead of starting a new update thread every time. (Sorry, no pretty pics yet. Those’ll come soon.) Let me know if I should instead continue creating new threads about specific technical problems.

In order to avoid cloth pinching at the armpits I added a corrective shape key that basically just deforms the arm inward if the upper arm bone (the humerus) is within the proper range. I’m sure I’ll refine it a bit at some point, but for now it does all it needs to do.

It was easy enough.

Because the addition of clothes (currently, bra and shirt) makes a difference, the flesh of the upper arm must be deformed more than if it were just skin-to-skin — for example when wearing a gown (which she will be at the end of the short I am creating).

So the trick was to be able to specify how much each shape key should deform the mesh. Conveniently, there’s a value attached to each shape key called “Range Max”.

So I use that as a variable input to the shape key driver (calling it “K”).

shape-keys

Which gives us the very nice deformation seen here (no pinching nor simulation failure at the right armpit, since no collision geometries intersect).

The problem, however, is this error message:

Dependency cycle detected:
  KECorrective Shape Key Drivers/DRIVER(key_blocks["Humerus.Corrective.L"].value) depends on
  KECorrective Shape Key Drivers/PARAMETERS_EVAL(Humerus.Corrective.L) via 'RNA Target -> Driver'
  KECorrective Shape Key Drivers/DRIVER(key_blocks["Humerus.Corrective.L"].value) via 'Driver -> Driven Property'
Dependency cycle detected:
  KECorrective Shape Key Drivers/DRIVER(key_blocks["Humerus.Corrective.R"].value) depends on
  KECorrective Shape Key Drivers/PARAMETERS_EVAL(Humerus.Corrective.R) via 'RNA Target -> Driver'
  KECorrective Shape Key Drivers/DRIVER(key_blocks["Humerus.Corrective.R"].value) via 'Driver -> Driven Property'
Detected 2 dependency cycles

I’m not convinced this is a true dependency cycle.
I think Blender just thinks it is.

It doesn’t appear to be causing any actual negative affect on the driver (drivers, actually — there’re two of them, one for each armpit), but I could be missing something. Regardless:

  • How can I get rid of the error but cleanly maintain the input functionality?

(It would be weird to create an entire new Property just to specify the extant Range Max.)

Thanks for looking.

1 Like

that looks like a great hard work
amazing !

Update time!

I’ve not had time to mess with Kailee for a while now, so… I still have a lot of stuff to fix. Somehow the eyelashes particle system got goobered (maybe because I edited the mesh?) so she’s lost her eyelashes for the time being. I’ll fix that, but gonna make it a separate mesh surface-deforming her eyelids this time.

There are still a lot of deformation issues I need to dink with. Wrists are currently not right (I’ve been stressed out about the hands, so, still dinking with making them right). And the neck needs a lot of help too. (And don’t get me started on the hair. I still need to revisit that.)

Anyhow, the main update is the jeans. I’m trying my best to learn some stuff that leans toward photoreal (still not there by any means, lol), but the last jeans just didn’t quite hit it for me. And while playing with animation and poses I noticed that her shirt will lift up off the jeans enough that you can see much more of them than I had initially thought, sooo… I updated them with some fancy bump + displacement and (hopefully) improved the texturing some.

In order to show them off I put her in a skimpier shirt. Hope you all enjoy.

There are still issues, clearly, but I am much happier with this than before.

Let me know if anything stands out that I should fix.

Hand Rig

So, I think I’ve pretty much got the hand rigged to my liking. Here’s an overview of the current setup. I’m more pleased with this one than any I’ve ever done before, honestly, but it isn’t perfect by any means.

Apologies for the elbow. I still need to fix that behavior, lol.


I have decided that simple rigs just don’t give me the flexibility to make it work right. If I want skin to move right, the rig must have the structure to do so. Hence all the bones for thing like the web of the thumb and the distal palmar creases (where the skin bulges between the finger and palm under the MPC knuckles).

The most difficult part is just adjusting the position of the bone until it moves correctly. Real human bones kind of rotate around their end joints, so there is a little bit of play in that.

I may still add some control for manipulating the bend between first and second joints, but at the moment far I see no need for anything more than the current IK. If there comes a point where she’s in an adventure movie slipping off a ledge or something and her last digits have to be bent while the remainder are straight… then I’ll play with it. For now the IK + pole are sufficient.

The pole bone, by the way, is positioned by that little thing pointing from the MPC joint toward the finger tip.

Moving forward it’ll be worth creating a few actions to do things like make a fist and the like that can be used to simplify animation while retaining fine control over the fingers.


Oh, CRUCIALLY IMPORTANT is managing the bone roll-angles from the armature edit mode.

Notice how all the fingers and the hand and wrist and everything is aligned to match the direction it should bend. (It is worth turning on bone axes as well and making sure all the X or Z axes point in the same general direction as well, perpendicular to the bend of the joint.)

You can adjust the roll angle in the Bone Properties Transform panel.


For the weight-painting, I have kind of learned that the following works best for me:

wp-strength-and-weight

I will use edit mode to select vertices and give them an initial “best guess” weight, then switch to Weight Paint Mode and use:

  • Stroke = Space
  • Falloff = Constant (and Shape = Projected)
  • Strength always = 1.0
  • Weight = 0.1 or 0.05
  • Brush switching between Add and Subtract

Pose and simply click with either Add or Subtract to adjust the deformation. It takes shockingly little rinse & repeat to get it right. It’s even worth the grief of adding a keyboard shortcut to switch between the Add and Subtract options. (Everything else is a useless waste of time to mess with.)

I also don’t generally worry about getting all the weights to add up to 1.0. That would be nice, but the goal is to get the deformations to perform properly, and you can get that visually by playing in the editor. (I’m pretty sure there’s an option to automatically correct all the weights to add to 1.0 afterward, but I haven’t had a need to mess with it.)


There are some notable issues that could be fixed, such as the way the fingers don’t fold together. IDK if I’m going to mess with that more. I still need to dink with the texturing of the thing (which is what has held me up from updating Kailee for so long now. I still don’t know how people regularly post photo-perfect pictures of Walter White and stuff.) Maybe I’ll come back to it in a bit.

Anyway, that’s where I’m at for now.