Source Filmmaker

Source Filmmaker

Mixsup Apr 19, 2017 @ 7:43am
Unexpected Shading on Corrective Shape Key
I'm currently adding corrective shapes to a model using Revzin's HWM toolkit in Blender and have created a shape for when the OpenJaw, OpenUpperLip, OpenLowerLip, Platysmus and SmileFull sliders are active.

In Blender it appears to be fine - it doesn't seem too drastic of a change in facial expression compared to any other shape key - however when the model is brought to SFM or the HLMV, Source has a rather interesting interpretation of the corrective shape.

Corrective shape as it appears in Blender[i.imgur.com]

Corrective shape in Blender's Edit Mode[i.imgur.com]

The same corrective shape key in SFM[i.imgur.com]

Near as I can tell, the actual shape is completely intact and no different from the version seen in Blender, the problem seems to be how it is shaded. I've tried baking out a normal map for the face instead of using a blank normal map, but the issue persists. I also temporarily removed a different corrective shape key that corrects the face when all the aforementioned sliders are active (minus the Platysmus slider) - in case there was some overlapping issue there - but that hasn't solved the issue either.

I haven't had this problem with any other corrective shapes, so I'm wondering what is causing this. It is the only corrective shape on the model so far that references five shapekeys, but I'm under the impression that that shouldn't matter.

If anyone has an idea as to why this is happening and what I can do to course-correct this shape key I would really appreciate it.
Last edited by Mixsup; Apr 19, 2017 @ 7:48am
< >
Showing 1-8 of 8 comments
Zappy Apr 19, 2017 @ 7:46am 
What happens if you try disabling ambient occlusion in Source FilmMaker?
Mixsup Apr 19, 2017 @ 7:55am 
It isn't as pronounced with AO turned off, but you can stil see that there is an issue there.

Front View[i.imgur.com]
Side view[i.imgur.com]

I've also included a shot of the shape key Blender's edit mode (In OP) to better illustrate what that shape key looks like.
Last edited by Mixsup; Apr 19, 2017 @ 7:56am
Zappy Apr 19, 2017 @ 8:03am 
By the way... You're aware that by default, if you have a corrective shape key like Smile_OpenMouth and apply Smile and OpenMouth in Source, then you will get Smile, OpenMouth and Smile_OpenMouth, right? (Make sure to "subtract" the mesh deformation of Smile and OpenMouth for Smile_OpenMouth, for example.) At least I'm very sure that's how it works.

If you have done that, then I guess it's just another of Blender Source Tools' corrective flex shading issues. That's an issue that comes and goes between random versions, sadly.

Edit: Oh, and if you have A_B_C, then A, B, C, A_B and A_B_C are applied, according to the VALVe Developer Wiki. I'm not quite sure if B_C and/or A_C are applied too, though...
Last edited by Zappy; Apr 19, 2017 @ 8:08am
Mixsup Apr 19, 2017 @ 8:20am 
You could possibly be right there, Zappy. I've created the shape in question from a mix of OpenJaw, OpenUpperLip and OpenLowerLip (Using the 'Create New Shape From Mix' option) and have adjusted the mesh from there using the 'Soft Blend from Shape' function that comes with the HWM Toolkit, so perhaps I've screwed up along the way there.

Just so I'm clear on this, how would you ensure that the deformation from the referenced shapes (Smile and OpenMouth in your example) is subtracted from the corrective shape? Is it by making sure that 'Add' isn't ticked when you initially use the 'Blend From Shape' function, or am I misunderstanding?
Marco Skoll Apr 19, 2017 @ 8:21am 
Originally posted by Zappy:
I'm not quite sure if B_C and/or A_C are applied too, though...
All valid combinations are applied, so having A, B and C active will activate A_B, B_C, A_C, and A_B_C (if they exist).

As such, all those corrective shapes are stacking on top of each other.

I recommend going to Blender's Source Tools and clicking "Generate Shape Key Drivers".
This makes drivers for all existing corrective shapes so that Blender automatically applies them (in the same way as Source does), allowing you to better see how they combine.
Zappy Apr 19, 2017 @ 8:26am 
Originally posted by Mixsup:
- Just so I'm clear on this, how would you ensure that the deformation from the referenced shapes (Smile and OpenMouth in your example) is subtracted from the corrective shape? -
The only way I know of is to see if you can set Smile and OpenMouth to -1 (in Blender), Smile_OpenMouth to +1, choose to create a new shape key from the currently applied shape keys, delete Smile_OpenMouth, and rename the new shape key to Smile_OpenMouth, which gets increasingly tedious the more corrective shapes you have...
Last edited by Zappy; Apr 19, 2017 @ 8:26am
Marco Skoll Apr 19, 2017 @ 8:40am 
The other option is "Blend from Shape Key" (by default on the Specials menu, W key) to transfer data from one shape key from another, which can be used to target only selected vertices.

Activate the desired shape key, then subtract all existing lesser corrective shapes. (You'll want it in Add mode, set to strength -1).
Mixsup Apr 19, 2017 @ 10:56am 
Didn't mean to abandon this thread, sorry - I've been tinkering with the model and sloshing all the info in this thread and in Revzin's guide together in my head. I think what the issue boils down to is what you've both suggested:

I wasn't fully cognizant of how the corrective shape keys function together (how they apply on top of eachother as more shape keys are activated) so I was a little more carefree in sculpting the corrective shapes than I should have been. I don't think it helped matters by me creating a corrective shape consisting of 5 mixed shape keys (a higher-order corrective shape, as Revzin calls it) , and then creating another two (lower-order) corrective shapes using that one as a base.

I've scrapped the larger corrective shape in question and am going to create the smaller corrective shapes and then build up from there (combinations of two shape keys first, then combos of three, then four, etc.).
< >
Showing 1-8 of 8 comments
Per page: 1530 50

Date Posted: Apr 19, 2017 @ 7:43am
Posts: 8