Author Topic: Character customization using bone scaling animation  (Read 797 times)

ORDER69

  • Emaciated
  • *
  • Posts: 2
  • Karma: +3/-0
  • Lightweight
    • View Profile
Character customization using bone scaling animation
« on: February 04, 2018, 01:35:37 AM »
I decided to finally make an account, noticed hardly anyone doing 3d stuff here, but maybe this idea will help anyone trying.

I recently messed around with bone scaling character customization. It's not very accurate but extremely efficient, clothing can be attached with incredible speed due to skipping the morph/shapekey step. The outfit in the attached gif, if it shows up, was added with minimal effort.

The mesh shape is controlled through bone scaling. The scaling is saved into animations and used as additive in game.

Grotlover2

  • Developer
  • Average
  • *****
  • Posts: 81
  • Karma: +34/-0
  • Lightweight
    • View Profile
Re: Character customization using bone scaling animation
« Reply #1 on: February 04, 2018, 02:54:42 AM »
That's really cool actually. I would love to hear more on the details of how to do this myself.

ORDER69

  • Emaciated
  • *
  • Posts: 2
  • Karma: +3/-0
  • Lightweight
    • View Profile
Re: Character customization using bone scaling animation
« Reply #2 on: February 04, 2018, 05:58:13 AM »
I'll explain the best I can, assuming you have basic knowledge of any 3d application.

Keeping the influence limits of the platform you're working on in mind, create child bones for the entire skeleton that will influence the mesh. Technically you only need to use child bones for the bones that parent the clavicle/shoulders and and thighs, but I like the situational control of the child bones not being stuck on animation duty, for example, pushing the thigh up while in a sitting position.

Then skin it up like normal but make sure not to go over the bone influence limit. You'll probably need to create your own weighting system for the mesh you made/modding. There will be areas that get crazy no matter what you do, this is normal, for these spots you'll use the base skeleton as an anchor, starting with a low influence like 0.01 and preferably working in vertex mode, increase the influence until things look normal enough. If you aren't using child bones in these areas, then create anchor bones that do not inherit scale.

Another problem area may be at the thighs, this is normal, they often won't look right. There are many ways to fix this, but the easiest way is to add a child bone to either the base thigh or child of it, then weight it and scale until things look right. The other way, if you have child bones on the thighs, is move them out and rotate the knees back. There is no wrong way to do this part unless your work is a mess, the move/rotate is better since it'll work without affecting the influence limit.

After everything is set up, just scale the 2 axis that do not affect the length of the bone, I prefer to manually enter the scale. This gets tricky in the chest area with female meshes and breasts. The breasts should receive no influence from the spine/chest bone, they should be weighted to their own bones and scale evenly on all 3 axis.

I mention bone influence limit a lot, it's important, for example, last I checked Unreal Engine 4 has a mobile limit of 4 and PC limit of 8. This does not apply to 3d animation renders and custom built/modded source game engines. Using a lot will add a little hit on performance. It's hardly a problem today, but things might serious for people still on potato PCs if they end up in a room or city full of these characters moving around with physics. The physics you can allow them to disable, but you can do nothing about the bone weights and might alienate that small audience running the worst potatoes.