Character Customization System for Unreal Engine 4

Hi guys ,

I wanted to have a system through which you can customize your character , with only one base model , without having to model every time for a new NPC. So I created one base model and several morph targets, and using that you can customize your character’s face , including height and width of nose , eyes and mouth , and body shapes , like waist , hips , belly , arms and legs. One drawback though, changing the body proportion , like increasing the height of the character , will not be consistent with the character’s skeleton structure, so you might need to add additional blueprint logic to change the value of the corresponding bone location based on the value of the respective morph, or you can create a separate rig and switch between rigs in runtime, though I am unsure how that would be possible. With my current implementation , you can give a random value to any morph target in the blueprint , to create a character with different look. Changing the ear shape will make it an Elf, or a faery. So, for example, in a crowded area within your game , character face will never repeat, as for every character , the random value will be different. Some of the screenshots of this demonstration is given below:

Default Face

Changed to Asian Male

Pointing the chin, changing the ear and cheek bones

Default Body Shape

Fat Guy

Default Nails

Adding claws

Increasing Jaw Size and Decreasing Nose Height

Along with these , several facial expressions are made as well , shown below :

Fear

Visemes -Er

Smile

Currently I am working on creating a blueprint out of this , which you can use as base blueprints to create a blueprint of your own character , where by tweaking the parameters , you can get your desired shape and size. Once I complete with this , I will work with the female version of this.

Thanks and Regards,
Sameek Kundu

1 Like

Looks good, when you get a chance could you do a video of you making changes. Keep up the good work

Thanks for your feedback. Yeah I will try to make a video , to demonstrate how you can randomly generate unique characters at runtime , from the same model. But that involves a lot of work, and might take a while to get completed. I will post more screenshots and blueprint/C++ code as I progress.

Looking good - be interesting to see how this turns out :slight_smile:
Always wanted to figure out a solution that allowed clothing to “just work”, but alas, I haven’t the time/skill with rigging.

This is a great! Do you have any video of this showing in game?

Currently I haven’t made any videos , as I just imported this into UE4 today. Now I am building the blueprint containing all the parameter which you can tweak to customize the character, and once done I will create a sample level , make one video and share.

Hi sameek4. This looks awesome. I’m a huge proponent for Customization Systems and a majority of my posts are about them:

  1. Mystique Entity System
  2. HierArch Emporium
  3. [CONCEPT] Crowdsourced 3D Game Art & Animation](https://.unrealengine.com/showthread.php?14462-CONCEPT-Crowdsourced-3D-Game-Art-amp-Animation)
  4. The UMECHS Compendium of Interchangeable Modular Entity Asset Parts
  5. I Buy Modular Parts Website
  6. TUTORIAL C++ - Runtime Async Load Modular Character (Intermediate)
  7. Full Models -vs- Modeled Parts
  8. A New Model Pack System: Modular Entity Construction Sets (MECs)

I favor the morph-target technique and the level of detail with the customization options is excellent. In fact, I would increase the number of morph targets for greater tweaking to create aliens and monsters. Will you be offering the system to the community? I hope the answers is YES! I can easily visualize combining this system with the Golem Construction Systemto form unique armors.

Hi ,

Thanks for your feedback. I might offer this to the community once completed, currently I am implementing logics for creating custom character using blueprint , as shown below :

I also need to figure out few things , like , for morphs which involve changing body proportion , the bones have to be adjusted accordingly , so that the rigging doesn’t get affected, and I also need to implement logic for spawning crowds with unique faces.
Once that is done , I will work on the female version of this. I am also interested in creating some lip synchronization system , that can use typed words , or audio recording , and intelligently map the morphs with the input to create a nice lip sync animation. That will save lots of your time and money. I am not sure if I am skilled enough to implement that, but I will be researching on that.

Can you implement character height by inserting a scaling animation (only along the bone axis) in skeletons, and apply a fixed amount based on the “height” setting?

Yeah , that is the the only way I can think of , and that is what I will be trying to implement, when you are changing the body proportion morph , you have to translate certain bones along x axis and y axis , to make the rigging accurate , i tried doing it manually in the Animation editor and it worked, but automating those individual bones in the animation blueprint, might be a little difficult , so may take a while to get completed. I will try to work on that.

I’m currently working right now at the exact same thing :slight_smile:

Regarding the height its easier than it seems, if you look at the HellBlade developer video you can see how its easy to scale proportionally the character, but if you want to scale certain bones it might be problematic.

Sameek4, are you encoutering problems with heavy usage of morph target? I mean, I’m using blendshapes currently for facial animation, but as far as I know they’re more expensive then bones baked animations, so if you put on the scene a large crowd are there any problems with CPU usage?
Keep it up, this is a marvelous work!

Hi ,

With my gtx 980 , I might not notice much performance lag , but I am yet to go there. I will update it once done.

Ingenious way to populate a game!

Creating completely different character by tweaking several morph sets at once

Great work, I need this!!!

:slight_smile: Soon , Mate

Few of the things I will be working on to make this even more realistic include :
1>Customising eye shader (you can choose your own shader for every NPC you are spawning at runtime)

2>Hair color change and several hair variations, I will be providing with limited sets of hair meshes , but you can obviously export this into 3ds Max/ Maya and create your own hair mesh.

3>Clothings -> Clothings can have variations in color and texture , and currenly will be limited to jeans/trousers/shorts and shirts/t-shirts and jackets for men , but you can always increase the size of your cloth library by creating your own. Use marvellous designer for quicker implementaton.

4>Animation->May be you can change the walk style of your character from unreal engine itself , without modifying the animation in Motion builder? I will see if I can implement this functionality. Not impossible , all you need is few slider values in the blueprint , and the distance , bent , rotation between the legs/feet, hands, head rotation, body bent , will be determined based on those slider values.

5>Skin texture -> I am looking forward to implement realistic skin shader. you can control the material parameters to randomly create dynamic skin material instance for every NPC you want for each character, by tweaking few values in the blueprint. I am bad at writing shader logic , so this will be saved for the last. :frowning:

Hi Sameek,

  1. Ella Svahn release a very good cgfx shader for eyes, check it out for insipration ( or implementation )
    CGFX eye shader

  2. I’m currently implementing clothing in my character customization tool in UE4, but I’m doing everything inside Maya when I create the various blendshapes…I wonde, if you create a cloth in marvelous designer to expand the library, how would you “connect” it as a blendshape or add it to the character, considering that it need to take into account body variation and shape? not sure if I miss something or UE4 can “append” an external mesh and add it to the main skeletal mesh, taking into account all the deformations

  3. Retargeting helps, but you can set limitation/range to rotation/scale, in order to customize/modify an animation directly inside UE4…I guess that some additional constraint are needed in order to set the animation to be executed properly, right now in theory should work :slight_smile:

  4. I suggest you to start with the new skin shader available with 4.5 and expand it from there ( add specular, translucency and gloss ) and expose the values you need to set/randomize the character skin. As far as I can see the base shader is pretty **** good and if you do a search on the forum you’ll see pretty nice experiments :slight_smile:

Are you seriously thinking to share this tool for free?
If so you’re totally mad :stuck_out_tongue:

Just kidding, but this would be a huge gift for the community :wink:
Honestly if I manage to do what I have in mind I was thinking to put the tool that I’m developing ( quite similar to what you did, but with more specific features ) on the marketplace, mostly to buy advanced stuff for mocap for personal projects :wink:

Cheers Sameek and keep it up, can’t wait to see a video demonstration :wink:

Thanks for all the helpful feedback. It is really too early for me to tell whether this should be 100% free or for the marketplace. My primary focus is to learn and showcase my skills. But I will look into the eye and skin shaders , and yeah you are right about the clothing problem with morph, haven’t thought of that :(. To bypass that issue , we have to create clothing morphs in 3ds max/ maya. :frowning: lots of work , ok let me just try it out. I will post my updates .

As much as I like free addons, if you were to put this on the Marketplace I think you would recieve fair compensation for your time, to say the least.