Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Character Creation System in Unity

Discussion in 'General Discussion' started by ElectricCrow, Nov 13, 2012.

  1. ElectricCrow

    ElectricCrow

    Joined:
    Sep 9, 2012
    Posts:
    91
    I'm trying to figure out the best way for players to be able to create characters in Unity. I need a system that will let players create their characters and then easily change their armor sets.

    I'm not finding much that helps with this and figuring its something we will have to do from scratch unless anyone knows of any outside options?
     
  2. fano_linux

    fano_linux

    Joined:
    Jan 1, 2012
    Posts:
    909
    I beleave the answer is not that simple. First, all characters has to be rigged with separated parts, so it can be changed, script each king of change (hair, eye, color, etc). This is just baiscs, but is a start point

    good Luck
     
  3. janpec

    janpec

    Joined:
    Jul 16, 2010
    Posts:
    3,520
    There is one excellent character creation tool being developed by Unity forums user Fernando, there is no release date yet but its looking very promising.
     
  4. fano_linux

    fano_linux

    Joined:
    Jan 1, 2012
    Posts:
    909
  5. RoyS

    RoyS

    Joined:
    Jan 12, 2009
    Posts:
    664
    Arteria has several character creation sets, but there are no scripts for them.
     
  6. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
  7. Somedays

    Somedays

    Joined:
    Jan 2, 2012
    Posts:
    214
    Well what I did with my 2D games for changing outfits and weapons is you hold values for the current piece of equipment and save it by writing to a file or the way I did it was to use PlayerPrefs. And then upon loading a scene I run a check on the value for every body part, and based on that value, I change the material of the player's head, weapon, clothes, etc.

    So I end up having a ton of materials in my editor with names such as head0, head1, head2, etc or weapon0, weapon1, etc all inside the Resources folder. So when I want to change the character's clothing I run a script with something like

    playerhead.material = Resources.Load("head"+PlayerPrefs.GetInt("head"));

    This technique is used for changing just about anything with the character!
     
  8. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there! Thanks a lot!
    Didn´t noticed you´ve wrote before :)
     
  9. fano_linux

    fano_linux

    Joined:
    Jan 1, 2012
    Posts:
    909
    Np Fernando my pleasure...ahahaha
     
  10. bartleycollin

    bartleycollin

    Joined:
    Aug 1, 2012
    Posts:
    88
    Well, if you decide to make this yourself, use Playmaker. You could EASILY do this with playmaker. It would't even take long.
     
  11. Neo_

    Neo_

    Joined:
    Nov 3, 2012
    Posts:
    36
    I don't see where is the big deal in this ?
     
    Last edited: Nov 16, 2012
  12. unity3Ddev

    unity3Ddev

    Joined:
    Jul 29, 2012
    Posts:
    30
    Hey Neo_ ,

    This is exactly what I was about to say. You just saved my words. I am totally agree with you on this.
     
  13. descenderdante

    descenderdante

    Joined:
    Sep 3, 2009
    Posts:
    218
    Well this is how I do it , for changing armours and actual body parts I have the body modelled separately ,
    Per say I have different heads , trunk , legs , hair , and swap between them to get the new body, after that I determine the body parts that use the same texture I combine the 2 meshes too save a draw call .

    As far as getting randomness into your 3d models I used morphs.

    Hope it helps ;)
     
  14. jordirovira

    jordirovira

    Joined:
    May 16, 2013
    Posts:
    23
    Hi,

    I am the developer of a character customization middleware called Mutable. I am evaluating the integration in Unity right now, so i am collecting feedback. Would you be interested in using something like the system explained in http://anticto.com and http://www.youtube.com/watch?v=PtmYeXuNd1c ?

    It builds optimised models from a diagram that you have to create them in a separate tool. Then just set the parameters in the script and get the meshes and images. You can actually try the tool yourself (there is a free beta version).

    Just let me know any comments!

    Jordi
     
  15. wccrawford

    wccrawford

    Joined:
    Sep 30, 2011
    Posts:
    2,039
    You don't give nearly enough information on your site for people to make a decision. It could be anything from amazing to completely crappy, and still fit within your description there. It's hard to get excited about something when you have no clue how it'll work, and if it'll actually help your process.
     
  16. Daydreamer66

    Daydreamer66

    Joined:
    Nov 14, 2009
    Posts:
    218
    I would strongly recommend you come up with a specific price point for your Indie license. I think for most of us, no details = probably too expensive. Why invest time in a system we "might" not be able to afford?

    Cheers,
    -D
     
  17. goat

    goat

    Joined:
    Aug 24, 2009
    Posts:
    5,182
    Mutable looks as if it's ported from MakeHuman code to Unity, if you were to make the models low poly as possible and license 'FaceGen' from Singular Inversions for 'personalized' gaming experience you could have a very popular product on your hands but honestly I think mobile hardware is a generation or two away from being able to support that type of in-game customization.

    And judging from the 'grossly graphic' nature of way too many games I think players would rather have 'well developed hero avatars like Superman' than avators of themselves in games. It's not like toon-type WiiMes, Yahoo!, or xBox 360 Avatars after all.

    For the orginal poster:

    The rest of the comments apear to be made by folk that haven't done character modeling (difficult) or writing custom Unity code (whether in C# or whatever: difficult when not copy-pasting and even then still sometimes difficult as you still have to learn the Unity API to make changes) after weeding through all the Unity API needed to integrate and join model meshes and textures to make an avatar.

    Even if you've taught yourself modeling as I and many have done in Blender and even if your already know or have taught yourself C# you'd still need to learn the internal representation of a model's FBX components and the Unity API subset needed to do this and that's saying nothing of modeling your model such that different meshes can be easily exchanged to create new characters.

    There is a 'Monster Base Team' for sale in the asset store with customization code but that is strictly exchange of textures. The 4 characters are all different complete meshes so it's really not a good example of exchanging meshes (face, torso, stomach, hips, ...) to create new characters. At $70 it's a OK price and it's a good example of low-poly modeling.

    There is a Unity Dressing Room example and it does exchange meshes but the meshes are so nearly the same geometry that it shows the difficulty of changing a thin character to a fat one by exchanging mesh components at least for those at my level of expertise. Furthermore it's Unity Pro only, very disappointing as I'd already used my free trial and so couldn't see the downloaded .asset format of the database used to construct the avatars and to have tried to derive it is likely to have been a months long waste of time. I would need to derive the dB names and structure because the code that does the exchanging and joining is related to Unity API fbx internals and to learn that is many weeks of study. Too bad because the code is very tight. Maybe they will rewrite one day for Unity Free.

    There is a Character Workshop (Digitech Gamez) that takes a DAZ Genesis low LOD model and dresses it by overlaying clothes and changing textures that works well. Currently he is rewriting for Unity 4. I have almost finished adapting his 3.5 version to use a more complex database and with many model pieces. It still works by overlaying one mesh over another much as you'd get dressed. I'm using a set of assets I licensed and it'd be difficult (or rather, time consuming and difficult to get it right, for me) to create such a wide variety of characters via modeling all these mesh pieces myself.

    Finally, the best approach to this in my opinion is to adapt the MetaMorph Animation Kit v1.1.1 (or spend $150 on MegaFiers) and create in Blender low-poly models with shapekeys to change height, weight, and face. The hair you'd want to create as a seperate piece of clothing, 'wig style', with shapekeys to adjust for variance in head size. The clothes you'd need to overlay with the same shapekey adjustments to fit to the base model after applying shape keys. The texture exchange would need to match the textures with the meshes with the new shapekeys. Already, this as the most efficient and flexible way is very difficult as anyone who is familiar with re-fitting clothes, hair, and textures on DAZ and Poser models that no longer work can attest to. That they are low-poly would make it more difficult to properly fit if you are not deriving from the same base mesh everytime.

    You could port MakeHuman to Unity if you wanted a more realistic type model but I think a guy name Fernando is already doing that. Still leaves the immense difficulty of customizing faces, hair, and clothes.
     
    Last edited: May 16, 2013
  18. jordirovira

    jordirovira

    Joined:
    May 16, 2013
    Posts:
    23
    Hi,

    Thanks for your comments. Actually most complaints about the previous site (we changed it a month ago) were about it having too much information for people to get the concept of the product... we tried to keep it simple this time. The support site does contain more information and it can be accessed freely after registration. Finally, the target of letting people try the creation tool is precisely what you mention of giving them a clear image of what Mutable does and how.

    But i understand that for the Unity community, the proper way to test something is to get it from the asset store, and run it, so we are looking into this.

    j.
     
  19. jordirovira

    jordirovira

    Joined:
    May 16, 2013
    Posts:
    23
    Thanks for your comment. I understand your concern about not knowing the price. We have decided to develop the integration and decide afterwards based on how useful is the result. Because Unity doesn't give us access to its internals, we cannot do some of the things for hi performance in our system, like doing part of the customization in the shader in some cases when real-time updates are slow. Or maybe we can, but don't know how yet :).

    We will probably release a lite version with the basic features, and then develop a pro version with what is needed for big projects, like streaming and multi-threaded construction. I will report as soon as we have the features and prices clear.

    j.
     
  20. GXMark

    GXMark

    Joined:
    Oct 13, 2012
    Posts:
    514
    Has anyone got any knowledge or experience of mapping DAZ 3D shaders over to Unity Shaders?
     
  21. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    I use DAZ models all the time in my games but most of them use textures and normal maps. What shaders are you talking about? Perhaps they have textures you can import into Unity. If they don't use textures, I don't think you can use then in Unity. Could be wrong about that but when I bring in a model that uses a shader with no textures, all I get is white.
     
  22. jordirovira

    jordirovira

    Joined:
    May 16, 2013
    Posts:
    23
    A small update from our part: we have finally released our system for Unity in the Asset Store.

    Instead of two versions, we have released a single version that will include all the features over time. Since it is has a native plugin, it works for Unity Pro only so, unfortunately for us, it may be out of reach of some indie developers. Please, send all replies and feedback to the asset store thread linked above.

    j.