Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    There is currently no built in polygon reduction. I know that Unlogick was working on one, but I don't know the state of it. The default models are not that high poly, so you might be able to get buy changing to one of those faceted shaders if you are looking for that low-poly look.
     
    PlayerDev likes this.
  2. PlayerDev

    PlayerDev

    Joined:
    Mar 15, 2017
    Posts:
    15
    Thanks for the answer. Well it's not that I want a low poly look, it's more that I might have hundreds of units at the same time and I'm concerned about performance. I know I can reduce texture, but I'd like to maybe remove bones too since I won't be doing complex anims.
     
    Groggsy likes this.
  3. manwitch

    manwitch

    Joined:
    May 28, 2019
    Posts:
    7
    I'm wondering if any one has managed to integrate UMA and invector since the last updates of both? the integration from the UMA wiki doesn't work any more. Invector has changed the character creator to a Parent-Child format that includes a capsule collider and animator. The capsule collider can be solved by not using the UMA capsule collider script, but I have tried and tried to figure out the animator problem with no luck.
     
  4. HappyGoLucky

    HappyGoLucky

    Joined:
    Jan 5, 2014
    Posts:
    5
    It does not fix itself by viewing the material at runtime. The sliders do change the material, so it is applying the textures. Is there a difference in Standard vs. HDRP texture formats?
     

    Attached Files:

  5. Groggsy

    Groggsy

    Joined:
    Mar 6, 2013
    Posts:
    7
    I too am interested in this for creating a crowd scene with limited animation (think sports games with spectators walking or standing around). It would be good to generate a bunch of people with no facial rig animation for example. Producing lods would be ideal too. Is there a tutorial for making our own base meshes from 3ds max to work with UMA?
     
  6. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    Keep in mind that if your crowd is very large, just cutting polys down may not be enough. Animation can be costly, so you may need a solution that solves that issue.
     
  7. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    UMA doesn't currently have a way to reduce bones, so you would probably need to create a new race with reduced bonecount. SecretAnorak has some videos that would be helpfult. The Powertools used to be able to bake out bones, but it's not yet compatible with 2.11.
     
  8. PlayerDev

    PlayerDev

    Joined:
    Mar 15, 2017
    Posts:
    15
    Ok so what do you think of this work flow:
    1-Make a low poly mesh in Blender, with low res texture
    2-Export to unity
    3-Transform it into UMA

    Would that work? Is there something in UMA that is incompatible with low poly?
     
  9. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You can build the character at edit time, and set the animator in the "race animation controllers". As well, you can remove the capsule collider recipe in the "additional utility recipes" section if you don't need it. You may need to turn off "Rebuild skeleton" as well.
     
  10. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yes - there is a difference. You might need to change the texture type in the UMAMaterial channels as well, from Diffuse Texture to Texture for the first channel to preserve the alpha.
     
  11. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    There is a whole video series on it from Secret Anorak:

    https://www.youtube.com/c/SecretAnorak/playlists
     
    Groggsy likes this.
  12. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Sure. There's nothing that is incompatible with UMA. But for something like that, you might want to look at "Imposters" -- rendering the animation frames of the characters to textures.
     
    hopeful and PlayerDev like this.
  13. Michael_Berna

    Michael_Berna

    Joined:
    Jul 5, 2019
    Posts:
    39
    What does bounds offset do in the Dynamic Character Avatar Script? I couldn't seem to find a reference in the documentation or forums.
    Also, is there a way to offset my UMA vertically just slightly? It is in a rigidbody and the feet are a few inches above the floor when it is grounded.
     
  14. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Currently, BoundsOffset doesn't do anything unless you call "ApplyBounds". At one time, it was hooked into the CharacterCreated event to do that automatically.

    You can adjust the bounds now in the converter controller - find the RaceData for your character, and from there you can get to the Converter Controller. It will look like this:

    dnaconvertercontroller.png
     
    Michael_Berna likes this.
  15. Michael_Berna

    Michael_Berna

    Joined:
    Jul 5, 2019
    Posts:
    39
    Thank you Jaime. I appreciate your time and effort and your willingness to always help.
     
  16. Groggsy

    Groggsy

    Joined:
    Mar 6, 2013
    Posts:
    7
    Sorry to 'hijack' this thread, but as PlayerDev and I are asking pretty much the same thing I didn't want to repeat the same questions. So, to recap, we can make our own low poly base avatar meshes, along with the clothing/hair etc, and they will work with the UMA set up in Unity (customise body shape and bake textures into single pages)?

    Basically I am trying to create a social environment were many users (several hundred) can log in, create their unique avatars and walk around and interact with each other. I have done this already with my own avatars, but they can only choose from a few pre-made low poly models which have lods. There is no customisation apart from colour changes to the clothing and hair.

    If this works it will take make the experience much more satisfactory for my client. Having lods for UMA as well would be perfect - hopefully it will be possible with UMA Power Tools and I will check that out as well.

    Thanks for your help with this Jaimi.
     
  17. manwitch

    manwitch

    Joined:
    May 28, 2019
    Posts:
    7
    Thank You for the response and support of UMA

    Unfortunately I've tried all of this and it doesn't work. Let me try to explain.

    When creating a character with Invector, if I use willb's fem base 2 mechanim prefab everything works fine, and the creator puts a "removed animator" on the animator component on the newly created 3D model "child" and it's disabled (it adds an animator on the "parent").

    If I use the Uma fem base 2(the UMA version of the same model) it doesn't disable the animator on the new "child" created (manually disabling it doesn't work it either). So you wind up with an animator on the parent, and on the 3d model child, and the uma dynamic character as well, I'm at a loss to get it to work.

    I'll add, in the past I've been able to get it to work but there was always a problem with UMA's not being able to fire any weapons. I was under the assumption that the new Invector update was going to address the issue, but it seems to have just rendered UMA unusable. I don't think Invector is willing to address UMA problems any further, so I'm here, lol. I'm no expert coder, but I can usually edit existing scripts that are close to what I'm looking for to be closer to what I'm looking for.

    I guess I'm not against investing in a different character template if there is one that is known to work, but I'd much rather figure out how to make this one work any suggestions are welcomed.
     
  18. HappyGoLucky

    HappyGoLucky

    Joined:
    Jan 5, 2014
    Posts:
    5
    After several days of being unable to find the correct way of achieving the desired material effect. I created a quick work around with several Non Atlas materials that get replaced at runtime, by the visually correct material. Not very efficient, but it works. Thank you for your time.
     
  19. Mrmisklanius

    Mrmisklanius

    Joined:
    Dec 11, 2019
    Posts:
    15
    So, I'm loving UMA. I've been fiddling w/ it for awhile now. Since the edit-time changes I've been trying to legitimately use it in my game. I've encountered one issue that stumps me a bit. When I make changes to the characters textures through the UMA renderer component or really anywhere else it seems, the texture changes back to the pink notset texture. This seems like a simple issue but I'm stumped.

    Also I'm wondering if I can put a second skeleton on my UMA characters for animating purposes? Then take those animations and apply them to other UMA's without a second skeleton? Two skeletons each is a lot of processing power I don't want to waste. Or is this a non-issue? Ultimately I'd love to use procedural animations for my UMA's but looking at the bode layout that seems iffy without a second skeleton.

    EDIT: So after playing around with UMA and Emerald AI, The animations seem to be deforming the UMA model. I'm not sure if it's because of the bone rig on the UMA model or if its the animations that came with Emerald AI using a different kind of rig. After looking at the UMA models rig using the bone viewer from unity's Animation Rigging package, it looks like I may need to use that one for playing animations. That'll be interesting to figure out
     
    Last edited: Mar 4, 2021
  20. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    UMA creates new materials on the fly every time you call BuildCharacter. The new material has textures assigned to it based on the contents of the atlas (which is constructed from the overlays), and the UMAMaterial channel properties.

    You can animate the UMA yourself if you want. If you want procedural animations for some parts, you can use IK, or you can turn off the animator, and do it yourself. You can create masks to turn off parts of the skeleton, or to overlay animations over the top. This is all just "unity" stuff, I recommend to check out the animator stuff in Unity Learn.
     
  21. Mrmisklanius

    Mrmisklanius

    Joined:
    Dec 11, 2019
    Posts:
    15
    Okay awesome, I'm glad to hear UMA's work like any other model, that makes things easy. And thanks for the materials info, that definitely helped. You're awesome for continuing to support UMA so much.
     
  22. lobotomista

    lobotomista

    Joined:
    Jul 21, 2018
    Posts:
    39
    In the case of daz assets what's the recommended workflow UDIM's or one mesh per material? And why would you recommend that?
     
  23. VR_Junkie

    VR_Junkie

    Joined:
    Nov 26, 2016
    Posts:
    77
    Is there any way to use the DCA Renderer Manager to only show hands instead of not showing the head?
     
  24. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    UDIMs are actually just multiple textures, and they work by changing the UVs. This will mess up the Atlassian process, you should avoid them.
    If you have more than one material,per mesh, UMA will break it up at slot generation, but each produced slot will use more memory, and you will have to manage that. Best to keep it to one material.
     
  25. Murble

    Murble

    Joined:
    Aug 7, 2019
    Posts:
    14
    This is a pretty basic question, but it has been bugging me for a few hours now.
    How do you get the clothes the character is currently wearing?
    In the Dynamic Character Avatar under current wardrobe I want to grab the clothes that are currently on the avatar and store them into a list of strings.

    I tried doing avatar.CurrentWardrobeSlots however, that did as it says and just gave me the slots which I could put clothes onto.
    Then I tried doing avatar.GetCurrentRecipe but that gave me dna and a lot of other stuff which I wasn't looking for.
    Then I tried avatar.GetCurrentWardrobeRecipe() and I thought that would be the one I want, however it just gave me a lot of errors so I don't know if I'm using that one right at all.
     
  26. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yes - take a look at the "DCA Renderer Manager" component on the - there is a spot where you set which slots you want move from the main renderer onto different renderers.

    It's sets up a "MirrorLayerRendererAsset", that renders the slots and their shadows.
    It then sets up "ShadowsOnlyRendererAsset" that renders those slots only in the shadow pass.

    So when the character is drawn, it draws the main renderer (the body, minus the three slots that the renderer manager is managing), the shadows only renderer. The main renderer and the mirror renderer is drawn when the mirror texture is generated from the mirror camera.

    So to do what you want you would follow the same process, just add all the other slots but the hands.
     
    VR_Junkie likes this.
  27. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You can get a definition of the avatar that includes the slots, dna, race, and colors using GetAvatarDefinition(); You can convert a string of this from the AvatarDefinition ToCompressedString() method. There are also methods to load them.

    Or you can get their current wardrobe accessing the WardrobeRecipes property. This returns a Dictionary<string, UMATextRecipe>. The key is the slot name (you can get the list of slots using the CurrentWardrobeSlots property).

    If you don't care what slot the recipe is in, you can iterate through the WardrobeRecipes.Values.
     
  28. Murble

    Murble

    Joined:
    Aug 7, 2019
    Posts:
    14
    Alright thanks.
    I happened to notice there is a GetAvatarDefinitionString() method which did the converting from AvatarDefinition to a string for me to save a step.
     
    Jaimi likes this.
  29. doctor25th

    doctor25th

    Joined:
    Mar 8, 2018
    Posts:
    1
    Hello,
    I plan to use the UMA for my project and will being using a lot of unique custom animations, what is the best way to animate a uma character? I have programs like umotion pro and blender, what would be the best method to use them? When I try to do some methods like using the source model from the git then animationing in blender or exporting it then animating with umotion pro, it causes some of the animations to act weird like the legs are slightly crosses and the face animations to be in the default pose. I would like to find a new method to animate a uma character or try to fix this.
    Thank you
     
  30. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    UMA produces a regular Mecanim Skinned Mesh Renderer, so you can buy prebuilt animations, or create animations in Blender. Because UMA characters can be different sizes, you'll need to plan your animations around what you think your characters will look like, and you may need to use IK for hand/feet placement in some circumstances. But this is no different that retargetting any animation to any model.

    You can get the blender base files on the UMA content pack GIT here:

    https://github.com/umasteeringgroup/content-pack
     
    Mrmisklanius likes this.
  31. JonBanana

    JonBanana

    Joined:
    Feb 5, 2014
    Posts:
    85
    Hi everyone,

    I want create UMA cloth with physic (robe) , l dont succeed to find a tutorial.
    Where can i find the instruction ?

    Thanks
     
    Last edited: Mar 9, 2021
  32. krapa

    krapa

    Joined:
    Jul 1, 2019
    Posts:
    9
    Hi,

    is somebody have the same problem of me ?
    I can't select another race in UMA Randomizer, it stay on the first race.
    There is no error or warning when I try to select another race, it just stay on the first race.
     
  33. krapa

    krapa

    Joined:
    Jul 1, 2019
    Posts:
    9
    take a look on this video, may be it could help, he add glasses and a vest.

     
  34. Mrmisklanius

    Mrmisklanius

    Joined:
    Dec 11, 2019
    Posts:
    15
    I have a few more questions. So I've started using the Animation Rigging package to use procedural animations at runtime, and I'm wanting to know how to automatically have that ready and set up when I create a new UMA. Would I just change the Dynamic Character Avatar prefab specific to the UMA race (Elf Female for example)? Ideally I'd love to also have my Emerald AI system spawn with it as well. My end goal is to not modify each individual UMA if I can help it as I'm trying to streamline things to be faster for myself. Would modifying the prefab give me that result? I haven't gotten the animation rig done yet so I figured I'd ask so I know when the time comes.

    Also, is it possible to prevent the same exact DNA set from being used twice? Like, if I were to create 200 - 500+ random characters, could I ensure that they'd all have different DNA? My game is going to require a LOT of NPC,s and I'm wondering how far I can push the DNA system as I really love it. They won't all be on screen at once, my game world is huge (~75 square kilometers so far, if unity's unit system is to be believed). It's not the end of the world if I can't get that level of detail as of yet, but I'd love for that to be a small detail. I know theoretically every face detail has 100ish possibilities per race (0.01, 0.02, etc.), but I can't figure out how to limit it effectively and efficiently.

    Thanks again for all the support towards UMA. I'm very glad that I can use this for my project, it's an amazing system :) .
     
    Jaimi likes this.
  35. JonBanana

    JonBanana

    Joined:
    Feb 5, 2014
    Posts:
    85
    Thank for your answer but this video explain how to create basic cloth, not cloth with physic.
    I want create something like the Cloth Example located in the Physics Example folder of UMA.
     

    Attached Files:

  36. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I do not see this issue. It should only reset the race in the "OnEnable" function, which happens when you select a UMARandomizer object. If you do not select anything else, you should be able to change it all the time. I have seen goofy issues like this when you have selected an item and locked the inspector, so make sure your object is selected, and the inspector is not locked.

    If you need to have a locked inspector, then perhaps go into UMARandomizerEditor.cs, and change "private int currentRace = 0;" to "static int currentRace = 0;"
     
  37. krapa

    krapa

    Joined:
    Jul 1, 2019
    Posts:
    9
    I made a video to show the problem.
    for the moment I see 2 problems :
    - impossible to select a race in Randomizer
    - impossible to do a configuration in the overlay dataset, each time I open a parameter it close it automatically

    it's very strange it arrive only with UMA, I have tried with new scene or existing example and I have tried to reset my layout but it always dot it.

     
  38. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Do you have any other packages installed, or anything from the asset store or package manager? I was not able to duplicate this on 2020.2.4, but I had one other person have this problem also (they ended up going down to 2019.4)

    I am able to duplicate this now. It appears to be a change to Unity that has caused this. Somehow the private variables are being reset. it's like it's regenerating the editor every few seconds. I will report it is a bug. But I'm not sure how to fix this without some serious wackiness.

    Update: Yes, since 2020.2.6, Unity recreates the editor every few seconds. This resets the private variables. Why it does this, I have no idea. I am submitting a bug report.
     
    Last edited: Mar 11, 2021
    hopeful likes this.
  39. krapa

    krapa

    Joined:
    Jul 1, 2019
    Posts:
    9
    Thanks for the quick answer, I will see if there is some correction in the future unity version, or if I return to an earlier version :)

    is it possible to have the bug report link when you post it to follow unity team answer ?
     
  40. JonBanana

    JonBanana

    Joined:
    Feb 5, 2014
    Posts:
    85

    I find the solution,if it can help someone :

    "Physic Cloth" Slot creation :

    Create a prefab with 2 GameObject inside
    - The SkinnedMeshRender of your cloth and Cloth component
    - The Skeleton Hierarchy of your character

    Drag and drop the prefab to slot builder menu. (in the area "Drag meshes here" area)

    Set renderer asset of cloth slot to "ClothUmaRendererAsset"
     
    hopeful likes this.
  41. Vire7777

    Vire7777

    Joined:
    Mar 13, 2019
    Posts:
    37
    Hey hey :p

    me again for a small question
    Is there a way to prevent UMA to create the rigidbody/capsule collider ?
    Because i m already using a character controller and i absolutly don t need those (which are actually creating problems in my scene)
    i was looking in the advanced options of the dynamic character creation but couldn t find any on that purpose

    i tried delete the slot capsule collider but it always reappears when i launch my game

    Thanks
     
    Last edited: Mar 12, 2021
  42. Vire7777

    Vire7777

    Joined:
    Mar 13, 2019
    Posts:
    37
    Ok i found now in the additional Utility recipe
     
    hopeful likes this.
  43. ZackTerumi

    ZackTerumi

    Joined:
    Feb 21, 2018
    Posts:
    4

    Same problem anyone?
     
  44. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yes - everyone on 2020.2.6+ are being affected by this. Unity introduced a bug in that version that recycles the editors every few seconds (or messages?), causing the state to be lost.

    I've submitted a bug for this, but currently it hasn't been looked at. 1320756
     
    ZackTerumi likes this.
  45. ZackTerumi

    ZackTerumi

    Joined:
    Feb 21, 2018
    Posts:
    4
    Thanks for the reply. Do you know any workaround for now?
     
  46. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I do not. I'll either have to re-architect the affected inspectors, or we'll need for Unity to fix this.
     
    ZackTerumi likes this.
  47. ZackTerumi

    ZackTerumi

    Joined:
    Feb 21, 2018
    Posts:
    4
    Thanks for the info! I hope the fix will come soon. Have a nice day!
     
  48. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The develop branch has the first pass at fixing this editor behavioral change.
     
    ZackTerumi and hopeful like this.
  49. krapa

    krapa

    Joined:
    Jul 1, 2019
    Posts:
    9
    My solution for the moment is to prepare my UMA in an earlier version of unity (before 2020.2.6) and to import my assets in my project in 2020.3.0, it take a little more time but it's okay for me while waiting for a correction.
     
    ZackTerumi likes this.
  50. ZackTerumi

    ZackTerumi

    Joined:
    Feb 21, 2018
    Posts:
    4
    My workaround for now.
    https://imgur.com/vDJA3vJ
     
    krapa likes this.