Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Hmm - we are using UMA with Android on 2020.3.14, and don't have any issues. An Oculus Quest has 4gb of RAM if i recall correctly, so the default UMA should work fine. If you are using Addressables, you have to be sure to build the bundles for Android specifically (after you have changed build targets), as they are platform specific. If you're not doing a debug build, you might want to turn that on, and then use logcat to see if there is anything.
     
  2. Corysia

    Corysia

    Joined:
    Mar 14, 2018
    Posts:
    108
    After a year away in Unreal Engine, I'm back to work in in Unity and I'm learning about modular clothing. I've a need for some custom outfits for the project I'm about to start and I'm looking for pointers on how to work with UMA clothing and making my own. I'm a complete noob when it comes to UMA, so please speak in single syllables. =)

    Are the tutorials from Secret Anorak from 2017 still applicable? Are there any newer ones for designing clothing? I'm still very early in this project, so any UMA tips would be welcome, especially relating to VR and the Quest.
     
  3. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The stuff for fitting clothing is all still valid. If you use Blender, you'll need to be sure to use FBX export, and use the parameters as specified in the "UMAContentCreation.PDF" file in the UMA folder. There are some gotchas (all transforms on meshes and bones *must* be applied, and the meshes should *not* be children of the rig). But otherwise it's all relevant.

    Not a lot of documentation on designing your own clothing, but most people recommend "Marvelous Designer" (there are templates on the github for MD). Some people also like to use "Garment tool for Blender".

    You may want to consider joining the discord - there's a lot of active members, and usually things get answered much faster there. There's a link in the UMA documentation in the UMA folder.
     
    Last edited: Dec 2, 2021
    Corysia likes this.
  4. kt5881

    kt5881

    Joined:
    Jul 26, 2014
    Posts:
    21
    Hi Jaimi,
    Thank you for your answer. it works. Thanks a lot.
    Can I ask one more question?

    I'd like to express x-ray mode using biped bone with UMA. I mean showing the biped bone with transparent skin.
    Is it possible in UMA?
    20211201_160125616.png
     
  5. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Take a look at the "UMA Bone Visualizer" - you'll need to modify it to work at runtime, but generally yes, it's pretty easy to do that.
     
    hopeful likes this.
  6. kt5881

    kt5881

    Joined:
    Jul 26, 2014
    Posts:
    21
    Hi Jaimi,
    Thanks for your guide. I found the 'UMA Bone Visualizer'. and trying to modify it to show on app after build.
    But the bone visualizer looks like using Gizmos as below code , so I can't express bone without editor mode.

    Would you please show me the way how to show bone on App.


    Code (CSharp):
    1. foreach (Transform child in childNodes)
    2.             {
    3.                 if (child == rootNode)
    4.                 {
    5.                     //list includes the root, if root then larger, green cube
    6.  
    7.                     Gizmos.color = Color.green;
    8.                     Gizmos.DrawSphere(child.position, 0.01f);
    9.                 }
    10.                 else
    11.                 {
    12.                     if (!DrawAdjustBones)
    13.                     {
    14.                         if (child.gameObject.name.ToLower().Contains("adjust"))
    15.                         {
    16.                             continue;
    17.                         }
    18.                     }
    19.                     if (!string.IsNullOrEmpty(Filter))
    20.                     {
    21.                         if (!child.gameObject.name.ToLower().Contains(Filter.ToLower()))
    22.                         {
    23.                             continue;
    24.                         }
    25.                     }
    26.                     if (DrawAsBones && BoneMesh!= null)
    27.                     {
    28.                         float BoneLength = Vector3.Distance(child.position, child.parent.position);
    29.                         Scale.Set(BoneLength / 10.0f, BoneLength / 10.0f, BoneLength);
    30.                         Vector3 relativePos = child.transform.position - child.parent.transform.position;
    31.                         if (relativePos.magnitude < 0.001f)
    32.                             continue;
    33.                         Quaternion rotation = (relativePos == Vector3.zero) ? Quaternion.identity : Quaternion.LookRotation(relativePos);
    34.                         Gizmos.DrawMesh(BoneMesh, child.parent.position, rotation, Scale);
    35.                     }
    36.                     else
    37.                     {
    38.                         Gizmos.color = Color.blue;
    39.                         Gizmos.DrawLine(child.position, child.parent.position);
    40.                         Gizmos.DrawCube(child.position, new Vector3(.01f, .01f, .01f));
    41.                     }
    42.                 }
    43.             }
    44.  
    45. foreach (Transform child in childNodes)
    46.             {
    47.                 if (child == rootNode)
    48.                 {
    49.                     //list includes the root, if root then larger, green cube
    50.                     Gizmos.color = Color.green;
    51.                     Gizmos.DrawSphere(child.position, 0.01f);
    52.                 }
    53.                 else
    54.                 {
    55.                     if (!DrawAdjustBones)
    56.                     {
    57.                         if (child.gameObject.name.ToLower().Contains("adjust"))
    58.  
    59.                         {
    60.                             continue;
    61.                         }
    62.                     }
    63.  
    64.                     if (!string.IsNullOrEmpty(Filter))
    65.                     {
    66.                         if (!child.gameObject.name.ToLower().Contains(Filter.ToLower()))
    67.                         {
    68.                             continue;
    69.                         }
    70.                     }
    71.                     if (DrawAsBones && BoneMesh!= null)
    72.                     {
    73.                         float BoneLength = Vector3.Distance(child.position, child.parent.position);
    74.  
    75.                         Scale.Set(BoneLength / 10.0f, BoneLength / 10.0f, BoneLength);
    76.  
    77.                         Vector3 relativePos = child.transform.position - child.parent.transform.position;
    78.  
    79.                         if (relativePos.magnitude < 0.001f)
    80.                             continue;
    81.  
    82.                         Quaternion rotation = (relativePos == Vector3.zero) ? Quaternion.identity : Quaternion.LookRotation(relativePos);
    83.  
    84.                         Gizmos.DrawMesh(BoneMesh, child.parent.position, rotation, Scale);
    85.  
    86.                     }
    87.                     else
    88.                     {
    89.  
    90.                         Gizmos.color = Color.blue;
    91.                         Gizmos.DrawLine(child.position, child.parent.position);
    92.                         Gizmos.DrawCube(child.position, new Vector3(.01f, .01f, .01f));
    93.  
    94.                     }
    95.                 }
    96.             }
    97.  
     
    Last edited: Dec 3, 2021
  7. Yonsh

    Yonsh

    Joined:
    Dec 20, 2012
    Posts:
    1
    Instead of commenting the line out, adding
    res.material.shader = umaMaterial.material.shader;
    before or after the line can also stop the errors. Not sure if it would affect addressables though.
     
  8. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yeah, you would need to modify it to use Graphics.DrawMesh instead. I can't really spend the time right now to rewrite this to work at runtime, but perhaps if you join the discord (link in the documentation) we can all chip in and help.


     
  9. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Excellent solution! Thanks!
     
  10. numbers1234

    numbers1234

    Joined:
    Jan 5, 2019
    Posts:
    31
    So randomly I will have some problems, look around trying to figure it out, only to realize the UMA global library has cleared itself. Doesn't happen often enough to be a pain, but I do waste time before I realize what happen. Any idea why?
     
  11. numbers1234

    numbers1234

    Joined:
    Jan 5, 2019
    Posts:
    31
    I am further integrating UMA into my project, and I notice that ram usage went up pretty significantly, even using the same exact UMA/recipe. But then I discovered the prefab tool, and this is a decent workaround for my use case. The StandAloneDna feature is neat, I notice this is a new feature nothing mentioned on it anywhere and I am having some problems getting it to work properly. In editor it will only update the model when the mouse hovers over the dna script. And in game I can't get it to properly retrieve the DNA. How do I retrieve and properly update the DNA? Using GetDNA on the script doesn't seem to work. I am also curious of other methods of reducing memory usage which do not involve the prefab tool.
     
    Last edited: Dec 5, 2021
  12. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    Just kind of a side note ... with the normal UMA non-prefab workflow, you may need to enable Addressables in order to see RAM usage come down. Of course, if you're taking the prefab route, as you said, you may avoid this issue, but if you end up switching development paths again, you probably need to implement Addressables to see memory use come down.
     
    numbers1234 likes this.
  13. numbers1234

    numbers1234

    Joined:
    Jan 5, 2019
    Posts:
    31
    I plan to eventually.

    Just one thing I am trying to wrap my mind around. If I have an exact copy of an UMA, is there any way to have them share materials, besides making a prefab beforehand?
     
  14. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yes. You can create "UMAMaterials" and "Materials" for each part, and preset the textures on them. Then you can drive the shared colors through material properties.

    Note: You will lose texture compositing and atlas building. You will, however, use less memory and gain the ability to use the SRP batcher.
     
    hopeful likes this.
  15. ms502040

    ms502040

    Joined:
    Jan 9, 2019
    Posts:
    18
    Hi,
    UMA is great, but what is the chance that dynamic expression player will be finished?
     
  16. solarholic

    solarholic

    Joined:
    Jun 25, 2013
    Posts:
    10
    Hi,
    Did anyone know how to use the DNA in generic UMA? My generic UMA didn't work when I played my own gerenic animation. The DNA had no response...I would like to do like it only. -->

    Can anyone give me the sample for reference?
     
  17. arteria

    arteria

    Joined:
    May 31, 2007
    Posts:
    2,189
    Arteria would like to offer the UMA community 80% off on all our UMA costumes. Our collection runs to nearly 100 costumes, with many more sets to be added.
    This is offered as a special thank you to the UMA Devs and the wonderful supportive community


    BONUS
    Any customer who purchases assets over the value of $90 can recieve one custom UMA item made for them. For further details email Steve at rders@arteria3d.co.uk


    Visit the Arteria UMA collection here:
    https://arteria3d.myshopify.com/collections/uma
     
    Last edited: Dec 8, 2021
    SammmZ and Corysia like this.
  18. SammmZ

    SammmZ

    Joined:
    Aug 13, 2014
    Posts:
    174
    Bones affected by DNA and animated bones should be different. You can't animate DNA bones. There must be no keys at all (even static ones) on bones affected by DNA changes.
     
  19. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I will get to the new DynamicExpressionPlayer after I have the main new features in and completed. I have several versions that I need to consolidate.
     
  20. solarholic

    solarholic

    Joined:
    Jun 25, 2013
    Posts:
    10
    Can you provide me the sample for REFERENCE?
    I have another problem after I add the DNA bone to my base bones.
    And the errors occur...
    Exception in UMAGeneratorBuiltin.OnDirtyUpdate: System.NullReferenceException: Object reference not set to an instance of an object
    at UMA.UMADefaultMeshCombiner.RecalculateUV (UMA.UMAMeshData umaMesh) [0x000ec] in C:\Users\Solar\Desktop\T1UMA\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMADefaultMeshCombiner.cs:288
    at UMA.UMADefaultMeshCombiner.UpdateUMAMesh (System.Boolean updatedAtlas, UMA.UMAData umaData, System.Int32 atlasResolution) [0x000e5] in C:\Users\Solar\Desktop\T1UMA\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMADefaultMeshCombiner.cs:174
    at UMA.UMAGeneratorBuiltin.UpdateUMAMesh (System.Boolean updatedAtlas) [0x0000e] in C:\Users\Solar\Desktop\T1UMA\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAGeneratorBuiltin.cs:282
    at UMA.UMAGeneratorBuiltin.HandleDirtyUpdate (UMA.UMAData data) [0x00124] in C:\Users\Solar\Desktop\T1UMA\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAGeneratorBuiltin.cs:226
    at UMA.UMAGeneratorBuiltin.OnDirtyUpdate () [0x0003a] in C:\Users\Solar\Desktop\T1UMA\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAGeneratorBuiltin.cs:265
    UnityEngine.Debug:LogWarning (object)
    UMA.UMAGeneratorBuiltin:OnDirtyUpdate () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:274)
    UMA.UMAGeneratorBuiltin:Work () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:132)
    UMA.UMAGeneratorBuiltin:Update () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:97)

    Unable to claim UMAMeshData global buffers!
    UnityEngine.Debug:LogWarning (object)
    UMA.UMAMeshData:ClaimSharedBuffers () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAMeshData.cs:385)
    UMA.UMADefaultMeshCombiner:UpdateUMAMesh (bool,UMA.UMAData,int) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:151)
    UMA.UMAGeneratorBuiltin:UpdateUMAMesh (bool) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:282)
    UMA.UMAGeneratorBuiltin:HandleDirtyUpdate (UMA.UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:226)
    UMA.UMAGeneratorBuiltin:OnDirtyUpdate () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:259)
    UMA.UMAGeneratorBuiltin:Work () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:132)
    UMA.UMAGeneratorBuiltin:Update () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:97)

    Exception in UMAGeneratorBuiltin.OnDirtyUpdate: System.NullReferenceException: Object reference not set to an instance of an object
    at UMA.UMADefaultMeshCombiner.RecalculateUV (UMA.UMAMeshData umaMesh) [0x000ec] in C:\Users\Solar\Desktop\T1UMA\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMADefaultMeshCombiner.cs:288
    at UMA.UMADefaultMeshCombiner.UpdateUMAMesh (System.Boolean updatedAtlas, UMA.UMAData umaData, System.Int32 atlasResolution) [0x000e5] in C:\Users\Solar\Desktop\T1UMA\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMADefaultMeshCombiner.cs:174
    at UMA.UMAGeneratorBuiltin.UpdateUMAMesh (System.Boolean updatedAtlas) [0x0000e] in C:\Users\Solar\Desktop\T1UMA\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAGeneratorBuiltin.cs:282
    at UMA.UMAGeneratorBuiltin.HandleDirtyUpdate (UMA.UMAData data) [0x00124] in C:\Users\Solar\Desktop\T1UMA\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAGeneratorBuiltin.cs:226
    at UMA.UMAGeneratorBuiltin.OnDirtyUpdate () [0x00000] in C:\Users\Solar\Desktop\T1UMA\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAGeneratorBuiltin.cs:259
    UnityEngine.Debug:LogWarning (object)
    UMA.UMAGeneratorBuiltin:OnDirtyUpdate () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:274)
    UMA.UMAGeneratorBuiltin:Work () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:132)
    UMA.UMAGeneratorBuiltin:Update () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:97)
     
  21. SammmZ

    SammmZ

    Joined:
    Aug 13, 2014
    Posts:
    174
    Reference of what? Of not animating DNA bones? Literally, any animation that does not animate DNA bones are the reference o_O

    Well, it means you did it wrong. Check if you're not ruined your model rig, rebuild the avatar, re-extract and assign the T-Pose, check if you rebuild the slot, etc.
     
  22. Lazy_Eight

    Lazy_Eight

    Joined:
    Aug 26, 2019
    Posts:
    16
    Hey everyone,

    Huge longshot but I thought i'd ask...

    Getting an issue where the UMA's arms are stuck behind their back when using IK on the arms. I'm using it with the Game Kit Controller so maybe that's to blame but I just wanted to ask if you've encountered that with UMA generally or if there was a common cause.

    Thanks
     
  23. solarholic

    solarholic

    Joined:
    Jun 25, 2013
    Posts:
    10
    Hi.

    Excuse me. I have some problem about DNA of Generic UMA.
    I test the Generic UMA and Humaoid UMA.
    The humanoid UMA can change the DNA of the animation bones when I run game and play animation.
    But the generic UMA can't change the DNA of the animation bones , can only change the bone that no animation apply.
    I would like to ADJUST the leg length.

    I would like to change the DNA of generic UMA like humanoid UMA, but why so difference between the HUMANOID UMA and GENERIC UMA?

    Thanks.
     
  24. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Just dropping a quick note that several Arteria3D / Pixel Crushers UMA assets are 50% off in the Asset Store's New Year's Sale. Here's a link to the Pixel Crushers publisher page for quick access.

    Tip: If your checkout is $150+, use coupon code HELLO2022 for an extra 5% off, which applies to sale and non-sale items alike.
     
    Jaimi likes this.
  25. Clariesu

    Clariesu

    Joined:
    Apr 2, 2021
    Posts:
    24
    Does this happen because clothes and characters enjoy the same vertex group?
     
  26. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    This happens when the generated mesh overflows the 16 bit buffers. To fix it, go into preferences/UMA, and check the box to use 32 bit buffers.
     
  27. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    UMA just builds the meshes and rigs - all the animation is handled by Unity. Humanoid animations are mapped through Mecanim, which is doing some magic in the background. Generic animations are not. But we have no control over how that happens.
     
  28. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    No idea. There is some additional information you can change on the T-Pose to influence the mecanim rig. But I'm not sure if any of those will help in this situation.
     
  29. hotpeperoncino

    hotpeperoncino

    Joined:
    Apr 11, 2019
    Posts:
    18
    Hi. The prefab (Assets/o3n/UMARaces/Stunner/Female/Prefabs/StunnerJane)'s animator uses "StunnerJane" as Avatar.
    But I cannot find StunnerJane Avatar in FBX files. Where is StunnerJane Avatar. I'd like to check avatar config.

    when i use o3n/UMARaces/Stunner/Common/Fbx/o3n_stunnerAvatar instead of "StunnerJane", i got unexpected result.
    even when i use "StunnerJane", the result of my animation is not good. legs don't work well.
    shows my result; walk animation does not work.
    i suspect the avatar data (both StunnerJane and o3n_stunnerAvatar) does not match the Assets/o3n/UMARaces/Stunner/Female/Prefabs/StunnerJane .
    when i tried to use another character controller(unity starter TPC, character controller pro ), i got same result.
     
  30. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Wow. I haven't seen anything like that with Stunner Jane. If it happens with the avatar from the fbx, then I would suspect it's the animations avatar - not Stunner Janes.

    Anyway, you will probably have more luck on finding the source files on the forum page for that asset here:

    https://forum.unity.com/threads/free-o3n-uma-race-jane-john.930876


     
  31. Error-401

    Error-401

    Joined:
    Nov 20, 2019
    Posts:
    2
    I've been trying to get UMA to work with HDRP with no luck. I've tried converting the regular Materials to HDRP, then changing the _MainTex property to _BaseMap as suggested somewhere. I've also tried to figure out how to use the HDRP Races package, also did nothing. I get the feeling I'm missing something obvious, considering that apparently it's not supposed to be difficult to covert UMA to HDRP.

    Any chance one of y'all knows how to do this?
     
  32. NikoBay

    NikoBay

    Joined:
    Aug 15, 2018
    Posts:
    39
    Is there anyway to use the pre-built character instead of dynamic avatar prefab? I couldn't find any tutorial on that. In short I want to use UMA equipment features but not its dynamic character building.
     
  33. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    I think you're going to have to share more info, like Unity version and what you're seeing. Generally, what you're feeding into UMA is what you should see coming out of it. So if you're not seeing the right thing, logically are you not feeding it the right thing in some way. I know that's not terribly helpful for me to say, but that's a reasonable area to be looking at for a step that was missed.
     
  34. Error-401

    Error-401

    Joined:
    Nov 20, 2019
    Posts:
    2
    I'm using unity 2020.3.22f1, HDRP 10.7. When I load in one of the example characters from the 'Getting Started' folder it is pink. Any material used by UMA is pink, presumably because they're using the Standard (built-in) shader. This is why I first attempted to upgrade all the materials to HDRP (which obviously didn't work, or wasn't enough).

    For additional information, the baseColor and Normal maps that all the materials are using are the "NotSet" textures from the "GeneratedTextures" folder of "HumanShared". I assume that that is also important.
    upload_2021-12-23_18-52-12.png
     
  35. HomewreckersStudio

    HomewreckersStudio

    Joined:
    Feb 3, 2013
    Posts:
    15
    Hi,

    I made prefabs from my UMAs using UMA/Prefab Maker but when I build and run on Android I get this awful flickering effect.

    How can I fix it?

    https://imgur.com/a/pxibc5Y
     
  36. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    They are all intermingled. There's nothing that says you *have* to use the DNA, though.
     
  37. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Not sure what is going on there. Either some weird z-fighting with two characters in the same position, or something wonky with shadows. But UMA's just build regular SkinnedMeshRenderers.
    You might try with shadows disabled, and see if you still get it. if so, you know it's some other issue.
     
  38. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The process for converting to HDRP is as follows:

    1. Run the HDRP material conversion on your project.
    2. Search for all umamaterials - in the project search bar, enter: t:UMAMaterial hair
    3. For each umamaterial, open the channels, and choose the correct channel name for the texture.
    _MainTex should be _BaseMap, for example.

    Sometimes the texture property names change by version. So be sure to use the dropdown to select the correct name.
     
  39. HomewreckersStudio

    HomewreckersStudio

    Joined:
    Feb 3, 2013
    Posts:
    15
    Hi Jaimi,

    There is only one character in the scene.

    There is only one light and it has shadows turned off. I turned off shadow casting and receiving on the skinned mesh renderer and it's still happening.
     
  40. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    The effect (which as Jaimi said looks like z-fighting) suggests there are two identical models at the same position, so if you haven't yet, drill down into your prefab and in your hierarchy to ensure there is only one character. You might have two models nested somehow. Also, you can test the material independently on another object to see if it flickers.
     
  41. cratica

    cratica

    Joined:
    Dec 11, 2016
    Posts:
    59
    Hello, I would like to change a part of the dna via script. For example, what is c# for changing width of arm? I found in the documentation that its possible to change the UMAData components via script but there is no clear description or examples of how to do this. There is something like DNA.Set(value) but have no clue how to use that to change arm width size for example... Are there actual source examples to doing this? Thank you very much!
     
  42. Lastonestanding

    Lastonestanding

    Joined:
    Nov 20, 2013
    Posts:
    10
    Hey I have a question, How do I make a set of Skin Colors For A Group type I am making that variate. Like if I select Europeans I get Light skin tones of different shades, but if I choose Asians they have more Olive Skin tones. How would I write that into this code? I got up to this point so far:

    Code (CSharp):
    1. public class UnitCreator : MonoBehaviour
    2. {
    3.     [Header("Unit Info")]
    4.     [SerializeField] private Races race;
    5.     private DynamicCharacterAvatar Unit;
    6.     private Dictionary<string, DnaSetter> dna;
    7.     enum Race { WestrenEuropean, EastrenEuropen, Asain }
    8.  
    9.     public void ChooseRace(Color col)
    10.     {
    11.         if (race == Race.WestrenEuropean)
    12.         {
    13.             Unit.GetComponent<DynamicCharacterAvatar>();
    14.             Unit.SetColor("Skin", new Color(0.0f, 1.0f, 0.0f, 1.0f));
    15.             Unit.UpdateColors(true);
    16.         }
     
  43. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Take a look at the SimpleSetup scene. The code defines a "Shared Color Table" for skin, hair and eye color, and lets you choose and set it.
     
    Lastonestanding likes this.
  44. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The Simple Setup scene does show how to change DNA. The “?” button next to “Change Wardrobe”, “Change Colors”, and “Change DNA” describe the steps to programmatically modify the character.
     
  45. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    So are you guys planning to add avatars that looks like kids and teens to UMA? Kids and teens are playing a lot of games too, but UMA avatars looks more like adults, so it cant really be used for kids. It would be nice to have anime looking UMA avatars too.
     
  46. Lastonestanding

    Lastonestanding

    Joined:
    Nov 20, 2013
    Posts:
    10
    Thank you for that now I set the random DNA and Presets for the units. :) But I have a question is it possible for UMA System through Code to tell the unit to have a set of wardrobes that randomize, Outside the Randomizer. For I know in the Randomizer you can set Randomized Wardrobes, but it would only be for the one unit and not for whatever unit is made. For what I am trying to set up is a Unit Creator, were the player can choose whatever they want, like they can have a African Unit, with Japanese Armor, and Viking Axes, With Native American Headdress. Also I would explain the Units will not be just one person, they will be groups of people. So I am trying to set up Wardrobes that fall under certain categories, Like you have 5 or 6 Breastplates under "EuroBreastplate" and would spawn on the unit when selected. Thank you for looking at this I hope to hear from you soon.
     
  47. mzahmbie

    mzahmbie

    Joined:
    Mar 16, 2013
    Posts:
    3
    Hello,

    I've been working on getting UMA working with a custom character, skeleton, model, etc. I was able to get this all working in a test project that wasn't using Addressables, however in my actually project I am and would like to use UMA's integration with Addressables.

    I've run into an issue where the Active Race on the Dynamic Character Avatar for my character doesn't populate with my race data during Play. In the Editor Scene the race data is found just fine and the character assembles correctly. Since this is no longer found once I hit Play I get null exceptions in DynamicCharacterAvatar.cs when it tries to lookup the race data.

    I've debugged the code through UMAAssetIndexer.cs, and it does find the race name in the TypeDic during GetAssetItem() however the assetItem.Item that's found is null.

    In the Editor Scene <--> While playing in the Editor
    upload_2022-1-2_19-41-46.png upload_2022-1-2_19-42-39.png

    I'm using the UMA_GLIB prefab referenced on the DCA for the Context/Uma Generator. Though I get the same results when I let UMA auto populate those.

    Is there anyone here that could help me understand how ActiveRace dropdown gets populated and why it would fail to populate during Play with Addressables?

    I've also heard that there is/was a Slack for UMA, but haven't found any info about how to access it. It'd be great to chat more actively with other UMA users.
     

    Attached Files:

  48. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Will has both Anime and Toon avatars now: https://willbgameart.com/
     
  49. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    UMARandomizer is designed to provide a set of "logical" pieces that go together. For example, you could create an "African" randomizer that lets you vary the skin color from tan to black, and provide African styled armors.
    You would then create a prefab with a UMARandomAvatar, and give it the specific UMARandomizer that you wanted. For example, you Could create an "AfricanUMA" prefab, and set the UMARandomizer on it to the African randomizer. Then whenever you instantiated the prefab, it would be a randomly generated African themed character. You could do the same for Japanese, Viking, Roman, etc.

    If you are allowing people to pick and choose any armors, then you would generally just save the character to an "AvatarDefinition" and then load it when needed.

    If this is not what you want, then you might want to look into just writing a routine to set the wardrobe however you need.
     
    Lastonestanding likes this.
  50. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    There is a discord here:

    https://discord.gg/jTdcFV6w

    In the UMA preferences, there is a checkbox for including recipes and all other types. UMA does not manage those, so if you select them, then you need to manage them manually.
    I recommend NOT to check those boxes, unless you really really need them, and you want to manually load them.
    99.999% of cases, they do NOT need to be checked.