I’m about to develop a Character Customization sort-of plugin which allows game developers to add various types of characters in their scenes, similar to NPCs in games like GTA, Watch_Dogs and so on ( so Humanoid only ), and later on the addition of quadrupeds and creatures.
The system will allow developers to change hair style, face, clothes, body type, age, and so on.
Since there are a couple of things which are not 100% clear to me I would like to ask some questions ( Lina, please help me out )
.1. First stage is to have a base enveloped mesh, like a naked man/woman, with the ability, via morph target, to set skinny/fat/muscular/old/young body type. All this will be controllable via a custom Blueprint, which will have separate cameras in order to focus on a specific area ( face, body, hands… )
.2. Second stage will be adding enveloped meshes ( hat, beard, shirt, jacket, jeans and so on…) “on top” of the previously mentioned base mesh, that will be influenced by the morph targets, so if the character is fat even the “on top” mesh will be fat accordingly, but swappable ( for example, swap between mustache, goatee and beard ). All those “on top” meshes will be both custom meshes or morph target of the same mesh.
This imply a specific condition, means that the developer could be able to choose between a naked man or a clothed one, means that I need to be able to set the “on top” mesh invisible or be able to tick/untick visibility of the mesh itself ( so no draw call I suppose?)
Which would be the best way ( considering that there will be quite a lot of meshes “on top” )?
.3. The ART skeleton will be shared between the various character of course, but since there will be an important variable, which will be the height of the character, is it “safe” to change the scale of the bones or there could be problems with the rig itself ( for example with shared animations)? Also I suppose that, via a custom parameter, is possible to drive the hips Z position ( since is the “up” axis ), so that if I make the character young or very tall, by changing the hips position I’m sure that the foot are always in line with the floor.
.4. Best way to optimize this system? I’m not familiar with draw calls and optimization and I’m worried that the amount of customization, since the end goal is to be used for NPCs, will be to exceed too much on the engine itself, and that would be totally worthless, so I’m not sure which one of the mentioned system that I’m using could really destroy the use of this character customization tool.
Cheers
Nicolas