Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

UMA - Unity Multipurpose Avatar on the Asset Store!

Discussion in 'Assets and Asset Store' started by FernandoRibeiro, Dec 24, 2013.

  1. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Trying it now. :)

    Just to clarify, did you open the master project, or did you copy the UMA folder into your project?

    Edit: Opening the master project in 5 rc2 works for me. If you copied UMA into your own project I'll need to know what version you previously had.
     
    Last edited: Feb 21, 2015
  2. FisherM

    FisherM

    Joined:
    Dec 28, 2013
    Posts:
    366
    While I have am not new to unity I am very new to UMA, I wouldn't know where to begin!
     
  3. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Then perhaps just make the character twice... Removing any unwanted head slots from the recipe.

    Edit: Actually come to think of it... perhaps split the head and the body into two seperate recipes and build both of them... Then all you need to do is replace the SkinnedMeshRenderer's Transform[] bones; array on one of the skinned meshes and set the layer tag and you get what you want without paying the price twice.
     
  4. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    Thanks. I copied the UMA folder into my project, but there was no previous UMA in the project.
     
  5. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    I think this could be a unity bug. I tried copying the UMA folder and then nothing worked... (As in the Unity Inspector stopped updating on selection change)

    I restarted Unity and everything was fine.
     
  6. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    Hmm, I restarted Unity and it's just the same for me. I'll have a try at opening UMA in a fresh project.
     
  7. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    If that fails then please open the actual UMAProject inside the git repo. It might just be that Unity does some upgrading magic that it doesn't tell us mortals about.
     
  8. Black-pearl

    Black-pearl

    Joined:
    Mar 20, 2014
    Posts:
    55
    Hey everyone happy saturday :)

    Can someone point me in the direction of some tips to make clothes in 3DS Max i suck big time :eek: and need to improve lol

    Thanks
    ;)
     
  9. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    I copied the UMA folder to a fresh project & it's working fine. Not sure why it won't open in my project though. Any suggestions please? Thanks
     
  10. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Is it the same issue with the floating characters? As mentioned that's usually a problem with the animator - check for a missing clip, having a layer which overrides your body animation, etc. in the animator component of the built avatar in the scene.
     
  11. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    Thanks, I'll take a look
     
  12. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    I found the issue. The idle animation was missing from the animator.

    I recorded what was happening though as it was pretty spooky! Thanks for the help.

     
    hopeful likes this.
  13. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    So how exactly do you build UMA from the github repo? I tried just cloning and then opening the sln with VS 2012, but looks like certain files need to get copied into place, as the files to build UMA and UMAEditor aren't where VS is expecting them.
     
  14. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    I have noticed another issue, the males facial hair is lower than it should be...

    Misplaced Beard.JPG
     
  15. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    The master branch of the git repo is UMA 2, there is no uma.dll and no umaeditor.dll anymore... just delete the references in the sln. If you want the old asset store version it's in the branch uma122.
     
  16. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    How can you even say that's wrong? It's the new hip look!

    Hurry and delete the post before anyone realizes how oldschool you are. :)
     
    derkoi likes this.
  17. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    No seriously, where does that beard come from? I don't believe I've seen it before.
     
  18. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    I don't know why it was doing it but it's sorted itself out now that I'm using my own script to create random characters. Weird.
     
  19. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    If that picture was the uma default overlays the overlay rect was certainly incorrect. One of the things on my to-do list before UMA 2.0 is released is to transform the overlay rect into uv space rather than texel space. Doubling or halving the texture resolution without using Fernando's script can cause issues such as that.
     
  20. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    Yes is was the UMA default overlays.
     
  21. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    You on skype? pm me your skype id and I'll invite you into the uma skype channel. Mostly chatting about progress and cooking recipes. At times it's fairly active so it's advised to apply notification settings so you're not annoyed when people go OT. ;)
     
    derkoi likes this.
  22. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    Done. Thanks
     
  23. Trevinburgh

    Trevinburgh

    Joined:
    Jan 26, 2015
    Posts:
    29
    I'm brand new to UMA and have what is probably a silly FAQ.

    I've downloaded UMA and opened it up, I can play with the options and create all sorts of characters. Great. But how do I get those characters out of the UMA project to use them in my own project? I've tried saving the asset from the menu and copying the file but it doesn't seem to work.

    I've RTFM and Googled but can't find an answer so I think I'm misunderstanding something fundamental.
     
  24. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    The fundamental misunderstanding is that your project should include UMA. By using the UMA|Load and Save menu item you can save the selected character as an asset. This asset can then be loaded at run-time and UMA can recreate the exact character for you. The Scene02 - Serialized shows how to load up an uma character from such assets.

    UMA by default does not contain a bake to prefab option. Obviously all you need to do is write all the textures, save the avatar and mesh assets and tie it all together. Indeed my power tools have the functionality to save uma as prefabs, just note that my power tools only works with the asset store version of UMA, and not the latest git version.
     
  25. Trevinburgh

    Trevinburgh

    Joined:
    Jan 26, 2015
    Posts:
    29
    Thanks @UnLogick, that makes sense. I've got it to work by copying the contents of Scene02 into my scene. Presumably Unity will only include the necessary parts of the package when generating the runtime.

    Once I've played with UMA a bit more I'll definitely look at your tools, turning the character into a prefab sounds like a useful option.
     
  26. GMagnetic

    GMagnetic

    Joined:
    Dec 8, 2014
    Posts:
    23
    I am a total noob to games, mobile, and graphics programming (especially modern graphics programming, but I’ve been programming for over 30 years in everything from Smalltalk to Eiffel to C to various assemblers.

    If anyone would be kind enough to critique my fragile understanding (and mis-understanding) of UMA, it would be much appreciated, just trying to get started here.

    OK here goes:
    First you need a Race, trying to construct a feasibly controllable game object has to start somewhat more restricted than say, any random combination of quantum particles in the multiverse :)

    The Race represents the collection of possible points of control (and their ranges ?) for use by animation and other deformation processes.

    Can a Race be thought of as rigging with a default mesh?

    The race can (does?) contain a DNAConverter which is a local translation of an input parameter — e.g. actual arm length adjustment might turn out to be 0.8 for a 1.0 input in a particular DNAConverter tied to a Race.


    a UMADna (UMA Shape ?) is basically the combination of the contained Race object and the set of data values to be supplied to the Race object.

    Does this imply that the Race object is static and we can get away with reference(reference semantics) vs copy(value semantics) ?

    This seems to imply that a UMADna is effectively an instantiation of a Race in a particular state (dictated by the data values), is this correct?


    Slots appear to be just a convenient and flexible way to break up the mesh into right sized chunks to facilitate skin, clothing, etc.

    Slots contain Mesh components which contain Overlays

    Am I missing something deeper?


    Overlays appear to be composed of materials with shaders and textures that are then applied applied to various Slots

    Again, am I missing something deeper?


    A character (Avatar) is the combination of UMAShapes and Slots and a UMAGenerator to make all this magically come to life, yes?

    Any help much appreciated — thanks
     
  27. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    This thing is actually a UMA Recipe. That's the collection of DNA values, slots, and overlays that define the character. A recipe can contain multiple types of DNA, and the DNAConverters attached to the race decide what to do with the information. Most characters in the demonstrations only contain the base UMADNAHumanoid, but there's an example Tutorial DNA and DNAConverters that has a single value for controlling how close together the eyes are.

    Yes, the races are static, shared objects.

    Most of the rest of that is fairly accurate, this is the wiki page you want if you haven't read it yet: http://uma.unity3d.com/wiki/index.php/Newbie_Section
     
  28. GMagnetic

    GMagnetic

    Joined:
    Dec 8, 2014
    Posts:
    23
    Thanks, I also see from the Wiki I had Slots / Overlays and their relation to shaders and materials messed up a bit, thanks for the help.
     
  29. Non Hic

    Non Hic

    Joined:
    Feb 4, 2015
    Posts:
    95
    Any plans to make this work on Unity 5.x? I'm on RC3 and none of your samples work. I have bought all of your stuff but none of it work in the 5.x RC3. Just a bunch of errors and warnings and when running the demo scenes, no character show up.

    Is this project dead for 5.x or will you be updating it to work with 5.x?

    If not, any other similar product which works with 5.x? It seems that UMA is the ONLY alternative to make a character in Unity?

    It's all so messy.
     
  30. Sendatsu_Yoshimitsu

    Sendatsu_Yoshimitsu

    Joined:
    May 19, 2014
    Posts:
    691
    I'm still learning the codebase, so I apologize if this is a silly question, but I would like to generate random characters with some pretty specific demographic details: short, overweight male, average height underweight female, tall musclar male, and so forth. Am I correct that the best way to organize this would be to have one Race per mesh (one male, one female), one DNA (because both meshes will share the same bones and have the same parts), and generate specific body types with functions like GenerateUMAShapes() in UMACrowd, where I just play around in the editor to find the general physical profile I like and then set upper/lower bounds for each body part in some series of functions GenerateUMATallFat, GenerateUMAShortSkinny, and so forth?
     
  31. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Non Hic: Its already working with 5.0, but you need to use the latest version from Git
    Asset store version will be updated when 5.0 has left beta.
     
  32. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    The crowd and random set is meant as an inspiration not a complete solution!

    That being said I think you're on the wrong track with adding methods like GenerateUMATallFat, GenerateUMAShortSkinny. Why not just add low and high sets of DNAValues to your RandomSet and make the crowd randomize between those? About hair and skin color why not add a low and high color value directly on the RandomSet? Then it's also possible to give them different sets of clothes based on size/colors.

    If you make those changes I'd be very interested in reviewing them and adding them to UMA proper.

    Similarly to how the UMACrowd works already I'd expect that you leave it so that the old method is called if there is no DNAValues in the randomset, and only use your new code if they exists. This allows for much smoother updates to everyone else who is upgrading from an older version of UMA.
     
  33. Sendatsu_Yoshimitsu

    Sendatsu_Yoshimitsu

    Joined:
    May 19, 2014
    Posts:
    691
    Thank you for the quick reply! :) And I'd definitely be happy to share my changes if I get them working, but that may take a while: I'm still struggling to get a handle on the basic workflow to generate and spawn UMA characters efficiently, but once I actually have something that lets me generate a character with a given DNAValue profile and doesn't completely bug out or look weird, I'll let you know how I got it to work. :)
     
  34. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    How do you get the Expressions working? I added them to the slot but nothings happening. Thanks
     
  35. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    They need animation clips to drive them, so you need to add a layer to your animation controller. There are a couple sample clips included for the demos, but one of the reasons I contributed the code was I hope people in the community will help build a library of clips for everyone to use.
     
  36. animator_84

    animator_84

    Joined:
    Feb 26, 2015
    Posts:
    1
    Hi, I'm a newbie to unity and UMA, and I need to ask quite abit of questions for a project I'm working on professionally. Would it be possible to add me into the Skype chat so I can ask some questions? I have looked through most of the tutorials and most of did a RTFM but I could not even put a simple skinned box as a slot into the example project. Would really appreciate some help. My username is pangren@hotmail.com
     
  37. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    OK thanks, I just need the eyes blinking and moving slightly.
     
  38. Solstar

    Solstar

    Joined:
    Jan 22, 2015
    Posts:
    7
    Hi, a question: I need my final character to have 3 materials, one material for the head, one material for the arms and other material for the body. Is this possible? Can I divide my final mesh into three parts to do it?
     
  39. Dajack

    Dajack

    Joined:
    Feb 27, 2015
    Posts:
    7
    Hello there, I had already post this question on the youtube slot and overlay tutorial. ( MrBuddzy ).

    I tried to create my own hat, but when I launch the material builder (I did exactly the same steps than you, with blender and all), i have an error :

    This error overcome when I try to create the slot with the material builder.

    can't understand where it comes from. If you could help me !

    Thanks for your time !

    PS : I also try to transform the bones of the avatar and tried to implement these new positions in the crowd UMA generator, but didn't success. Perhaps could you give me some clues to do it? Like where can we inform the scripts about the human prefab to use, or something like that ?
     
    Last edited: Feb 27, 2015
  40. Dajack

    Dajack

    Joined:
    Feb 27, 2015
    Posts:
    7
    Hi, for all who could have the same problem, I found the solution. In the new version of Blender, you can export in two formats of FBX: - 6.1 ASCII
    - 7.4 binary (default)

    You have to take the first one to be able to import it in UMA asset.

    In this way, I succes to import my hat in the UMA slot library, and add it to the Human randomset data. I have no error, but I never see the hat on any of the avatar created.

    Perhaps do you have a clue ?

    And in my case, I want to have a static avatar in a precise psotion (see image). I have done it on bender but don't find how to insert it in the UMA crowd generation. Could you help me please?

    Here, in the image, I have insert a direct FBX from blender, but I can't give him colors, clothes, etc.. (like the avatar behind). That is why I want to get through the UMA crowd creator to create the avatar, and then save it and load it in other scenes.

    Thanks in advance to those who will perhaps help me !

    postion.JPG
    Dajack
     
  41. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Using the new UMA 2.0 from available on github this is trivial. Just use different material samples for the three slots!
     
  42. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    Hi again, I seem to be having an issue with the right foot in UMA 2.0

    I'm using 3DSMax to create/convert clothing to UMA. It's all working perfectly apart from the feet. It seems as though the envelopes are off.

    UMA Shoe Issue.JPG

    I'm using skin wrap to copy over the skin data from the male_separated model. Like I said, I've done this for lots of clothing items and they're all working fine apart from the feet, there's always an issue with the right toes.
    I tried removing all the other bones from the skin modifier apart from the feet and toe bones but the results are the same.

    Any ideas please?
    Thanks
     
  43. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Does Scene03 complain about the toe?

    Are you sure you didn't accidentally save a new t-pose with a weird toe setting?
     
  44. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    So after upgrading to uma 2 because I'm on unity 5, performance has tanked big time. Shows in the profiler as meshskinning.prepare. Is uma no longer suitable for lots of characters on the screen? I was running at 100 characters and it was close to acceptable, close enough that I figured some relatively minor tweaking and I'd be fine. Now I can't get the same performance with even 10 uma characters that I used to get with 100. What's the deal?
     
  45. cyby89

    cyby89

    Joined:
    Apr 30, 2014
    Posts:
    35
    I got a similar problem, see my post here http://forum.unity3d.com/threads/um...n-the-asset-store.219175/page-35#post-1856369

    I fixed it by replacing the implementation of SkinnedMeshCombiner.cs with an old one from here: https://github.com/huika/UMA/blob/d...e4799178105/UMADLL/UMA/SkinnedMeshCombiner.cs
     
  46. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Someone else reported this a while ago... can't remember the details... something about the number of bones on their skinned meshes reaching thousands. Eli made the best guess that the cause could be Transform == operator has changed.

    Edit: Just saw the post above by cyby... looking into it. That's a completely different problem, getting rid of the Matrix4x4 compare will make it faster, but will also make it fail as soon as your meshes doesn't share the same bindposes. I cannot recommend going back to the old version, though it might be worth it to find a faster way to compare the matrixes.

    A long time ago someone reported thousands of bones. I'm unable to reproduce, but this snippet should show if that's the case for you.

    Try adding this method to a class and set up the UMACrowd OnUpdate event.
    Code (CSharp):
    1.     public void OnUpdate(UMA.UMAData data)
    2.     {
    3.         Debug.Log(data.myRenderer.bones.Length, data.gameObject);
    4.     }
    I'm getting a reliable 53 from my Crowd scene.
     
    Last edited: Mar 2, 2015
  47. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    8x8 grid that's 64 characters and I'm using 1ms on skinning and a little over 3ms on animating bones. Unity 5 rc2.
     
  48. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    I don't see how you're getting 53 unless you're running your optimizer - aren't there 100+ in the regular skeleton? Regardless, I just saw this happen on my machine, so I might have a chance at being able to debug it here.
     
  49. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    I'm not going to try and fix this without Joen, but if you want to keep using UMA 2 in the meantime you can make this change around line #300 of SkinnedMeshCombiner.cs to minimize the impact (may cause skinning bugs with 3rd party UMA assets.)

    Code (CSharp):
    1.         private static int TranslateBoneIndex(int index, Transform[] bones, Matrix4x4[] bindPoses, Dictionary<Transform, BoneIndexEntry> bonesCollection, List<Matrix4x4> bindPosesList, List<Transform> bonesList)
    2.         {
    3.             var boneTransform = bones[index];
    4.             BoneIndexEntry entry;
    5.             if (bonesCollection.TryGetValue(boneTransform, out entry))
    6.             {
    7.                 return entry[0];
    8.  
    9. //                for (int i = 0; i < entry.Count; i++)
    10. //                {
    11. //                    var res = entry[i];
    12. //                    if (bindPosesList[res].Equals(bindPoses[index]))
    13. //                    {
    14. //                        return res;
    15. //                    }
    16. //                }
    17. //
    18. //                var idx = bindPosesList.Count;
    19. //                entry.AddIndex(idx);
    20. //                bindPosesList.Add(bindPoses[index]);
    21. //                bonesList.Add(boneTransform);
    22. //                return idx;
    23.  
     
  50. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    I'm getting 9023 bones after UMA calls OnCharacterUpdated.