CreatorsOk
OwO_SFM
OwO_SFM

patreon


Tutorial: how to exploit SFM scaling with parenting and locking

Scaling in SFM has some peculiar quirks that can be exploited to help make combinations you never thought were possible. I've used it for a while now, allowing me to add clothing items to characters that might've originally been too tight-fit and clipped. This reduces the amount of editing you need to do in post significantly, so there's no reason not to try it!


Let's just give a quick explanation of how SFM's scaling works as it was intended to: it works much like posing in FK does- that is to say, if you have a scale control lower in the hierarchy, it'll affect other bones up the chain. In this picture demonstration, I've added a scale control on bip_spine 0 and dragged the zero slider down.

By doing so, it brings down the rest of the spine bones with it, along with the arms. This method is pretty standard for headhacks, where we hide the head, but what if we only wanted to scale down just the one bone lower in that hierarchy.?


If we lock down all the bones in the body, we now force SFM to scale down just the bip_spine_0 bone, whilst all the other bones remain unaffected.

There's a problem though; this method is actually very useless and will lead to one of two really bad things happening:

With the bip_spine_1 bone unlocked, the faces that the bone is weighted to have been deleted by SFM. You can notice this with the square cuts on the top of her shirt (scaling to zero tends to make it look more conical or cylindrical). This is a really ugly bug within SFM and if you don't notice it fast and undo your changes it will stay that way. It also has a tendency to bug out the work camera, so it's important you avoid this at all costs.

With the bones still locked in place, the face deletion bug doesn't happen, but now you can see the incredibly unnatural twisting that's happening on the body bones as I rotate the spine bones.


So we know we can scale down bones individually, but how do we do that whilst retaining the ability to pose? It's actually very, very, simple!


First, lets make some preparations. If you're planning to do a head-hack, IT IS INCREDIBLY IMPORTANT YOU SCALE THE HEAD BACK UP IF YOU HAVE ZEROED IT OUT ALREADY. I CANNOT STRESS THIS ENOUGH. IF YOU DON'T AND YOU FOLLOW THE NEXT STEPS ANYWAY, YOU WILL CAUSE THE SAME  MODEL DECIMATION I HAVE DEMONSTRATED ABOVE. I DID THIS BY ACCIDENT ONCE AND IT REMOVED THE NECK AND SHOULDERS, WHICH IMPACTED A COMMISSION I WAS WORKING ON HEAVILY- DON'T MAKE MY MISTAKE!

With that warning out of the way, let's take another precaution and bake our procedural bones. Procedural bones are used for many things in SFM, but they're mainly used in jigglebones, which add jiggle and bounce for hair, bows and ties, or boobs. Baking them removes their ability to move dynamically but it does turn them into bones we can move, and more importantly, lock ourselves. Right click the animation set, move your mouse to utilities, and click "bake procedural bones".

(if you still notice any jigglebones moving, import the default t-pose sequence onto your model)

We then copy and paste our animation set, so now we have two of the same characters. For the sake of this tutorial, we'll call them "Marie #1" and "Marie #2". Make Marie #1 a parent of Marie #2 by dragging Marie #1 onto Marie #2.

By doing this method, we're making it so Marie #2 is locked to each bone of Marie #1, making sure it tracks each and every movement Marie #1 makes. It'll follow anything #1 does, including IK rigs, which are usually disabled for models with any bone locked.

We're going to use these two Marie's as such:

#Marie 1 is used to POSE in our render/animation/whatever

#Marie 2 is what is actually visible in the final render, and we also use her for any faceposing or flexes.

Let's help ourselves out; for the sake of convenience, rename Marie #1 to something like "POSE" and #2 to something like "FLEXES" or "VISIBLE". Make #1 invisible but selectable and then vice-versa for #2. You should have something like this:

(If neither the eye or arrow are visible to you, right click any empty space of the animation set editor and make show "Show 'Visible' Column" and "Show 'Selectable' Column" are unchecked. No, don't ask my why this is.)

Let's see if this works! Scale down any bones of your choosing on the child/FLEXES animset only, and pose away on the POSE animset. If you want facial expressions, just use the flexes on the FLEXES animset. If your model only has facial bones, just pose them on POSE instead.

She's got the extremely thin waist she always wanted...


Let's break down a more practical example I did recently. 

For this render (which I've edited slightly to make it kosher for a public post), I locked multiple pieces of splatoon clothing onto the POSE animset. As you can see, its clipping through a lot. This model, thankfully, has flexes that can alleviate it, so if you combine those with the lock-scaling method...

We get a result that, whilst not quite perfect, has reduced clipping significantly. If we hide the shirt, we can better see the scaling used to hide these areas.

Needless to say, this can be pretty powerful if you do it right.


Before I go, one more thing; if you need to hide a hand for whatever reason, unlock the fingers before you scale the hand down. Otherwise they'll still be locked into place and you risk decimation should you unlock them.


I hope this tutorial helps you out for anything you do, whether its making new outfit combinations or even new characters! If you do make anything with this method, be sure to let me know! I'd love to see it!


More Models and Creators