Unity Runtime 3D Character customization, what do i need? (3D assets)

h0rnyc0der

Newbie
Jun 3, 2020
27
24
I want to create a pretty basic game where the player can create 2 characters and then let them have fun.
The programming part of this should be no problem but i have absolutely no clue about all that 3d stuff.

What i want is one male and one female model the player can customize (body shape, face and clothes).
I would also want to have the possibility to add more clothes in future to chose from and perhaps even adding whole new slots (for example different jewelry slots).
I am aware that i can probably forget to do this on my own since im only a programmer and my skills in anything artistic are absolutely non-existent.
So i will much likely end up paying someone to do this initial work for me.
But i want to at least understand whats happening a bit, so i wont get ripped off and may also be able to add additional clothing on my own in future.

I dont even know where to start tho. when i google, i find so much information about different tools and terms and whatsoever that i feel like missing the forest for the trees.
It would be much appreciated if someone could points me into the right direction.
 
  • Like
Reactions: YHL and Cul

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
1,011
I really recommend checking out the in the unity asset store.
Now while I don't really have that much 3D experience in game, as I've been working on my 3D art and selecting engines, I did look a bit. At least with their models, all the assets, swords, clothes, LODs are al in one model, and the code simply turns on and off parts of the mesh. Now I don't know how good this is, if it all uses one texture map for efficiency, or if would be better to make each model its own separate item so that in the future it would be easy to add new items, but may introduce greater complexity just because you have to try to attache items to parts of the character and hope they don't float away or something.
 

h0rnyc0der

Newbie
Jun 3, 2020
27
24
thanks alot, their characters seem to be quite good for experimenting as they are relatively cheap too.
but they lack certain attributes for erotic games so functional genitals and nipples would have to be applied somehow, i guess?
if i understand "all in one model" correctly, then it would also mean the whole character would have to be recreated whenever i wish to add or remove a piece of clothing?
i guess in this case it would probably better to make each model its own item.
i already had the suspicion that exactly this would be the most problematic aspect.
but it must be possible somehow, no? other games to it too.
sadly my only experience with this is from skyrim modding where one could simply take a new piece of clothing and "morph" (whatever that means, its just a mouse click there..) it to fit the body one has created before. then everything works perfect, all sliders etc move the clothing together with the body without any problems.
now i wonder what it needs to implement this functionality in my own game
 

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
1,011
if i understand "all in one model" correctly, then it would also mean the whole character would have to be recreated whenever i wish to add or remove a piece of clothing?
basically, yeah.

I use Blender to make 3D assets. Often they have to be optimized for the game. Be it bone count or poly count. So what I usually have as a 2D file structure. In one dimension are the different version of a character file. ie added stuff. In the other dimension is when I modify the files to make them game ready, I usually try to automate this, where possible. For example, to make animations, character often have more complex animation rigs to make it easy to animate. But for games you often need simple skeletons, but these simpler skeletons make animating not very intuitive. newcomers would try to animate using just the basic skleton and think it's their lack of skill and experience that is the cause for poor animation quality, when in reality it was because they stuck to using the crappy default skeleton. But in the end you need this skeleton to animate in game efficiently, so some basic bone tracking, animation baking, and curve optimization scripts, and the animation of the fancy skeleton gets tracked and moved to the simpler skeleton. save the file, and delete the fancy skeleton, save as new file, and then import into unity.

But I feel making each model its own model is best for overall work flow, you just may need to combine the files with all the other files and models if you wanted to make one final save file to be imported into unity, so you could keep track of things that way.

sadly my only experience with this is from skyrim modding where one could simply take a new piece of clothing and "morph" (whatever that means, its just a mouse click there..) it to fit the body one has created before. then everything works perfect, all sliders etc move the clothing together with the body without any problems.
now i wonder what it needs to implement this functionality in my own game
same. These are called Morph's in Daz3D (great program to make characters with, has lots of morphs, but can cost a lot of money, use this website to get stuff for free). Shape Keys in blender, Morph targets in Maya, or something else in unity/godot. These are just modifications to mesh shapes, not using bones or anything. You have to apply all these morphs to character and clothes separately. Kinda like how with Bodyslides for Skyrim mods had to generate all the new meshes for each outfit separately, but you are still limited to the default CBBE in game body modification sliders, which are their own morph targets.

unity does a good job at importing blender files, you just have to optimize the file so it is ready for the game, and not full of junk like placeholder objects.

then you just do a mesh data property import in script so that players can adjust the morph sliders in game.
 
  • Like
Reactions: Glad and h0rnyc0der

h0rnyc0der

Newbie
Jun 3, 2020
27
24
ok i hope i was able to understand it this far. then what i need is

Body:
1: get one male and female base model (lets say the DAZ you did recommend)
2: get these models optimized for games in terms of poly count and skeleton
3: write a script and create a simple UI that allows manipulating these models morphs (face and body)

Clothing:
1: get compatible clothing/hair/jewelry/etc for the respective DAZ models
2: get these things optimized for games in terms of poly count
3: ??? how to attach them to the bodies in game? as for code, i understand i basically just put them in an array and increase the size of the array whenever i feel like adding new stuff. this allows me to adress each piece of clothing individually. so far so good. but how do these pieces of clothing know where they have to be, and how to make them adapt to the models body shape?

animations would come after that. i played a bit with asset store characters with unique animations and i feel like that will be a good piece of work too, but one step after another.
thanks for your help
 

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
1,011
You're getting it!

One male and female, with genitals
You'll find that the daz genital system is not ideal.
this is because to make the genitals match the skin texture color, daz does a particular trick.
First the default daz genisis 8 mesh is modified to have a new private mesh in place of the plain crotch area, second this mesh copies the texture of the body so it matches the skin texture. Third, there is another ghost mesh that floats just on the inside/outside of the mesh. it holds the texture that represents the pink flesh, and is transparent where it wants skin to show and opaque where it wants to show pink flesh (the texture of the genital with needed details). now this might be fine if the two different meshes didn't clip through each other and break the illusions.

what I have to do is load this up in blender, I usually have to make a copy of the body, remove everything but the genitals so that only the part that matches the outside shell remains, I then have to transfer the uv projection of the shell mesh to the real mesh, This is the optimal time to bake a unified texture for the genital, but you also should have experimented with shaders before this to know whatfinal look you want the skin to have. you bake a texture, and then with the original mesh you delete the genitals and stitch in the new genital with the new texture projection, and thus you have a unified mesh that is optimal. The default daz mesh is already game ready (it just looks high quality in daz because it is already being subdivided). if you wanted you could subdivide the mesh to get it to look better and then you can bake some normal maps, or other texture maps.

the main benefit of Daz is it can fit clothes to the character (though some adjustments may need to be made in blender, such as for big boobs or the fact that no men's pants fit around the genitals).

you may want to leave the skeleton to its default. if you use diffeomorphic, I believe it can import both skeletons and morphs. it imports simplified game ready skeletons for the clothes.

FBX may not do this, but it can still import morphs so you can use them in game.

What you could do is, you export the default daz body as a obj. then you make your character, getting as close to perfect as possible. you can then export that as an obj. you can load that into blender, and sculpt in the final details (these versions should not have genitals or clothes). what you can then do is, you can load up the default body shape and join with your character body using the join as shape command. what you can do is sculpt the character or sculp the default body to with your character shape, but sculpt on a new shape key. the idea is, with the default mesh you can subtract the shape of your character, and just have the sculpted shape effect. you can then export this in and import it into daz, and beable to create a new slider that added the details you wanted to your character but couldn't find the options for. this will like wise adjust the clothes to fit your character.

clothes are going to be the absolute worst to get ready for a game because they are very much not ready for being in a game. you'll have to learn about retoplogy and baking texture maps. you can have better luck using clothes for older G3 or G2 or genesis models which had simpler meshes back in the day, daz will try to auto fit most clothes to the new G8 format to fit your character. if you want to use poses for older models and characters, you'll have to get a plug in for that, but I wouldn't worry about it now.

one last thing, some characters, you have to pay a licence for to to use in a video game, so double check the daz store to see if there is a check box somewhere saying you want to select the 'interactive' licence.
 
  • Like
Reactions: h0rnyc0der

h0rnyc0der

Newbie
Jun 3, 2020
27
24
thanks alot, youre really helping me out.
but holy cow, so much information, so many unknown terms. with only 2 free hours every day i guess i will need months if not years to learn all this.
assuming someone who does such stuff on a daily basis, how many hours would it take to create a male and a female with working genitals and one set of clothing for each? in decent quality of course, not just something smashed together so it barely works.
aka, what would it cost me?
 

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
1,011
Hmmm...
If I started from nothing and got started, it would usually take 3 or so days, or about 30 hours of work. Now that is mostly making the 3D mesh from nothing but experience, rigging the character, weight painting, adding corrective shape keys, and I may not texture. instead, I make shaders that procedurally create a skin texture effect or other artistic effects.

I'm an electrical engineer first, a programmer second, and only about 4 years ago did I start working with blender. I have a history of thinking I was pretty smart so I thought I could learn everything I needed in 3 weeks to make a character from scratch, but it took more like 2 months.

I find with electronics, programming, and game making that art is just like the rest. the fastest way to learn is to try to do a project, as it forces you to ask the dumb first questions, 'how do I keep track of player data?' 'how to I animate characters?' questions that while basic and fundamental at their core, you will constantly use the knowledge in the future to the point it will be trivial and you'll notice that you no longer stop to think about it because you already have a go to technique or assumptions that lets you work quickly.

I only started trying to do art 6 years ago when I had free time in college, my big thing is, I have no attention span, so i want to make art as quickly as possible but also have complete control of what the final product is. As a result I haven't done many projects but I have done a lot of experimenting. So I consider myself more of a technical artist rather than an artist, since I don't just make art for the fun of it. As far as I am concern, when some artists have a particular technique, I think "technique" is one way of saying, this artist has found a compromise between quality and short cuts that they like.
 

GelonG

To be, or not to be, that is the question…
Game Developer
Apr 1, 2018
191
389
Autodesk Maya, daz3d, blender, Autodesk 3ds Max, 4d cinema... As far as I remember, all of them can transfer characters between them. The only thing you need "to dance with a tambourine " sometimes when transferring. What about the decor? Rooms and surroundings also need to be done. In my opinion, daz3d is the best option for you. The only thing is that it is terribly optimized...
 

h0rnyc0der

Newbie
Jun 3, 2020
27
24
thank you guys for your input.
i have searched a bit and found this:
what do you guys think of this?
im aware it would probably not give "perfect" results, but maybe good enough to just get started?
it seems like it offers everything i need, if im not mistaken..
 

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
1,011
I mostly just explore free things, so for the longest time I've avoided buying things.

only in the recent year have I started using money now that I have extra to spend. But as a result I don't have experience with the program you mentioned, since it looks like it cost money.
 

Cul

Newbie
Feb 25, 2019
96
129
Oh, thought Id also mention for example this character . Enrique was kind enough to make it MIT licence. It's for Godot, but you may find it useful, even if it's just as a reference.

Other than that, you have already been given some nice advice. Hope you work it out! Maybe after you make a prototype, and you tell people about your ideas, others will also join you.
 
Last edited:

h0rnyc0der

Newbie
Jun 3, 2020
27
24
it seems like this character creator 3 from reallusion can not export body and face morhps. seems quite ridiculous to me.
wow this creator for godot is great, i will surely take a look into the code.
i already thought about trying godot when version 4 is released simply because its completely free.

it sure woud be nice to work on such a project together with others but i guess i am not ready for this yet, i simply lack the skill and knowledge to be a realy help for anyone.
just hope to get over this character creation and customization topic as soon as possible to focus on the next big thing which will be networkig. thats more my thing again, since its 90% coding haha
 
  • Like
Reactions: Cul

h0rnyc0der

Newbie
Jun 3, 2020
27
24
not exactly an mmo haha. but i play with the idea to create a little 3d chat with the option to... interact.. with other players online.
but thats only the long term goal. for now, i have to learn things like this 3d character creator thing
 
  • Like
Reactions: Cul

Droid Productions

[Love of Magic & Morningstar]
Donor
Game Developer
Dec 30, 2017
7,172
18,348
If you're using Unity, you might want to check out their UMA2 system:


There's a pipeline here:
 
  • Like
Reactions: lobotomist

VRule34

New Member
Feb 13, 2018
12
4
I've just skimmed the thread but will add my two cents.

@h0rnyc0der
It all depends how far you wanna go. What would you like to be customizable? Are you content with simple body forms (height, weight, muscles, belly, width of arms/legs) or crazy enough for stuff like facial shapes like Skyrim.

The former can be pretty easy. Most DAZ Model feature A LOT of bodymorphs/blendshapes for this. These can be controlled very easily. Clothing needs to have the same skeleton as the character to avoid headaches. With DAZ there is a shitload of clothing items for every single character. It evens comes with the same blendshapes most of the time. So you just "link both sliders" to the same value and the shirt expands as the belly does. Hair counts as an item.

Facial customization .... yeeeeah. Thats hardcore. Here you need to know as well how far you want to go. You could prepare blendshapes in Blender for eg a few different noseshapes. But then you would need to learn a lot of Blender stuff also.

You could use a "freeform" utility, like the terrain editor in city/world sim games. There are some nice Unity assets which deform meshes (the "skin" of the model, above the skeleton) on runtime. The game would export the mesh after editing and just load the new one the next time the player loads his savegame. Huh ... I guess that would be a pretty simple solution. Propably with hideous results....
 
  • Like
Reactions: h0rnyc0der

h0rnyc0der

Newbie
Jun 3, 2020
27
24
I've just skimmed the thread but will add my two cents.

@h0rnyc0der
It all depends how far you wanna go. What would you like to be customizable? Are you content with simple body forms (height, weight, muscles, belly, width of arms/legs) or crazy enough for stuff like facial shapes like Skyrim.

The former can be pretty easy. Most DAZ Model feature A LOT of bodymorphs/blendshapes for this. These can be controlled very easily. Clothing needs to have the same skeleton as the character to avoid headaches. With DAZ there is a shitload of clothing items for every single character. It evens comes with the same blendshapes most of the time. So you just "link both sliders" to the same value and the shirt expands as the belly does. Hair counts as an item.

Facial customization .... yeeeeah. Thats hardcore. Here you need to know as well how far you want to go. You could prepare blendshapes in Blender for eg a few different noseshapes. But then you would need to learn a lot of Blender stuff also.

You could use a "freeform" utility, like the terrain editor in city/world sim games. There are some nice Unity assets which deform meshes (the "skin" of the model, above the skeleton) on runtime. The game would export the mesh after editing and just load the new one the next time the player loads his savegame. Huh ... I guess that would be a pretty simple solution. Propably with hideous results....
Thanks for your input.
Currently i try to dig into what @Saki_Sliz and @Droid Productions gave me.
I downloaded this UMA character system which seems to be taking care of ALOT of annoying stuff i would have to bother with on my own otherwise.
I also downloaded DAZ Studio and played around with the Genesis 8 female. Also i got blender and followed a tutorial on how to export my DAZ character to blender, reduce poly count and import it back to DAZ Studio, but the result was horrible with alot of weird, black "scars" being all over my avatar after importing it back to DAZ.

Then i got myself some body morphs for Gen8 on this forum and they work like a charm. havent touched face morhps yet tho. but if i can get decent face morphs and manage to import my character + morphs into unity, i assume facial customizaion would not be a problem either?

Edit: What i would want to change is pretty much everything (at least to a certain degree) except for height, as i imagine changing height would turn into a nightmare when it comes to animations.
On the long run, as many clothes/jewelry and facial options are probably the most important things i need to focus on
 

VRule34

New Member
Feb 13, 2018
12
4
Any specific reason you reduced the poly count in Blender and reimported in DAZ? In my experience too much converting between programs always fucks something up. :(

I would set up the chain like that:
1. DAZ -> Getting your character
2. [Optional] Blender -> Fixing/adding blendshapes
3. Unity -> Does the rest

Keep your highres models as they are. There are a handfull of Unity assets which help you reduce the polycount or allow some nice LOD settings without much hassle. Importing DAZ models directly in Unity is pretty simple and gets good results. There are always a few blendshapes that are not working. So a bit of trail and error is needed. Personally I'll try to avoid Blender as much as I can. The only program I can't seem to wrap my head around the controls.

The character height problems can somewhat be avoided by using an IK system. A bit of fine tuning and you can make animations a lot more lifelike on the fly. Instead of rotating bones to eg place a hand on an item, you just tell the system where to reach. With rotation limits (no 180 degree turns of the wrist) and bone weights (how much does a relaxed muscle resists), your character automatically bends the upper body and shoulders towards the target if the distance demands it. So it's recommended either way to make your life a whole lot easier.

Got a budget? There are always some essentials assets for Unity to recommend. Animation? UMotion (free version available); IK system? Final IK; high-resolution character colliders? RASCAL