Hi, all!
I need to implement character customization for my game (mainly NPC constructor) and I need it to not consume too much RAM.
The scenery: A town with about 20 unique NPCs. No non-unique NPCs are there. Different body proportions, different ages (baby to elder).
Also NPCs slowly change, keeping unique traits, they age, children grow, women get pregnant and give birth (number of NPCs can grow but never above 20 (or any other max number I find effective))
The limitation I have is NO vertex texture fetch.
Also artist and coder here are me and my artistic skills are much lower than coder skills... so my art efforts take much more time than coding...
The customization uses body changes and clothing changes.
The approaches I know about:
- Use mesh parts and combine/swap them. Can't handle proportions but for a crowd of zombies it is fine. Not very effective for rendering unless meshes
are combined but that leads to many unique meshes which comsumes lots of RAM. Which is not good. However has no problems of layered clothes systems. Easiest to implement but lots of work on artist side plus limited flexibility. Also unique NPC look + different clothes look is very effortful to achieve... - Use bone scaling to change body (special leaf bones parented to animated bones), this approach is used by Unity character customization system I forgot the name for. No need for clothes to have any morph targets. Lots of bones make things harder...
- Use morph targets/blend shapes/shape keys for overall body change, bone scaling for proportions and mesh parts for clothes. More flexible than 1. but consumes lots of RAM for morphs. Easy enough to implement and less work for artist than 1. but uses more RAM. Can be improved by tech from SIMS4 using specially crafted morph targets but that produces lots of unique meshes which takes lots of RAM... or requires vertex texture fetch which I don't have
- Like 3. but with layered clothing. Each clothing has morph targets too. This is very hard for artist but more effective than unique meshes.
- For bodies use unique body mesh + skeleton pair for each type of body proportions then like 2. or 3.
What would be best to implement with Ogre? The target is to achieve unique look but save resources (including my efforts) so to be able to run on smaller RAM configurations (and not die modelling meshes).
