I'm doing a project involving a "Custom character system" for the UDK which I would love to share and would like your opinions on.
I've come up with a 'workflow' which could be used that goes from stage 1 modeling to the final result in engine. I just want to show some of my milestone stages and see what you think!
Firstly, a custom character system? What art that?! :-
It's the type of system seen in games like Morrowind, All Points Bulletin, Mass Effect and many many more! A system which will let the user change a base meshes appearance for example facial structure, body structure, skin colour and complexion etc.
Okay so milestone 1 was to source a model to use for the project.. Because this runs over two semesters I'm sourcing a base mesh and only doing a male character. I'm using the awesome base mesh by Nick Zuccarello (with permission). I'm using Zbrush to create morph targets as it has awesome features like active symmetry, move tool and layers! Layers has an awesome option to reverse intensity!
Okay so here is the base mesh that I'm using.. I've tweaked it to around 9k triangles!
Here are some of the wacky morphs I have made in Zbrush!
Exported morphs in 3Ds Max! about 40 in total!
Clothing and Hair! with some morphs as well!
I have setup the system in UDK with the morph targets etc and it works fine!
Character in engine (with crap vectors instead of diffuse maps
Morph target set. The animation tree toolset is needed as well if I want it to work with matinee or in script via scaleform.
The things left to do is mainly the texturing! I need to do the following
- Texture pale and tanned diffuse maps of the character so that I can hopefully make a blend system in the material editor
- Texture hair and clothing
- Texture two tattoos
- Sculpt an example of wrinkles, a scar and an older complexion. Then bake normal map overlays
- Setup shaders for all textures
- Rig and skin with standard biped
- Final prototype either in Matinee/Kismet or build a GUI using scaleform!
Any suggestions to this system would be greatly appreciated! I'm considering to implement global scale somehow, most likely through script in the engine. I hope you folks like what I have done thus far.