Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice
  3. 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,243
    There should be a link to the discord at the bottom of the documentation. But using UMA with photon will be a bit more complicated as you have to communicate the avatar changes across the network.
     
  2. iohouse

    iohouse

    Joined:
    Jul 15, 2014
    Posts:
    10
    The project I'm working on uses a remote Addressables catalog (meaning the source of the assets is a different Unity project), and I'm adding a UMA character to this project. The UMA character and the wardrobe items are preloaded from the remote asset bundle, and the assets are indexed (added to the Global Library). When the UMA character is spawned into the game, it builds the UMA character with the wardrobe recipes applied just fine in the Editor, but in a standalone player, the UMA character builds without the wardrobe recipes applied (leaving a naked character).

    In the Player.log there seems to be a related NullReferenceException error (again, not in the Editor) that I'm having difficulty determining where it's coming from:
    Code (CSharp):
    1. NullReferenceException
    2.   at (wrapper managed-to-native) UnityEngine.Component.get_gameObject(UnityEngine.Component)
    3.   at UMA.CharacterSystem.DynamicCharacterAvatar.SetExpressionSet (System.Boolean addExressionPlayer) [0x00000] in <4a89c604d2fd4cfc89d9adc4efaca314>:0
    4.   at UMA.CharacterSystem.DynamicCharacterAvatar.LoadCharacter (UMA.UMARecipeBase umaRecipe, System.Collections.Generic.List`1[T] Replaces, System.Collections.Generic.List`1[T] umaAdditionalSerializedRecipes, UMA.UMARecipeBase[] AdditionalRecipes, System.Collections.Generic.Dictionary`2[TKey,TValue] MeshHideDictionary, System.Collections.Generic.List`1[T] hiddenSlots, System.Collections.Generic.List`1[T] HideTags, UMA.UMADnaBase[] CurrentDNA, System.Boolean restoreDNA, System.Boolean skipBundleCheck) [0x00077] in <4a89c604d2fd4cfc89d9adc4efaca314>:0
    5.   at UMA.CharacterSystem.DynamicCharacterAvatar.LoadWhenReady (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1[TObject] Op) [0x00019] in <4a89c604d2fd4cfc89d9adc4efaca314>:0

    I should note, too, that I'm unsure of the proper setup I should be using for the UMA character Addressables dependencies in the "game client" Unity project. I currently have core assets in the Addressables groups of both projects, but the wardrobe recipes, overlays, and slots for customizing the character are coming from the remote assets Unity project. Loading the assets with dependencies may be duplicating some of the base UMA character assets, but that - I believe - is more a point of optimization than anything else. Some insight here would be helpful as well. Thanks!
     
  3. LootlabGames

    LootlabGames

    Joined:
    Nov 21, 2014
    Posts:
    351
    For some reason I can't get the predefinedDNA to work on building anymore.
    This code used to work, but at some point it must have stop working for me.

    Code (CSharp):
    1. avatar.predefinedDNA = predefinedDNA;
    2. avatar.BuildCharacter();
    I did step through the code and it is getting to ApplyPredefinedDNA and modifying the DNA values.

    But when the UMA loads all the DNA is at 0.5
    upload_2022-10-28_8-31-8.png

    Is there a new way or maybe there is a setting preventing it from happening?
     
  4. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    Have you tried passing "false" to BuildCharacter? It's probably restoring the old DNA.
     
  5. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    The expression player is blowing up - probably trying to access the bones before they exist. If the player component is included on the game object, then the bones have to already exist, and they are probably being cleaned up and regenerated. So, try removing the component, and adding the expression player slot to the character so UMA will manage the creation and destruction of the component.

    If you don't have an Expression Player on your prefab, and are already using the slot/recipe for the expression player, then it's probably blowing up trying to read the expression set and/or access the bones.
     
  6. LootlabGames

    LootlabGames

    Joined:
    Nov 21, 2014
    Posts:
    351
    For some reason the smoothness on my materials keep changing to 1 at runtime.

    These are the materials in project folder.
    upload_2022-10-30_12-54-28.png

    These are the materials at runtime
    upload_2022-10-30_12-42-54.png

    upload_2022-10-30_12-43-38.png

    My characters look plastic, lol.
    Any idea how to fix this?
     
  7. HallowedTree

    HallowedTree

    Joined:
    Apr 5, 2021
    Posts:
    6
    Can anyone answer for me why setting the colour to an hdr color doesn't seem to work? I have set the render texture as HDR but still the glow isn't occurring. I have everything setup for HDR in HDRP, I can edit the hdr manually but for some reason the render texture doesn't seem to contain HDR data?
     
  8. LootlabGames

    LootlabGames

    Joined:
    Nov 21, 2014
    Posts:
    351
    So I was never able to fix this.
    But what I did was delete UMA and remove addressables.
    Then I imported it again(from old backup) and build the addressables and it seems to have fixed it.
    Not sure what the issue was but if I figure it out I will post it.
     
  9. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    In your addressables groups, did you have the playmode script set to "Use existing build"? If so, it can load stuff out of the asset bundles, and ignore local changes.
    If so, the fix is to either rebuild the bundles, or to change the Playmode script to "Use asset database"
     
  10. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    What glow are you talking about, and where are you expecting to see it?
     
  11. neoangelique

    neoangelique

    Joined:
    Nov 19, 2014
    Posts:
    31
    I'm experiencing this issue, how do I access UMA preferences? Is that a script because I can't find it in the dropdown menus. I'm using UMA2.
     
  12. neoangelique

    neoangelique

    Joined:
    Nov 19, 2014
    Posts:
    31
    upload_2022-11-9_19-39-48.png
    Ok now I'm experiencing this issue where I switch to my custom race, there's no errors, but my character does not show up. I've set rebuild to true in dynamic character script. The rest of the default races switches in with no issues, its only my custom character that has this issue.

    Here's my Race Data:
    upload_2022-11-9_19-47-4.png

    Here's my Base Recipe Data:
    upload_2022-11-9_19-46-6.png

    Advice appreciated.
     
  13. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    It's in the Unity preferences - Edit/Preferences/UMA
     
  14. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    Well, it *looks* like it's generated, as there is a submesh there, and no errors. And since there is no alpha, I'm assuming that it's either way too large or way to small. try selecting the SkinnedMeshRenderer game object, and hitting "f" to focus it. You can also double-click the mesh object in the inspector (on the SkinnedMeshRenderer component) to see the mesh. That should help diagnose where the issue is,
     
    neoangelique likes this.
  15. CyrilGendrot

    CyrilGendrot

    Unity Technologies

    Joined:
    Dec 17, 2021
    Posts:
    4
    Hello, I'm finally starting to build a character on UMA after days of wandering in this vast world. I find myself confronted with a mistake that keeps coming back. I don't understand it. Does anyone have an idea?

    upload_2022-11-10_15-9-16.png
     
  16. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    I'm assuming that you made your own DNA converter controller, by copying an existing one? If so, make sure it has it's own "DynamicUMADNAAsset", and that the type hash on it is unique (you can edit it in the inspector).
     
    CyrilGendrot likes this.
  17. CyrilGendrot

    CyrilGendrot

    Unity Technologies

    Joined:
    Dec 17, 2021
    Posts:
    4
    No the DynamicDNAConverterController was created from scratch with UMA>DNA. I tried to correct the DNA type Hash from DynamicUMADnaAsset but I still have the error, I do not understand
    upload_2022-11-16_17-17-24.png
     
  18. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    Some of this has been reworked, but this sounds like the DNA converter is being added twice.
    What version are you on? 2.12 call ClearDNAConverters() on line 195. 2.13a2 calls it on line 213?

    Anyway, ClearDNAConverters loops through the DNA Converters on the race. Are you sure you don't have your converter in there more than once?
     
    CyrilGendrot likes this.
  19. arteria

    arteria

    Joined:
    May 31, 2007
    Posts:
    2,191
    iohouse, Jaimi and AGregori like this.
  20. iohouse

    iohouse

    Joined:
    Jul 15, 2014
    Posts:
    10
    I'm reposting this here as originally posted in the Secret Anorack's Hideout #addressables Discord server - hoping with a different set of eyes on it someone has some experience that could share some insights. Thanks!

    ====

    I'm looking to see if anyone has information concerning this issue using a remote Addressables setup (meaning, the game's assets are not in the same Unity project that builds the game).

    When setting a wardrobe recipe from code using DynamicCharacterAvatar.SetSlot(recipe) it will intermittently result in a UMAResourceNotFoundException: UMAGlobalContext: Unable to find OverlayDataAsset: myrecipeitem_Overlay error being thrown. However, making another call to SetSlot() right afterwards usually works.

    The process I'm using looks like this... remote UMAWardrobeRecipe recipe assets are first preloaded (downloaded) via Addressables API (via DownloadDependenciesAsync) and then UMAAssetIndexer.LoadLabelList(labels) is used to add the recipe to the UMA Global Library prior to calling SetSlot(). This works, albeit with the intermittent issue, without specifically doing a "LoadLabelList" with the Slots and Overlays - trying to "LoadLabelList" on the Slots and Overlays after the Recipes fails consistently though with the same UMAResourceNotFoundException error.
     
  21. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    DownloadDependenciesAsync does not load the items. It only downloads them and then caches them in the local cache.

    LoadLabelList is asynchronous. It will return an AsyncOperationHandle<>. You need to defer building until the Completed event on the AsyncOperationHandle<> is fired. Something like this:
    Code (csharp):
    1.  
    2.                 var recipeOp = UMAAssetIndexer.Instance.LoadLabelList(labels, true); // Load the recipes!
    3.                 recipeOp.Completed += Objects_Loaded;
    4.  
    Code (csharp):
    1.  
    2.         private void Objects_Loaded(UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle<IList<Object>> obj)
    3.         {
    4.             Avatar.gameObject.SetActive(true); // or rebuild, etc
    5.         }
    6.  
     
    hopeful likes this.
  22. CyborgGames

    CyborgGames

    Joined:
    Mar 2, 2017
    Posts:
    15
    Please help. How to hide part of mesh if specific recipe of clothing is used.
    Needed a way to hide part of grid if a certain recipe for clothing is selected on another part of the body. For example: there is a tshirt that is poorly overlapped(PokeThrough) with one pants and well with others. Needed to hide the grid only for those pants that look bad with this tshirt. thx

    pic.JPG
     
  23. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    This is done with what is called a "Mesh Hide Asset". SecretAnorak covers this in his videos - Take a look at this one:
     
    CyborgGames likes this.
  24. CyborgGames

    CyborgGames

    Joined:
    Mar 2, 2017
    Posts:
    15
    Thankyou!
     
  25. angiemon

    angiemon

    Joined:
    Mar 26, 2018
    Posts:
    38
    All my UMAs have this weirdly crooked Joints at their belly/hip area. What gives?
    upload_2022-12-1_11-17-0.png
     
  26. Generalreb

    Generalreb

    Joined:
    Jun 2, 2021
    Posts:
    6
    Hello, I'm a newbie and receiving these errors. I thought it's something in the way I was duplicating recipes because I didn't see the errors happen at first but not sure if that can affect these GUI errors.

    TargetParameterCountException: Parameter count mismatch.
    System.Delegate.CreateDelegate (System.Type type, System.Object firstArgument, System.Reflection.MethodInfo method, System.Boolean throwOnBindFailure, System.Boolean allowClosed) (at <c2a97e0383e8404c9fc0ae19d58f57f1>:0)
    System.Delegate.CreateDelegate (System.Type type, System.Object firstArgument, System.Reflection.MethodInfo method) (at <c2a97e0383e8404c9fc0ae19d58f57f1>:0)
    UnityEditor.EditorWrapper.Init (UnityEngine.Object obj, UnityEditor.EditorFeatures requirements) (at <5f40cdb07bd44d76a23dad985a4ec283>:0)
    UnityEditor.EditorWrapper.Make (UnityEngine.Object obj, UnityEditor.EditorFeatures requirements) (at <5f40cdb07bd44d76a23dad985a4ec283>:0)

    And then this other Wrapper one

    Failed to dispose EditorWrapper.
    UnityEditor.EditorWrapper:Finalize ()

    Thanks!
     
  27. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    Make sure your skinweight/boneweights are set to unlimited in your quality settings for each quality level.
     
    hopeful likes this.
  28. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    This is some wierd internal unity error, I have no idea what is going on. I recommend to exit Unity and restart. Then, once Unity has reloaded your project, open the Global Library window from the UMA menu, and the on the file menu (on the global library window) choose "rebuild from project".
     
  29. Generalreb

    Generalreb

    Joined:
    Jun 2, 2021
    Posts:
    6
    Hmm ok thank you for the help.

    I did rebuild the library when I imported some recipes and now I'm wondering if it was happening before those recipes, I can't say for certain.

    Anyway if it's only when I'm dragging recipes / clicking stuff in inspector then I guess it might be ok lol.
     
  30. unity_011511

    unity_011511

    Joined:
    Dec 2, 2022
    Posts:
    1
    Hi, i'm trying load UMA model to chrome ios by Unity version 2021.3.5f1 - WebGL and got crash

    alert : App crashes with error "RuntimeError: call_indirect to a null table entry (evaluating 'dynCall_iiii(index,a1,a2,a3)')"

    Character already compress lowest texture and size for test, but still crash.

    I was test by disable UMAGenerator script at UMA_GLIB (not load the model) , it's work, not crash anymore so i think problem from base UMAGenerator.

    Browser : (with lowest texture and size)
    - Android : work.
    - IOS : crash.

    And when i refresh browser , memory not release.

    How to fix this?
    Thank you
     
  31. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    Sorry - I didn't see this. Most likely this is a memory issue. IOS will terminate your app if it thinks it is using too much memory. As for the browser refresh - I do not know, this is all Unity at that point.

     
  32. CyrilGendrot

    CyrilGendrot

    Unity Technologies

    Joined:
    Dec 17, 2021
    Posts:
    4
    Hi @Jaimi

    I'm studying the physics of fabrics for UMA. I wonder what this feature is for? Thanks for your reply

    upload_2022-12-9_11-12-4.png
     
  33. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    That is for copying cloth values. If you drop a "cloth" into the "from cloth" field, the cloth values will be copied from it. if you drop a cloth into the "to cloth" field, the current values will be copied to the cloth object.
     
    CyrilGendrot and hopeful like this.
  34. Z0rank

    Z0rank

    Joined:
    May 1, 2020
    Posts:
    3
    Hello. Can someone please help me, I'm having a problem with UMA slot builder. I'm trying to import some 3D clothing and turn it into a recipe for UMA. I tried with several models, some of them were downloaded from the internet and they were already rigged, and some of them I rigged myself in Blender (I followed a tutorial, I don't really know much about it so these might be badly prepared). But no matter which file I used, mine or downloaded, fbx or blend, I always run into the same error:
    (NullReferenceException: Object reference not set to an instance of an object
    UMA.UMAAssetIndexer.ReleaseReference (UnityEngine.Object obj) (at Assets/UMA/Core/Scripts/UMAAssetIndexer.cs:1567)
    UMA.UMAUpdateProcessor.UpdateSlot (UMA.SlotDataAsset slot) (at Assets/UMA/Core/Editor/Scripts/UMAUpdateProcessor.cs:79)
    UMA.Editors.UmaSlotBuilderWindow.CreateSlot () (at Assets/UMA/Core/Editor/Scripts/UmaSlotBuilderWindow.cs:327)

    What am I doing wrong? I'm using Unity 2021.3.10.
     
  35. sandro-varoli

    sandro-varoli

    Joined:
    Nov 26, 2018
    Posts:
    3
    Hello!
    I'm quite new in UMA, but I manage to create my contents (hairs, clothes, etc..) and add them to my DCA.

    What I'm failing is adding a cloth simulation. That is: I followed the example (I suppose):
    • created a rigged mesh and imported
    • created a slot with render asset
    • assigned a cloth property to the render asset...
    • create the recipe and assign it to DCA
    buy when the dca is created the mesh appears as a normal mesh... the TestCloth asset is created under the DCA but no cloth component is added...
    What I'm missing?
     
  36. AlundraFlint

    AlundraFlint

    Joined:
    May 3, 2016
    Posts:
    6
    Is it possible to use UMAExpressionPlayer on a prefab made by uma's prefab maker? When I open the jaw of the avatar using ExpressionRecipe (added to utility recipes) and save the avatar to a prefab, the prefab's opened jaw is overridden by the Animator component (if I disable Animator then the jaw is opened). I checked the documentation and couldn't find anything about the ExpressionPlayer or the PrefabMaker. dynamicAvatar.jpg prefab.jpg
     
  37. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,243
    It's not possible to use the expression player on the character.
    The open mouth is an artifact of Mecanim having a mapped jaw, and having an animation that does *not* animate the jaw. This leaves the jaw in the open position.
    There's a bunch of different ways to fix this, but probably the simplest is by creating an animation that closes the jaw and then add that as a layer to your state tree.
     
    AlundraFlint likes this.
  38. arteria

    arteria

    Joined:
    May 31, 2007
    Posts:
    2,191
    Merry Christmas to you all

    As a special thank you to the UMA Devs and community, im offering all 80+ UMA packs for $26.99 for two days only
    This offer can be purchased via the main Arteria3d website, link below

    Arteria3d 17th Birthday UMA Special – arteria3d
     
    Jaimi likes this.
  39. OuroborosBoy

    OuroborosBoy

    Joined:
    Dec 18, 2022
    Posts:
    1
    Is there any kind of current tutorial to explain how to use UMA with Unity 2021? All the tutorials and information I have found is from like five years ago and doesn't seem accurate for the current version. I've never used UMA before and I've only been using Unity for about a week, so any kind of beginner friendly guide would be very helpful, because so far I haven't been able to get it to do much of anything. I'm using the HDRP if that makes a difference.
     
  40. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,706
    Keeping documentation COMPLETELY up to date just doesn't seem to be possible. Most of the old concepts still apply, but a few details can change. So what the community has done instead is to include functional examples in the UMA package that show the way to use the features. You'll want to locate that folder and rummage through all of the examples, and see what's being done in the code to get them going.

    Also, there is a Discord forum that has a lot of activity, and that's a good place to ask questions and browse the Q&A by others. I believe there is a permanent link to the Discord (hosted by Secret Anorak) in the UMA docs.

    If you have found the old YouTube videos, it doesn't hurt to watch them as most of the big ideas still apply. It's just that there's newer versions of Blender, newer versions of Unity, newer versions of UMA, and some of the finer details may have changed.
     
  41. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,706
    As for using HDRP, I'm on built-in myself, so I don't have much to say there, except that UMA is somewhat shader agnostic. You tell it what shaders you want to use. When you download it, it's using built-in as the default, so either you play with UMA at first in a new project that is using built-in, or you should (hopefully) already know about how to convert from built-in to HDRP.

    If you've just started with Unity and only know HDRP, you could probably find advice from people who have done the HDRP conversion on the Discord.
     
  42. Zultron

    Zultron

    Joined:
    Dec 26, 2012
    Posts:
    59
    Hi is there a discord link I can find for community somewhere?
     
  43. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,706
    I believe there is a permanent link in the UMA docs.
     
    MediaGiant likes this.
  44. MAVG

    MAVG

    Joined:
    Feb 22, 2018
    Posts:
    41
    Can UMA include a syncronizing script for animations between skeletons from a Master animator (the character) to a slave animator (the wearable)? Like for example i want to attach different types of possible wings (demon wings, angel wings, Bug wings, etc.) to a race and make them work accordingly. Like if for example if the character flies the wings do the flapping animation and such
     
  45. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,706
    Once generated, an UMA character is a regular character model. You should be able to do whatever you want to it. FWIW, I think flapping wings were demonstrated back in 2015.
     
  46. MAVG

    MAVG

    Joined:
    Feb 22, 2018
    Posts:
    41
    Ok but I want a tip and have a question tho

    First... i want to create a skeletons with múltiple parts attached to it... What it would be the most convenient... Create a monstruous skeletons with all possible parts attached to it or multiple skeletons with parts attached to them... Ive heard that because of having to deal with múltiple animators the first option is less demanding but that leads to my question

    Second: If the first is true... Can UMA delete or deactivate all the unused bones on the generated character... So they do not affect the Game performance and fps?... I don't want My computer to become a living sun.... :oops:
     
  47. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,706
    If you can use Discord, it would probably be a good idea to chat about this there. But basically whatever you can do with a regular humanoid model in mecanim, you can do it with UMA in mecanim. As for bones, to a fair extent, they are just nested transforms. The performance hit is not horrible, and that's not really so much an UMA thing, but a model design thing.
     
  48. Rovernant

    Rovernant

    Joined:
    Feb 20, 2014
    Posts:
    1
    Hello guys.
    I need to replace DAZ rig with UMA rig for DAZ model. I'm newbie in Blender, so this proved to be a difficult task for me. I even obtained the Auto Rig Pro for Blender, but it didn't help much.
    Could you advice, please, on some steps to follow to complete my task or any guide on how to do this.
    Thanks.
     
  49. LootlabGames

    LootlabGames

    Joined:
    Nov 21, 2014
    Posts:
    351
    Getting some "strange" behavior. If I try run an addressables analyze I get this upload_2023-1-12_13-43-4.png
    I have tried everything to get rid of them(FreeReference on MeshHideAsset and for AssetIndexer).
    The only thing that works is if I delete addressables then recreate.
    That fixes it for a bit, but it ends up being in there again(after running the game?) later.

    What am I missing? How can this be fixed for good or do I need to delete addressables then recreate just to build?
     
    Last edited: Jan 12, 2023
  50. faizan143143

    faizan143143

    Joined:
    Oct 24, 2017
    Posts:
    7
    TargetParameterCountException: Parameter count mismatch error
    And some Blandedshapes not working
     

    Attached Files: