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. Dismiss Notice

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,151
    I hope you didn't purchase it - it's free.
    The Expression Player is reliant on the face bones - if you deleted some, it may make the system not work correctly. You may just want to use animations that are layered over your existing animations.
     
  2. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    Blendshapes are not imported automatically. You need to make sure they are imported, and when on the DCA, they are imported there also. Overlays are only generated when the box to create them is checked. But if it does create them, it doesn't know about the textures, so it doesn't fill them out - that all has to be done manually.
     
  3. OMGTOASTER

    OMGTOASTER

    Joined:
    Nov 3, 2014
    Posts:
    24
    Hi Jaimi,

    What is the correct way to add additional addressable recipes and overlays? When rebuilding the library and using a generator, all the addressable groups seem to be recreated and reorganized. Is there a way to only add only the new content? Or at least keep existing groups as is when rebuilding?

    Thanks for all the support!
     
  4. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,429
    Will Uma ever incorporate technology from heretics and enemy github? :p
     
  5. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    The simplest thing is to delete everything that is not used from the drive, then run the "add from project" and generate the addressables. This will keep you up to date. It's painful to rebuild addressable bundles, but they get rebuilt when you build your app anyway, so you can emulate them using the assetdatabase if you want to minimize time and not rebuild them manually.

    If you need to keep the existing group(s), and not regenerate them, then you'll need to manually label them, and add them to a group. If you follow the labelling convention that the group generator uses, then UMA should load them like normal.
     
  6. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    The shaders can be used now. You can also use Wrinkle maps to give a more lifelike appearance, but it's a lot of work to set them up (basically they are overlays on top of the face). And you'd need to drive them using DNA or drive them manually. Of course, they use higher-resolution textures - which eats up a lot of VRAM, but 2.12+ has a fast copy to system memory function to improve usage there. But 2.13 is coming with a shader-only solution that doesn't rebuild textures (composites on the fly). You can get away with much larger textures and detail when using that.
     
  7. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,429
    I posted more like a jest lol

    But IMHO you can get away with a lot less and still have good results like:
    - 512 or 1024 map, using details map normal map and vertex color to mask them by region. See the square Enix gdc workflow on skin in the gdc vault channel on YouTube. They only need 4 micro details map (vertical line, horizontal line, regular dot skin, nose dot skin) and a small smear map to orient the line microdetail. They achieve better quality with less memory pressure.

    - Wrinkle map (the 12 map workflow) can be reduced using the compression and stretch map workflow, which need only two map, and is masked by baked compression stretch vertex data in the blendshape, or they can be computer on the fly by measuring length change of geometry relative to base mesh, Ala enemy. With the micro detail workflow, they don't need to be huge either. And you can generally skip the stretch map to keep only the compression map, because change are subtler when stretched and can be emulated in shader (less rough surfaces). It's also not that hard (for an artist) to add the wrinkles of the compression map.

    I was thinking more about the hair tech that just landed on github, and the old stick beard to blendshape tech on the heretic github.

    Also I just quickly studied the blendshape system of metahuman... they don't use blendshape, it's all bone all they way down. More compatible with UMA. I need to figure out this.

    I'm almost reaching production phases of my project, more like the development part if research and development, I'm going to toy with implementing those in details and a few other idea. When I'm ready I'll see if I can port some of those on UMA, once I master then and they are validated.

    I planned to use UMA for a long time, I wasn't ready yet, I'll be happy to collaborate.
     
    Last edited: Aug 10, 2022
  8. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,429
    The square Enix video:


    Random thought: one idea I'm exploring is to reduce the pressure of blendshape number by separating the mouth area and leaving the rest bone base, since the complexity is lower elsewhere. But seeing metahuman is only bone based, if I can figure out the rig, that would be cool to imitate that.
     
  9. OMGTOASTER

    OMGTOASTER

    Joined:
    Nov 3, 2014
    Posts:
    24
    Ahh you are right, and I think I misunderstood something about addressables. Only the labels matter for the build.
    However, I noticed that the generators do seem to overwrite old labels. Is there a way to prevent this or how do I control the labels the generator will apply?

    I also noticed that the group generator will also add the textures of recipes, while the single group generator will omit them. How can I have the generator include the textures and is that preferable?

    Thanks again!
     
  10. waseku

    waseku

    Joined:
    Jun 28, 2020
    Posts:
    7
    Hi all,
    how can I load .umapreset files from a script?
    Should I read it as a text file like in this tutorial (UMA 101 - Part 12: Character Creator (3 of 3)) and use avatar.LoadFromRecipeString(string)?
     
  11. holy_3051

    holy_3051

    Joined:
    Jul 26, 2013
    Posts:
    3
    Thanks, I managed to make it work properly.

    Another simple questión.
    When I have multiple overlays in the same slot. How do I control which one is painted on top.
    I know that the last overlay in the list is on top, but how do I set them in the desired order?
     
  12. OMGTOASTER

    OMGTOASTER

    Joined:
    Nov 3, 2014
    Posts:
    24
    Hello!

    I'm trying to create a new race but trying to generate the model keeps returning this error: Boneweights and BonesPerVertex are invalid. The slot must be regenerated.

    Looking back in the thread I noticed someone else had the same error but there was no resolution. I've tried the solutions that we're proposed but still get the same error. The model was created off the uma base male rig so all the bones are exactly the same. The model itself works and animates fine by itself as a unity humanoid rig. I've tried enabling 32 bit buffers and have tried a similar lower poly model as well. The slot in debug shows an empty list for Bone Weights, but has populated elements in Managed Bone Weights and Managed Bones per Vertex. Looking at the code where the error is thrown, it checks for those arrays but they are always an empty set. Any idea why this is?


    Update: I found the issue I had since posting and stepping through the code: the overlays were not set properly. This was just the latest problem though as I had overlays set up previously. Getting it to work most likely involved all of the above. Mentioning this for anybody else encountering this error!
     
    Last edited: Aug 12, 2022
  13. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    Wardrobe recipes are applied in the order the wardrobe slots are defined on the race. Slots in the recipe are applied in order they are in the recipe. Overlays are applied in the order they are on the slots.. all 9f these can be edited.
     
  14. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    .
    Bones are much less resource intensive, for sure. Plus, you don't have to propagate them to everything.
     
    neoshaman likes this.
  15. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    The single group generator does include the textures. It's just that they are included by reference on the overlays instead of manually.
     
  16. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    You should load and save with an avatar definition, instead of a recipe string or umapreset. See the "how to... " ample scenes for more information. An umapreset is only loadable by the editors.
     
    waseku likes this.
  17. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,445
    Dear Friends, I'm interested in bringing Non-humanoid characters into UMA. I watched the excellent tutorial video for Secret Anorak. He mentioned that the video after that would cover bringing it animations with Root motion but I cannot find that video. Can someone suggest where I can find the video or more information regarding Non-Humanoid characters to UMA. Very much appreciate it.

    UMA 301 - Part 10: Non-Humanoid UMA Races
     
  18. Turniper

    Turniper

    Joined:
    Nov 2, 2013
    Posts:
    15
    Are there any good resources for adding extra bones to UMA characters? I see that UMA, using the dynamic character avatar object, likes to generate it's own avatar at runtime by default. If I follow the standard way of adding bones to a humanoid rig, putting them in the animation, importing it to unity, setting the avatar of the imported fbx to humanoid, and then going into the masks section under the animation and enabling the additional bones, these curves get ignored if I play that animation on the UMA character, using it's generated avatar. I assume this is because the avatar my UMA is using, the auto-generated one, does not have those bones. I've tried using the avatar that I imported the model with, but if I export as an fbx with the default blender settings, it results in a garbled mess. If I use the fbx export settings in the content creation guide, when the resulting avatar is used the character just t-poses endlessly. I can get the animations to play if I use the DefaultMaleAvatar that comes with UMA, but they also don't use the extra bone, and Unity won't allow me to edit anything about the asset, when I click on it none of the editor properties I see with other avatars appear, so I'm not sure how to get my extra bones in there. Quite confused. Is there an intended workflow for this?

    For clarity, my goal is to add an extra bone below the hand that I can use to animate attached objects rotating or sliding separately from the hand.
     
  19. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    Yes - the problem is usually the hierarchy (Unity finds the bones to animate by the path of the bone). Which is usually changed because of where the animator is, and where the bone root is. So you have to edit the animation to insert the correct hierarchy using the animation retargeting tool that comes with UMA. With it you can add/remove parts of the object keys.

    As well, you need to make sure the bone gets added. If it's on a slot, then you need to be sure that you add it to the list of bones "Keep bones containing" so UMA doesn't discard it.
    If you add it manually, be sure that you add the tag "UMAIgnore" to it, and then check the box "save/restore ignored items" on the generator.
     
    Last edited: Aug 16, 2022
  20. Turniper

    Turniper

    Joined:
    Nov 2, 2013
    Posts:
    15
    Thanks for the quick response. I'm sorry, I still don't quite get it. I see the 'Create Clean Animation' option, but not anything obviously related to retargetting. My bone is not on a slot, but looking into that, I am not averse to rewriting my weapon system to be slot based, if slots can take new arbitrary bones. To confirm I'm understanding this right, I'd add a new slot, RightHandSpear or something, which has my mesh in there. I include the whole existing armature in this, with my new bones and mesh added in as one whole skinned mesh renderer. I add the new bones to that Keep list. Then if my animation uses those bones they'll be there in the generated animator avatar? Also, if I want the option to have that attached to either hand, do I need two slot assets? I don't immediately see a way to do that without two different slots.
     
  21. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    It's "Animation clip target renamer" on the UMA menu. I absolutely do not recommend creating slots for weapons. The process you say is correct, but I wouldn't use it for weapons because then it restricts which hand it will be on.
    Instead - look at the UMAMountedItem, and the "Save and Restore ignored items" flag. There is a scene that shows how to do this. (MountingObjectsExampleScene)
     
  22. lordconstant

    lordconstant

    Joined:
    Jul 4, 2013
    Posts:
    389
    Hi,

    I'm using UMA for a custom generic character & managed to get my character setup & customisable. I have an issue regarding blendshapes though. I'm using blendshapes for hand shaping & changing them through animation but it looks like UMA is overriding the values as they are normally driven through dna, is there any easy way around this? I'm not using the DNA for deformation & don't intend to.

    Cheers,
    Chris
     
  23. Turniper

    Turniper

    Joined:
    Nov 2, 2013
    Posts:
    15
    Thanks, I'll take a look at that.
     
  24. Clariesu

    Clariesu

    Joined:
    Apr 2, 2021
    Posts:
    24
    I want to know if UMA allows adding slots with extra bones. I want to add some physical bones and cloth systems to my character, but as far as I know, unity cloth is a disaster.
     
  25. Turniper

    Turniper

    Joined:
    Nov 2, 2013
    Posts:
    15
    Ok, I tried that, but I think I'm still missing something. My new bone transforms exist on the prefab already. I added the UMAIgnore tag to those new transforms. I checked the Save and Restore Ignore Items checkbox on the UMA_GLIB. I used the retargetter tool to add Root in front of my animation's object key, which now looks like : Root/Global/Position/Hips/LowerBack/Spine/Spine1/RightShoulder/RightArm/RightForeArm/RightHand/RightWeapon. Nothing seems to have occured, the animation still works as it does before, without any motion being applied to that RightWeapon joint.
     
  26. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    Be sure you have "Load blendshapes" on the DCA turned on. The example UMAs shouldn't have any blendshapes. Are you referring to the bone deformation? If so, be sure to turn off the "Expression Player", and make sure your animation has the object hierarchies correct (see the previous few messages about the animation clip target renamer).
     
    lordconstant likes this.
  27. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    Yes - new slots can have extra bones, for things like animating and physics. See the included sample slot "bonytail" that adds a ponytail bone chain and drives it with the sample physics component.
     
  28. lordconstant

    lordconstant

    Joined:
    Jul 4, 2013
    Posts:
    389
    Thank you I managed to get my issue sorted out, due to trying to use our existing character avatar that the model generated & not the one UMA auto generates the blend shapes weren't getting mapped properly even after fixing the animations, just had to use the UMA avatar & it all works now ^^ Awesome tool btw, saved me a bunch of time!
     
    Jaimi likes this.
  29. Clariesu

    Clariesu

    Joined:
    Apr 2, 2021
    Posts:
    24
    Thank you for your reply. Sorry, I didn't find this in the document. In addition to the examples, where can I find instructions for producing slots with extra bones.
     
  30. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    There's no additional instructions - you just add the bones and weight them.
     
  31. Macak87

    Macak87

    Joined:
    Jan 18, 2020
    Posts:
    1
    Hi,
    Can anyone recommend HDRP Hair shader that works with UMA. Currently using Lit, but not too happy with it.
    Thanks!
     
  32. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,151
    I don't use HDRP, but I thought there was a hair shader that came with it. You can use most any shader with UMA, as long as you setup the UMAMaterial, and the Shared Colors to set the material properties.
     
    Macak87 likes this.
  33. skechy

    skechy

    Joined:
    Jul 25, 2013
    Posts:
    6
    Hello so i'm trying to recreate an effect like the one seen in the video below were a extra material is used to add a fresnel effect to the skinned mesh renderer. i'm wondering what the best why to do this with uma is? by the sounds of the post i have replied to here, it seems i might have to apply a overlay to each slot that has the given UMAMaterial added to it or is there a cleaner way to handle this?
     
  34. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,605
    Add the material AFTER the UMA has been combined. It depends on how you're doing things with UMA, but if you are following the plain vanilla path, this would probably work. You could test it in edit mode by hitting play so that you get your authentic UMA up and running, then manually add the material.

    If you figure out how to do it manually, you can change the material with code. If you're not very good with code, try doing it with Unity's new visual scripting.
     
  35. skechy

    skechy

    Joined:
    Jul 25, 2013
    Posts:
    6
    yeah, this is what I tried doing but I am get this weird effect where it causes all materials under to not render if I have it over top of the other materials or it is not render if it is below the base UMA_Mat material. This is why i was wondering if I was applying it wrong or if there was a better way to do this with out having this happen. cool that I can add the glow but not usable if it turns my uma into a fresnel ghost every time i apply it.
     
  36. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,605
    Not sure what effect you are trying to get, but my thought was that you'd apply the special material only during the time you need the effect, then you'd go back to the normal look. Like, if you wanted to apply a transparency effect or ice effect on a character, you'd swap in that material, then swap back the normal UMA one after the effect expired.

    Another approach would be to make a duplicate UMA and apply the special material to it. Then you swap back and forth between UMAs as needed, or something along those lines. Since you're not doing this often, generating a duplicate UMA and destroying it afterward would seem reasonable in terms of performance, if you need to do it that way for some reason.
     
  37. skechy

    skechy

    Joined:
    Jul 25, 2013
    Posts:
    6
    I'm trying to make the exact effect in the video, trying to overlay a material with just a fresnel on it to create a glow effect for the character. my problem seems to be that uma is not rending the transparency on the layer and applying the next layer under. So I either get a render mesh that is fresnel with a solid color under or a fresnel ghost, I'd like it to keep the overlays and apply the material with a fresnel over them but it seem to only be rendering it instead of them. This is what led to my question to if I need to make an overlay with this material for it to apply properly and not override the other materials. I'm a fairly good coder just don't know exactly how uma renders everything, it's easier to ask if I made a mistake rather than look through uma's whole code base to see if I can force it to do what I want, because if I'm going that route I might as while ask for it to be supported before modifying anything myself.

    here is an example, left is what I want to achieve more or less. the middle left is the same material being applied to another mesh in the same way but working properly, so I know the material is right. then the two right pictures are what I'm currently capable of getting it to render on the uma, one with a solid alpha and one faded out with the fresnel.
     

    Attached Files:

  38. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,605
    First thing to consider is that this isn't actually an UMA issue. It's a materials issue, and - as a guess - it probably relates to something not being the same between your samples where it works the way you want and where it doesn't. I have no familiarity with URP, I haven't been reading about it or anything, but when this kind of issue comes up, look to the alpha channels in the textures and transparency v opaque in the shaders, as a general rule. (The effect you're trying to apply is using an alpha blend, according to what I saw in the video.)

    A lot of game developers using UMA are using URP, so if you don't spot your discrepancy on your own right away, and if no one else responds here, give the Discord for UMA a try. It's like 100% certain someone has already been through this sort of issue. It looks to me like a standard sort of thing that we all bump into when working with shaders, transparency, and alpha, and once you see it, the light bulb above your head will go off, and you'll get it. :)
     
    Last edited: Aug 26, 2022
  39. skechy

    skechy

    Joined:
    Jul 25, 2013
    Posts:
    6
    yeah I wasn't aware there was a discord, do you mind providing a link. I'm not able to find it posted anyway. also yeah, i'm sure someone has and not knowing that was a discord, asking here was the best option. as for my issue seems more like a material stacking issues then a material issues per say. i'm guessing i'll probably have to rebuild the base material to handle this but I guess I'll find out. thank you for your help.
     
  40. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,605
    I don't think your answer is going to be with overlays, BTW. I suspect it's probably related more to the Alpha FBX not having an alpha texture, while UMA does, or something like that.

    The Discord link is in the documentation, but this may work (note it is called "Secret Anorak" not UMA, because the user named Secret Anorak set it up): https://discord.gg/PJEZ4REtfH
     
  41. skechy

    skechy

    Joined:
    Jul 25, 2013
    Posts:
    6
    So I just remembered that SA has an tutorial just for this. Thank you for prompting me to remember this. And yeah this was one of those knowing how to do it but hoping there was an easier way to do it. Would be cool if uma had an atlas overlay material or something like that. Anyways for anyone that finds this and wants a quick pointer to the solution, here is the link to the video:
     
    Jaimi likes this.
  42. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,605
    I suspect you're turning OFF the albedo / main texture as you turn ON the effect, because the UMA alpha is controlling whether you see the albedo. Or something like that.
     
  43. skechy

    skechy

    Joined:
    Jul 25, 2013
    Posts:
    6
    so kind of, as this video explains uma renders each material as it's own atlas. By changing which material was applied to the slots, I was effectively forcing the slots to use a different atlas than the overlays for the slot were being rendered on, causing no overlays to be applied to the slot. Basically the fix to this is either switching out the current material with a new material that shares all the same maps or swapping out the default uma material with one that uses the wanted shader from generation allowing the atlas to be populated with that material. so basically the first option is as you thought but also not as you need to rebuild the atlas in the new material for it to work properly with out deleting the alpha or the second way is exactly what i though. as rebuilding the atlas seems to undo the purpose of uma, I've opted to do the second, but this is ok, it means I just need to build any effects I want into that one shader and use it from the start. definitely will create a pretty messy shader but also a lot simpler to flip a bool in the material, than worry about swapping them out every time a player uses an ability that effects this.
     
  44. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,605
    Glad you figured it out! :)
     
  45. honglx88

    honglx88

    Joined:
    Aug 11, 2022
    Posts:
    1
    Hi,

    Is it possible for UMA to save bone customization to a simpler rig that does not have the customization bones? I'm working on a character customization setup and I'm having trouble with the saving of bone customization using a different rig setup to UMA's

    Thanks!
     
  46. jacob_unity989

    jacob_unity989

    Joined:
    Jan 10, 2022
    Posts:
    8
    Hello, my company is using this asset.
    However, since the current method of managing materials and textures is too old,
    it is very difficult to apply the latest shaders.
    What can I do to improve the system? We need your help. Any help would be greatly appreciated.
     
  47. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,605
    Possibly you downloaded the original UMA instead of UMA 2? The first version is indeed very old, but UMA 2 has been updated, and by default uses the built-in shader. You can follow instructions in the documentation if you wish to use other shaders, including custom shaders.
     
  48. jacob_unity989

    jacob_unity989

    Joined:
    Jan 10, 2022
    Posts:
    8
    It would be better if you change the randomizer to include the wardrobe collection file.
     
  49. jacob_unity989

    jacob_unity989

    Joined:
    Jan 10, 2022
    Posts:
    8
    Thanks for your reply. Our company project does not use the UMA built-in shader, but uses a separate shader created in-house. And use the ramp texture. The ramp texture was included in the atlas packing, so there was an issue with the surface when rendering, which was solved by checking the Non-shader Texture option in the UMA material.
     
    hopeful likes this.
  50. jacob_unity989

    jacob_unity989

    Joined:
    Jan 10, 2022
    Posts:
    8
    Can UMA also use Udim tiles? From my experience, I haven't found a feature yet.
    If it is not available, it may be necessary to add a feature.
    In addition, I would like to change it to enable multi-material recognition.