character customization mechanics

There are no stupid questions, just stupid answers.
6 posts Page 1 of 1
slapin
Posts: 24
Joined: Thu Aug 10, 2017 12:56 am
by slapin » Mon Oct 30, 2017 12:00 pm
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?
Duion
Posts: 833
Joined: Sun Feb 08, 2015 1:51 am
 
by Duion » Mon Oct 30, 2017 12:21 pm
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.
slapin
Posts: 24
Joined: Thu Aug 10, 2017 12:56 am
by slapin » Wed Nov 01, 2017 8:29 am
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?
Jason Campbell
Posts: 182
Joined: Fri Feb 13, 2015 2:51 am
 
by Jason Campbell » Wed Nov 01, 2017 3:25 pm
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.
irei1as
Posts: 72
Joined: Fri Feb 27, 2015 5:13 pm
by irei1as » Thu Nov 02, 2017 11:55 am
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.
JeffR
Steering Committee
Steering Committee
Posts: 757
Joined: Tue Feb 03, 2015 9:49 pm
 
by JeffR » Fri Nov 03, 2017 3:12 pm
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.
6 posts Page 1 of 1

Who is online

Users browsing this forum: No registered users and 1 guest