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

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    There's no easy way to do that, so far as I know. The closest you can get is to break off entire slots. And those slots will need to have their internals closed off, so that when you have a leg piece gone, both the remaining mesh and the fallen part have ends that are closed off.
     
  2. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    As the UMA mesh is already made, could you not use a runtime mesh cutter? Something like this one? (I haven't looked through the entire store) https://assetstore.unity.com/packages/tools/particles-effects/simple-mesh-cutter-104360
     
  3. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    510
    Thanks I ended up using UMAs wardrobe system to make a UMA ragdoll with all hidden meshes except the limb I want. I then coded a custom recipe to add only the colliders for that mesh. So it’s essentially a limb ragdoll. I’m going to be doing some performance testing once I complete a full integration, I hope it doesn’t take too much horsepower (and/or too much latency) to generate the mesh blown off AND this UMA limb in such a short time.
     
  4. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    510
  5. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    There used to be a humanoid mesh-cutting dismemberment tool in the store that might have been usable with UMA, but I can't find it any more, so it was probably deprecated. I know it's not helpful to bring that up if it is no longer available, but maybe there is something else in the store I haven't found yet, or a thread in the forum that talks about how to do it yourself.

    UPDATE: After writing this, I remembered another character dismemberment tool, and in looking for that one, I found a second one. :)

    If you use any of these with UMA, please report back. It would be good to add experience with such to the collective consciousness.

    https://www.assetstore.unity3d.com/en/?stay#!/content/73236
    https://www.assetstore.unity3d.com/en/?stay#!/content/102813

    UPDATE2: After looking into these plugins a bit further, it looks like they may be converting the skinned meshes to regular meshes before doing the slicing. So this may not work for your purposes.
     
    Last edited: Sep 4, 2018
  6. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
  7. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Another little video for you:
     
    Mark_01, hopeful, neoshaman and 3 others like this.
  8. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I see that when a DynamicCharacterAvatar is instantiated at run-time that a Rigidbody and Capsule collider is added to them. Is there a way to prevent it from doing this? I'm using in conjunction with a character controller that has it's own rigidbody and capsule collider and they are interfering with each other.
     
  9. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Capsule collider is a recipe on the avatar. Inspect the avatar, you should see it in the inspector window. (In the additional recipes section. These are usually the recipes that adds stuff at runtime, like collider or physics etc.)

    If I remember right, unlike collider, rigid body is added to the avatar at edit time so you should also see the rigid body component in the inspector and remove it.
     
    PeppersFuego likes this.
  10. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Those are added by a utility recipe on the prefab named "CapsuleColliderRecipe". You can remove that from the "Additional Utilitiy Recipes".
     
    magique likes this.
  11. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Thank you. I just found that the moment you posted. It works now. Awesome.
     
    umutozkan likes this.
  12. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    Anyone any idea why when I use my own shader (for testing purposes, a perfect copy of the standard shader downloaded from Unity source), the render-texture that UMA generates is not full size, and has black gutters top and right, so of course doesn't match with the model.

    I've tried using the inbuilt standard shader and it works perfectly. I'm also using a perfect copy of the standard shader from 2018.2.4f1 as downloaded.

    Image2.jpg
     
  13. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    I'm not sure how a shader could do that. Or why it has any affect on the atlas texture, because that is built using a set of shaders that are specifically made to be texture combiners (you can see them on the "Texturemerge" prefab).

    However, that is a rather oddball size (1280x1280). My guess is the actual texture is 1024x1024, and the gutters are the remaining 256.

    Have you changed any properties on the generator? have you tried setting your atlas texture size to a pow2 texture size? (1024, 2048, 4096)?


     
    Last edited: Sep 5, 2018
    LukeDawn and hopeful like this.
  14. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197
    Hello

    Can anyone help this problem after i imported UMA

    Unity 2017.1.1f
    Newest UMA direct download in unity

    Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBase.cs(224,24): error CS0029: Cannot implicitly convert type `Avatar' to `UnityEngine.Avatar'

    Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBase.cs(227,24): error CS0029: Cannot implicitly convert type `Avatar' to `UnityEngine.Avatar'

    Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBase.cs(268,31): error CS0029: Cannot implicitly convert type `UnityEngine.Avatar' to `Avatar'

    Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBase.cs(280,31): error CS0029: Cannot implicitly convert type `UnityEngine.Avatar' to `Avatar'



    I tried to fix but not work :(


    Can anyone help thanks
     
  15. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    UMA has been tested on 2017 and 2018, without issue on the most common platforms.
    There is an internal unity class named "avatar" which UMA uses. My guess is that you have some script in your application that has created its own Avatar class that is not using a namespace, and that is confusing the compiler.

    If that is not it, then we need more information about what platform you are targrtting.

     
  16. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197

    The Project is empty only imported UMA :/
     
  17. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    [Editing my reply]
    Thanks to your response, I did check the generator, and found a typo - the atlas size had been set to 40960 instead of 4096. This is what caused the error (and 2 days of hair loss). Note to anyone else suffering this issue. It's as simple as a typo.
     
    Last edited: Sep 6, 2018
  18. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    It would be helpful if you could create a completely new project (not a re-used one) and install a fresh version of UMA. See if that works. If not, I think they'll need your Unity version, UMA version, the platform you are building for, and possibly more detailed info.
     
  19. Imaginalex

    Imaginalex

    Joined:
    Jan 29, 2018
    Posts:
    19
    I wish i knew how to use this with my own character 3d models and not pre established / premade makehuman models... Can't seem to find tutorials helping with full creation, A to Z when you have your very own modeled characters...
     
  20. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Your wish is granted - SecretAnorak has created a set of tutorial videos that show how to setup and use your own characters. He uses Fuse for his sample:

     
    Mark_01, LukeDawn and Imaginalex like this.
  21. Imaginalex

    Imaginalex

    Joined:
    Jan 29, 2018
    Posts:
    19
    Thank you i will try to follow this even tho i'm not very familliar with Blender (allways used 3ds max), i might give it a try.
     
  22. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Blender 2.79 is much easier to use than earlier versions, I think you will like it. There is a 3dsmax input configuration, to make it easier to adjust. As well, you can change the way it orbits, and which button is the select button. If you spend a few minutes in the settings it will be way more user friendly. 2.8 is an improvement over Max (in my opinion), but it's also only in Alpha.
     
    Imaginalex likes this.
  23. Imaginalex

    Imaginalex

    Joined:
    Jan 29, 2018
    Posts:
    19
    I kind of read about some facilities or easyness of use towards 3ds max users in Blender in some ways or another somewhere on the internet, and yeah navigation is a bit confusing in Blender. But what worries me the most is the bones and weight / skin system, i allways used 3ds max bones / biped and influences over vertexes / paint and all, i tried Blender on and off several times and kind of get destabilized when it comes to applying and finding where is a tool i need and how to achieve this, or that under Blender when i find my way by habit under 3dmax, it's kind of frustrating when you have a workflow that goes exactly the way you want and all of a sudden you get confused, or frustrated because you can't achieve the same with the same ease, or just being unable to find the exact tool, especially when you use programs in a foreign langage, you struggle to find the tools or the subsidiary / replacing tools that used to be this in 3d max, ,and does this in Blender but, even the way it works sometimes is almost completely different, or isn't applyed the same way.

    Well, it looks like complaining but i'm just trying to explain what happens sometimes ^^

    Thank you very much i'm downloading Blender.
     
  24. SickaGames1

    SickaGames1

    Joined:
    Jan 15, 2018
    Posts:
    1,269
    I downloaded UMA with the hopes of creating prefab characters for a game that does not use UMA. Is there a way to export characters from UMA to a prefab that retains the entire build from UMA?
     
  25. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Rigging is actually something I found easier in Blender. The skeleton is called an "armature", and vertices are weighted to bones by adding them to a vertex group that is named the same as the bone, There's also weight painting, etc. like you would expect. Plus, the handy ability to copy weights from one mesh to another using various algorithms to match. Once you get the hang of it, it makes it really easy to rig clothes. The process is: Load the rigged character, Use whatever you want to adjust the clothes to the character. Copy weights from the character to the mesh. Preview the weighting and adjust if needed. Export. Takes a few minutes only.

     
    Imaginalex likes this.
  26. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
  27. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    I just tested it without issue. That other Avatar definition has to be coming from somewhere. If you reused a project, you might have issues with your library.
     
  28. Imaginalex

    Imaginalex

    Joined:
    Jan 29, 2018
    Posts:
    19
    Going to try the armature system on this character i almost finished :

    captika1.JPG captika2.JPG captika3.JPG

    I need him to have some customized parts of armor, clothes and headgear / hairs too, but need to finish it down the pants to his feets ^^
     
    Jaimi and kenamis like this.
  29. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    510
    Is it possible to set DNA before a character is built for the 1st time?

    I've been trying to use the below code to set the DNA while its still being built, but 95% of the time, umaDna is an empty array.

    Note: inGameAvatar is being populated by GetComponent in a Manager script I have;

    Code (CSharp):
    1. DynamicCharacterAvatar inGameAvatar;
    2. UMADnaBase[] umaDna = inGameAvatar.GetAllDNA();

    Also, is it possible to change the x & y coordinates of overlays for slots that have already been applied to a character at runtime?
     
    Last edited: Sep 11, 2018
  30. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    I tend to avoid trying to access an UMA before first generation to avoid all manner of misery. You can take more control however by generating a character in hidden mode (look in the advanced tab of the avatar). This way you can fully generate your UMA but only physically display it via code when you are good and ready.
     
    Mark_01 and hopeful like this.
  31. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    For the DNA: Yes - but only as a "character", as a string to preload, or as part of the base race.

    For the overlay: should be able to, as that is stored in the recipe. but you would have to go into the recipe and do it, then make it generate. The problem is that it would be revert after rebuilding the DCA, so you would either have to avoid that or manage it.
     
    Last edited: Sep 11, 2018
    hopeful likes this.
  32. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    510
    I’ve been trying to move the overlay in code, and I can see that the x and y have values have changed, but I can’t see them on the character and if I rebuild, the values revert back.

    So this doesn’t seem to work for me....is there a way to only have the textures updated without a DCA rebuild?
     
  33. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Yeah - you can call ForceUpdate to tell the UMA to rebuild itself from it's current recipe. It has 3 parms (DnaDirty, TextureDirty, MeshDirty) - so you will need to pass (false,true,false) to get it to regenerate it's texture from the recipe.
     
    hopeful likes this.
  34. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197
    is there a way to see character in editor with texture hair cloths etc not in gery only like at morph3d ?

    because at big maps it takes long to get in runtime mode to see characters and change it.

    and where can get more cloths hairs shoes etc because not much oncluded no normal shoes :( ??


    regarda
     
  35. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    There currently isn't a way to see characters at edit time. However, they do generate at runtime within 1 frame if "fast" mode is on and you don't convert render textures. So make sure that on your generator you don't have convert render textures enabled, and you do have "fast" generation turned on. if you used the prefab from the "Getting Started" folder, this should be the case.

    We have been talking about adding an "edit-time generate" feature for awhile. It should even be easier now than it was before. But it's still a big project, so likely won't be available in the short term.

    There's a bunch of assets on the asset store for UMA. In addition, Arteria3d also sells assets on their store.
    For hair, there's a few packs available. if you know how to use Blender, you can take your existing Morph3D hair and fit it to UMA, it takes only a few minutes to rig it to the head/ears, and create slots out of it. SecretAnorak has videos that show how to do this on his channel.
     
    Last edited: Sep 13, 2018
    umutozkan likes this.
  36. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    Possibly you can develop a workflow with a simple scene that you use to create and check characters? That way you don't need to do it in the large scene.
     
    Jaimi likes this.
  37. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    Has anyone got or found a chart for UMA scaling for different aged characters, and will UMA even cope with this?
     
  38. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    The existing characters can be "aged" with textures and DNA. You can get generally good results for ages older than 10- for female characters. With male characters, you can likely go down to like 5 years old. The very young and very old and infirm however would require some additional work (new age appropriate textures, new bindposes for stooping, new animations for walking, etc).
     
    hopeful likes this.
  39. Gervais60

    Gervais60

    Joined:
    Apr 7, 2016
    Posts:
    37
    Hi Jaimi

    I am getting the following error in the UNITY 2018.3b
    Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAMeshData.cs(618,34): error CS0117: 'PrefabUtility' does not contain a definition for 'IsComponentAddedToPrefabInstance'

    if you cold suggest a workaround for the error it would be appreciated.
    if you can't then I hope it could be useful for you to prepare the next update for this

    I did get this after converting a project from 2018.2.8f whish was working correctly
    using UMA last official version 2.7.0.

    I am in no rush just testing what is broken in new version to see what need to be fix in my project

    Thanks
     
  40. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    It looks like it was renamed to "IsAddedComponentOverride". You want to give that a try?
     
    Batataglins likes this.
  41. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Looks like they removed that function. But it was only used to generate an error log. You can remove this entire chunk of code without causing any problems in UMAMeshData.cs:

    Code (CSharp):
    1.             if (UnityEditor.PrefabUtility.IsComponentAddedToPrefabInstance(renderer))
    2.             {
    3.                 if (Debug.isDebugBuild)
    4.                     Debug.LogError("Cannot apply changes to prefab!");
    5.             }
     
    Dhoren, Slowload, boysenberry and 2 others like this.
  42. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Anybody knows if UMA Avatar can work in VR?

    For example with VRTK (Virtual Reality Tool Kit), HTC Vive, Oculus Rift etc.
     
  43. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Sure - UMA creates optimized meshes at runtime, but in the end, they are standard meshes and can be used anywhere.
     
  44. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Thanks for the comment, seems if i move the game object corresponding to the UMA hand position, to the VR hand position, UMA just makes a wavy line from the UMA elbow to the hand instead of making the arm move.

    For example in the picture, while the game is running, i search for the hand game object as shown in the pic, if i drag that to a new position, it just makes a wavy line instead of moving the whole hand.

    Can you explain how it works and how to move the limbs so that i can connect them to the VR controller positions?
     
    Last edited: Sep 17, 2018
  45. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    What you are trying to do has really has nothing to do with UMA - at that point it is just a rigged model. Your issue looks like a problem with whatever you are using to move the bones. What IK solution are you using, or have you created your own? UMA works well with AnyIK and with FinalIK.


     
  46. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Yes, you are correct, im trying to use free "Custom IK". Seems it requires you to place their IK script on a bone above the root bone you are trying to control. To control the arm and hand i guess that means the shoulder bone, but its just oscillating the arm all over the place, something wrong somewhere.
     
    Last edited: Sep 17, 2018
  47. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Any ideas why "Unity Custom IK" wont work with UMA? It seems it very simple and works with its own demo, but when applied to UMA, (for example an arm) it doesnt work, the arm just moves madly all over the place.
     
  48. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Sometimes free components are worth every penny you pay for them. But before giving up on it and buying one of the aforementioned solutions, i recommend trying to use the Bone Builder to pregenerate the bones, and applying your Custom IK script at design time.

    if you've already gone that route, I don't have a clue. But a UMA is just a rigged model at that point, maybe the Custom IK people would know more? Some setup issue with it maybe?

    Another thing that might be helpful is if you try the "Female_Unified" fbx model. This contains the full model of the female example character. It would be interesting to see if it behaves differently.

     
  49. IbtesamSadiq

    IbtesamSadiq

    Joined:
    Aug 24, 2017
    Posts:
    4
    I am getting error when drop base overlay in WardrobeRecipe slot and error is "you are pushing more guiclips than you are popping uma unity"
     
  50. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Yeah - that's a bug. You'll need to drop it on the "add overlay" edit box. It works if you drop a slot and overlay together. I'll try to fix it.