Jump to content

character customization mechanics


Recommended Posts

Hi, all!

as I see currently many games employ character customization mechanics

(or even generate all characters from standard template).

This usually have some macro settings like height, arms/legs length, etc and micro- settings like

face customization. Games which come to my mind are Skyrim, Saints Row, etc.

Some games also include runtime mechanics like GTA SA which allows growing fat, muscles, etc.

How these things are done (fundamentally? Is is possible to implement such thing for Torque3D?

The most amzaing thing about this is that skeleton is changed together with body,

I wonder how they do that...

I know it is possible to change body via morph targets and then bake that to a model somehow (

this can be done in software for most flexible way and saved as model ready for engine), but what about bones?

How to sync skeleton changes to body changes?

Link to comment
Share on other sites

Characters are probably the most complex part of a video game.

For a budget indie game I would "just" make different skins, swappable parts of the body and some deco items that can be added or removed.

If you really want to look into it, I would suggest you look into Makehuman, it is an open source character creation tool as you described, but it is not integrated into the game engine.

Link to comment
Share on other sites

As I currently understand the asset pipeline should be the following:

1. Implement base character full with rig and skin.

2. Create a geometric cube for all the joints and remove all bones.

3. Apply morph targets to the resulting geometry as necessary, moving/rotating

joint helpers as necessary.

4. Generate skeleton from joint helpers.

1. and 2. can be done with out-of-engine tools (i.e. special exporter or just directly in modelling program, but I have problems with 3. and 4. as it have to be done inside engine. Is there any libraries or examples I could look at beside Makehuman?

Link to comment
Share on other sites

The only way I've done it is to have a animated rig and switch out the mesh and re-weight . It would be great to have a set of animations that were compatible with one of makehumans stock export rigs because Blender has a plugin that applies auto weights to the mesh. I doubt you could do a level of customization such as Fallout 4 but you could do basic stuff. Maybe not height. Torque hates scaling a rig.

Link to comment
Share on other sites

There is also the option of object mounting (not just weapon image)to do something kinda like a Mr. Potato but for body parts.

But not sure about how good of a performance it'll run if there are a lot of objects.

And if things fail to load you may end with a faceless guy like in the old assassin's creed unity.

Link to comment
Share on other sites

There's a number of options in how to approach this, each with their pros and cons.

Stuff like character height is pretty easy, but once you go beyond that, it gets more involved and there's tradeoffs to which technique you go for.

The most common one now-adays is having a bunch of additional bones in the skeletal rig that can be moved/rotated/scaled to influence the makeup of the face and body.

For example, you could have a 'stomach' bone that when scaled up causes the character's stomach portion of the mesh to appropriately scale up to make them fatter.

This is often used for faces and stuff as well. You double-duty the bones that go into animating the face by having them move, rotate or scale to change how the face is structured.

The biggest advantage of this is that it works fine with Hardware Skinning, so performance stays up. There's a practical cap to how many bones you can have, but usually you don't have many dozens of additional bones for this sort of thing.

The downside is that this makes rigging more complex and involved, because those additional bones need to be very particularly skinned to the mesh in order to look good when implemented. Nothing impossible, but it does increase the workload a good bit.

An older way to go about it was Morph Targets(aka Shape Keys) where you would have an 'animation' of the min/max values for vertex positions in the target, and you could selectively apply that. This allows for anything from facial animation, changing the character's mesh for customization up to doing stuff like muscles bending/flexing as they animate.

The downside is that there's no really a good way to do this with Hardware Skinning, meaning that going this route requires the mesh to be rendered and animation be processed on the CPU. This adds a fair bit of overhead to rendering each character.

If you only have a few characters, then this tradeoff is fine, but it's not something you're going to want to do if you anticipate having many dozens of characters on-screen at once.

The third major way would be just having a bunch of alternate sub-models that you swap between. It's not as flexible as the other two methods(you have a set number of character faces to work with rather than full customization, for example) but it's fast, it's easy to use/make from an art perspective, and you as an artist get a very fine amount of control over what the characters can look like.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...