Search Unity

  1. If you have experience with import & exporting custom (.unitypackage) packages, please help complete a survey (open until May 15, 2024).
    Dismiss Notice
  2. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview 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. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    Yes - but you end up having to add a bone (or bones) and make it a Skinned Mesh. There is a car example included in the download. This also opens up some neat customization options as well (blade size/width, curves, etc).
     
  2. WsdServers

    WsdServers

    Joined:
    Jan 28, 2017
    Posts:
    15
    Thanks for your reply :) I forgot to mention, when I try instantiating, I get a weird doubled result, with 2 umarenderes on the same gameobject, and it looks like this (the one in t-pose is my correct recipe, the standing one is the prefab itself) :

    upload_2019-6-11_16-47-15.png
     
  3. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    I'm not sure what is going on with your prefab - my guess is you saved it at runtime with a modified character on it?

    What I mean is to instantiate the default "UMADynamicCharacterAvatar" prefab that is in the Getting Started folder. I just did this in the sample code, and it worked fine. The SampleCode.cs has a section of code that does exactly this "DynamicCreateClick".


     
  4. tbn

    tbn

    Joined:
    Oct 11, 2014
    Posts:
    3

    Thanks, this answers my main question (BonePoseDNAConverter vs. SkeletonDNAConverter), as for the the secondary part, I'll either dig through the code or just experiment to figure it out.
     
  5. ZoeZoePixel

    ZoeZoePixel

    Joined:
    Feb 4, 2015
    Posts:
    16
  6. TetraCreations

    TetraCreations

    Joined:
    Apr 20, 2017
    Posts:
    9
    First of all, thank you for taking your time to reply.

    I just tested on a new build now I've got this error instead, I do not have enough time to look any further today.

    Code (CSharp):
    1.  
    2. Exception in UMAAssetIndexer.AddAssetItem: System.ArgumentNullException: Argument cannot be null.
    3. Parameter name: key
    4.   at System.Collections.Generic.Dictionary`2[System.Type,System.Type].get_Item (System.Type key) [0x00000] in <filename unknown>:0
    5.   at UMA.UMAAssetIndexer.AddAssetItem (UMA.AssetItem ai, Boolean SkipBundleCheck) [0x00000] in <filename unknown>:0
    Also I should have mentioned that I load UMA in a main menu scene, i have a character editor and then i load the game scene which also load UMA, the errors seems to appear only in the first scene (main menu), I was not aware of this because I was working in the editor and didn't have any errors.

    I will try find what could be the issue tomorrow.


     
  7. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    Are you doing something in a static global function, or something possibly before the AssetIndexer (global library) is fully loaded, perhaps in a thread?

    In theory, When the index is first accessed, it loads it from the resources and deserializes it. Then a callback is executed that loads the various types into the lookup tables, and then it sets up the lookup dictionaries for the various serialized items (in UpdateSerializedDictionaryItems() )

    Its at that point, it will add the serialized AssetItems to the lookup tables.

    You might need to put in some debugging messages into UpdateSerializedDictionaryItems, showing what types it has setup, and what items it is adding. Something is off.

    Hopefully it's not another "Sometimes we refer to these items as x and sometimes as y" which caused all kinds of issues with the AnimatorControllers.

     
  8. WsdServers

    WsdServers

    Joined:
    Jan 28, 2017
    Posts:
    15
    Thank you for the help, I instantiated the default avatar, it turned out, that I had to turn of the preset avatarrace to none, to avoid duplicated avatars showing up.
     
  9. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    If you only edit colors, you have to save them with the button in the shared colors editor. I believe it says "save collection". I will make this better in the next point release.

     
    hopeful likes this.
  10. DavidBVal

    DavidBVal

    Joined:
    Mar 13, 2017
    Posts:
    207
    I am getting this error:

    When I do this:

    Code (CSharp):
    1. Dictionary<string, DnaSetter> dna = avatar.GetDNA();
    2. dna["Height"].Set(.25f);
    The avatar is correctly loaded, a few lines above I am setting slots, hair color, and it works fine.
     
  11. DavidBVal

    DavidBVal

    Joined:
    Mar 13, 2017
    Posts:
    207
    OK, found the issue, apparently key name is "height", case sensitive, "Height" doesn't work. Worth noting, since I've found some code examples in this thread using uppercase H.
     
  12. AndroYD

    AndroYD

    Joined:
    Nov 3, 2014
    Posts:
    28
    I've been pushing UMA limits to see how far I could create different body types, but out-of-the-box it doesn't seem capable to completely deviate from the typical "handsome" male/female features (ie. non-muscular, anorexic, very fat, babies, children, eldery, etc.), or I didn't look deep enough?
    I've been moving the sliders for quite a while and I couldn't for the life of me create something that didn't look ridicolous when I try to create ANY body type that exists in the human spectrum that isn't the "handsome" types, the learning curve is pretty steep and I'd like to avoid learning to use something I won't use anyway, so I'd like to know if it can do it out of the box without requiring to create a custom set, thanks!
     
  13. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    This can all be done by creating the appropriate DNA. UMA does not ship with DNA for every possible combination that people might want, at least not yet. :) All DNA Converters can be edited in the inspector, but this will require for you to learn how to do it using the tutorials.
     
  14. RadioactiveBullfrog

    RadioactiveBullfrog

    Joined:
    Jul 8, 2017
    Posts:
    55
    So I just downloaded 2019.1.6 and reinstalled UMA into my project to correct all of the errors, however I am still getting the following errors…

    Assets/UMA/Core/Editor/Extensions/Timeline/UmaColorTrackEditor.cs(7,26): error CS0012: The type `UnityEngine.Timeline.TrackAsset' is defined in an assembly that is not referenced. Consider adding a reference to assembly `Unity.Timeline, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

    Assets/UMA/Core/Editor/Extensions/Timeline/UmaRaceClipEditor.cs(7,26): error CS0012: The type `UnityEngine.Timeline.ITimelineClipAsset' is defined in an assembly that is not referenced. Consider adding a reference to assembly `Unity.Timeline, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'


    Can you please tell me how to correct them?
     
  15. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    Redownload UMA from the asset store to get the version for 2019+

     
  16. RadioactiveBullfrog

    RadioactiveBullfrog

    Joined:
    Jul 8, 2017
    Posts:
    55
    I did that and this was the result
     
  17. RadioactiveBullfrog

    RadioactiveBullfrog

    Joined:
    Jul 8, 2017
    Posts:
    55
    I just did it again with a fresh download and got the same result
     
  18. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    There is a specific download for 2019+ that contains an updated asmdef. Unity should give you that version if you specifically download UMA with 2019. My guess is there is some bug in Unity not selecting the correct version..

    To manually fix this, edit the uma_core asmdef in the core folder and add a reference to timeline.
     
  19. RadioactiveBullfrog

    RadioactiveBullfrog

    Joined:
    Jul 8, 2017
    Posts:
    55
    I could be wrong, but it appears to already have a reference to timeline…

    {
    "name": "UMA_Core",
    "references": [
    "Unity.Timeline"
    ],
    "optionalUnityReferences": [],
    "includePlatforms": [],
    "excludePlatforms": [],
    "allowUnsafeCode": false,
    "overrideReferences": false,
    "precompiledReferences": [],
    "autoReferenced": true,
    "defineConstraints": [],
    "versionDefines": []
    }
     
  20. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    As it should if you downloaded it with 2019. So perhaps you don't have the timeline package installed? Or maybe it's an old error? I m not sure.

     
  21. RadioactiveBullfrog

    RadioactiveBullfrog

    Joined:
    Jul 8, 2017
    Posts:
    55
  22. TetraCreations

    TetraCreations

    Joined:
    Apr 20, 2017
    Posts:
    9
    I fixed it, I had UnityEditor.DefaultAsset in "Additional Indexed types", so i removed it. I added few debug.log in UpdateSerializedDictionaryItems() and AssetIndexer, and everything seems fine. I don't know why i didn't saw it before. Thank you for your help.

     
    Jaimi and hopeful like this.
  23. RadioactiveBullfrog

    RadioactiveBullfrog

    Joined:
    Jul 8, 2017
    Posts:
    55
    Are you able to offer any further advice or assistance with this issue? Or can you tell me of another support venue that I can try? I don't believe that this issue is unsolvable.
     
  24. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    957
    Have you tried creating a new project in Unity 2019.6 and then importing the UMA package to see if it still gives you the same errors?

    Sometimes you need to manually delete the .unitypackage file that Unity downloads from the asset store before it will actually download the correct version.
     
    RadioactiveBullfrog likes this.
  25. RadioactiveBullfrog

    RadioactiveBullfrog

    Joined:
    Jul 8, 2017
    Posts:
    55
    I have manually deleted the package a couple of times to force a new download and gotten the same result. I will try a new project and report back. Thank you.
     
  26. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    The error you are reporting is a direct result of it not finding the timeline package. If you look at the uma_core.asmdef, it should look like this:

    image.png

    Changing this in the inspector should cause Unity to rebuild the solution and recompile, getting rid of the errors. If that is not happening, then there is something else wrong in your project that needs fixed so the process can go all the way through.
     
  27. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    957
    There was at least one time where I imported an asset that required a package reference that I didn't have and it wouldn't compile -- but Package Manager option was not even showing up on the menu, so I couldn't even get the package that way.

    I think that was right after I upgraded a project from 2018.3 to a 2019.1 version. I solved it by reverting all changes and making sure the required packages were there before trying to import anything. Always use source control. :)
     
  28. Nihil688

    Nihil688

    Joined:
    Mar 12, 2013
    Posts:
    503
    Does anyone know whether any games been released that have been made with UMA?
     
  29. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    Yes, several of them. Blade and sorcery, The Realms of Arkania remakes, etc.Those are just some of the obvious ones - you don't have to use the included meshes, others have made their own.
     
  30. Nihil688

    Nihil688

    Joined:
    Mar 12, 2013
    Posts:
    503
    Of course, we're about to develop a game that could use that so I was wondering whether UMA is viable or whether we should make our own tech from scratch. I'm not an artist so I also wonder how long our art team will take to learn how to do this in 3ds max.
     
  31. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    Some of SecretAnorak's earlier videos use 3dsmax. His later videos use Blender, but the concepts still apply (rigging, transferring weights, etc). If you're creating your own models, then you'll have to do 99% of the work anyway that UMA needs. The main thing in UMA that is different is creating additional "adjustment" bones, and rigging to those bones instead of your standard skeleton bones. This is just so you can deform the areas without it causing issues all over the place. After that it's creating slots/overlays/recipes which are just a way of describing mesh parts, material parts, and combinations of those.
     
  32. Nihil688

    Nihil688

    Joined:
    Mar 12, 2013
    Posts:
    503
    That's pretty helpful! Thanks! At the moment the art team is only worried that converting one of biceps into DNA bones is a lot of work but I guess it's the pros and cons of this system
     
  33. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    It's easier in the long run, because then you don't have to create a ton of blendshapes (Morph Targets) on everything that you put on the character. So it's a little tougher up front to setup the additional bones, but then everything after that is much easier.
     
  34. Ne0mega

    Ne0mega

    Joined:
    Feb 18, 2018
    Posts:
    756
    Is there a way to swap Overlays/build wardrobe recipes via code?
     
    Last edited: Jun 18, 2019
  35. Skyunarankage

    Skyunarankage

    Joined:
    Jun 2, 2017
    Posts:
    10
    The Root -> Global-> Position.. makes it really hard to get working with other assets, such as puppetmaster from rootmotion.

    Is there a way to not use root global positon or zero out their rotations?
     
  36. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    The UMA 1.X functions to directly access the umadata.umarecipe and modify it are still there. The tradeoff is that you lose all of the base race + wardrobe functionality if you do that (changes to the umarecipe will not be saved when the DCA is rebuilt). So basically, you would have to rewrite that portion of the system.

    Depending on what you want to do, it might be easier to just modify recipe colors to fade in/out different overlays in an existing recipe. Really need to know more about what you are doing to give better advice.
     
  37. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    Not currently, but we have been talking about rewriting that portion. It won't be for awhile. I haven't tested Puppet Master, but I have used Final IK by the same author. It's all much easier if you use the Bone Builder to pregenerate the skeleton.
    Not sure what Puppetmaster does, but there are physics/ragdoll solutions built into UMA.
     
  38. Skyunarankage

    Skyunarankage

    Joined:
    Jun 2, 2017
    Posts:
    10
    Alright thanks for telling me. I have been working on it all day. Could you take a look at that asset ? It titallt glitches with Uma :(
     
  39. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    I'm sorry - I don't own that one. Have you seen these posts?

    puppetmaster - UMA bridge:
    PuppetMaster - Advanced Character Physics Tool [RELEASED]

    User using Final IK + Puppetmaster:

    UMA - Unity Multipurpose Avatar on the Asset Store!

    There's a few others with people using both Final IK and Puppetmaster, but nothing that specifically says "Here's how to do it", besides a general "use the bone builder"
     
  40. Skyunarankage

    Skyunarankage

    Joined:
    Jun 2, 2017
    Posts:
    10
    The PuppetMaster UMA bridge is pretty outdated sadly :( Doesn't even work with legacy UMA sadly. I oddly don't have issues with Final IK. only PuppetMaster :/
     
  41. pegassy

    pegassy

    Joined:
    Sep 28, 2017
    Posts:
    49
    I am getting some weird texture issues when I build my game. There aren't any (or almost any) issues with texture within the game. I have tried both basic, DCS, and high poly characters. Some issues are with UMA skin, and some with assets from Arteria3d, but I wanted to check with UMA side first.

    I am using Unity 2019.1.0f2, and I have the latest UMA. The rendering path is deferred. I did not change any of the original shaders. Any idea what may be causing this in the built game?

    Below are some screenshots of built vs editor images: Uma Issues.jpg
     
  42. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    I haven't used for a little while, but you just need to change the class names in the script from the old avatar class to the new.
     
    hopeful likes this.
  43. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,695
    If that works, that's the kind of thing that could be a good sticky in the UMA wiki.
     
  44. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    My first guess would be some issue with the driver causing something in the RenderTexture to break. It's also somewhat possible that you have overbooked texture memory. You might try the following:

    1. Updating to the latest release version of Unity for the specific unity point release you are using, just in case it's some strange case in their code.
    2. Enabling "development build" in the build settings, so you can see if there are any errors generated during the game.
    3. Go into the UMAGenerator, and decrease the Atlas Resolution and increase the "Initial Scale Factor". Make sure that "Fit Atlas" and "Convert Mipmaps" is checked. if it works after this, that will tell you it's texture RAM related.

    You can also turn on "Convert Render Textures" (which is off by default). This is slower, but it will turn your render textures (which live in video memory) into regular textures that can be loaded and unloaded. You might also try turning on Texture Streaming in your Quality settings.

    There are some things to try in Player Settings also. If you're using an experimental graphics API, you might try changing that (to OpenGL core, for example), to see if it is related to that.
     
    Last edited: Jun 19, 2019
    hopeful likes this.
  45. pegassy

    pegassy

    Joined:
    Sep 28, 2017
    Posts:
    49
    Thank you for all the ideas. I got quite a bit of area to explore. I will try to report what I come up with in case someone else encounters anything similar.
     
  46. Commandermartin

    Commandermartin

    Joined:
    Nov 8, 2014
    Posts:
    29
    What is the correct way to include an UMA model in a build of a game? I set one up as secretanorak did in his tutorial scene, but the build version of the game is saying 'Umaresourcenotfoundexception dSlotLibrary (211). Do I need to include the UMA models in a resources folder or something like that? Just building the game with the uma in it did not seem to work.
     
  47. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    All the UMA parts need to be referenced in either a scene library, or the Global Library, or in Asset Bundles.

    Typically, things are added to the global library. The global library resides in a resources folder (it's actually named "AssetIndexer"). Adding something to the global library adds a reference to that file, so it forces it to be included in the build. Having a ton of references to objects in it can also cause it to be slow during development (as Unity loads/unloads). So there is an option to remove build references.

    So my guess is you either have a bad global library (maybe you reimported and overwrote it or something). Or you don't have build references.
     
  48. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,209
    You can edit the template material that the UMAMaterial references and edit the cutout value. This will then be applied to every generated material.
    ( Only warning is that cutout is typically very slow on mobile if that is what you are targetting. )

    Note: UMA will generate a material and a texture per avatar. There are ways to make this faster/better (like with LOD), but you still end up with at least 1 draw call per avatar.
     
  49. pegassy

    pegassy

    Joined:
    Sep 28, 2017
    Posts:
    49
    So I did try most of the possible areas you suggested, with a build for each change. I created a smaller test scene for faster testing where I could still observe the texture anomalies. I updated unity to 2019.1.7f1, tested smaller atlas resolutions and larger initial scale factor, with fit atlas and convert mipmaps boxes checked. I also built with convert render textures and also texture streaming. These did not change the anomalies, where there are still weird colorations on various parts (but always the same parts) of the textures. For player character it is always the face and certain parts of the clothes, but for another npc character with same UMA type (simple, DCS, or high poly) the face is not distorted.

    Then I built with profiler support. Below are the four uma related processes running, and the uma related console warnings:

    upload_2019-6-19_11-40-4.png

    upload_2019-6-19_11-40-28.png

    I could not find the location for experimental graphics API in player settings, but I am pretty sure I did not change any of those settings.

    Next I will try to build UMA on a clean project, and see if the build works fine there. I am not sure where else to look at.
     
  50. Commandermartin

    Commandermartin

    Joined:
    Nov 8, 2014
    Posts:
    29
    Well I dont have a resources folder right now, would adding on and having the UMA folders inside it solve my issue?