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
    Yeah - sorry, I did look into it. You can get it "sort of" working pretty quickly by wiring everything up in a script. When I say "sort of", it was because the movement and all was working fine, but for full functionality you'd have to generate a bunch of hitboxes, and get them to attach to the right bones (etc). It's kind of painful in that they have an editor script to generate everything, instead of dynamically doing it, so that would have to be written to get full functionality. I'll try to dig up the script I wrote, if you're interested in continuing it.
     
  2. m0rr0ws0n

    m0rr0ws0n

    Joined:
    Sep 18, 2014
    Posts:
    65
    What do I do about materials? I tried uma_diffuse_normal_metallic, placeholdermaterial and they make my character really dark and shiny. Is it because I don't have a normal or spec maps because im using makehuman now and they don't give you those. I just put my diffuse map into all three slots. Should I try to make normal and spec maps?

    -edit- I made normal and spec maps but my char is still a shiny dark brown color. Look at the attached image. I'm at a loss on whats causing it to look like that.
     

    Attached Files:

    Last edited: Aug 19, 2017
  3. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    If you use "uma_diffuse_normal_metallic" then you should be using all those textures, definitely not putting your diffuse map in the normal and metallic maps. That's why it looks dark and shiny.
    https://blogs.unity3d.com/2015/02/18/working-with-physically-based-shading-a-practical-approach/

    If you only have a diffuse map and that's all you want to use, then you'll need to create a new uma material that uses just the albedo texture. http://www.umawiki.secretanorak.com/UMA_Material#Creating_a_new_UMA_Material

    If you're using the specular workflow (albedo, normal, specular) then you'll need to make a new uma material for that too. There isn't a preset one for that, though we probably will add some more premade ones in the next release. See the above link for how to make a new uma material. Basically you're going to set it up exactly like "uma_diffuse_normal_metallic" except point it to a unity material that is using the standard specular shader and the 3rd texture channel will be called "_SpecGlossMap" instead of "_MetallicGlossMap"
     
    TeagansDad and hopeful like this.
  4. m0rr0ws0n

    m0rr0ws0n

    Joined:
    Sep 18, 2014
    Posts:
    65
    Thx i got it. ;)

     
    hopeful and kenamis like this.
  5. m0rr0ws0n

    m0rr0ws0n

    Joined:
    Sep 18, 2014
    Posts:
    65
    Is it possible to change the color dynamically with a custom model: This little 3 lines of code :

    Avatar.SetColor("Skin", SkinColor.colors[4]);
    Avatar.BuildCharacter();
    Avatar.UpdateColors(true);

    works for the standard model but not my custom model. Both times it gives the error "NullReferenceException: Object Reference not set to an instance of an object" but atleast it works for the stock uma model. I dragged a sharedColorTable and a dynamiccharacteravatar into the script.

    I can change the color before launching the game by setting a shared color on the recipe but thats not what I want.
     
  6. Gervais60

    Gervais60

    Joined:
    Apr 7, 2016
    Posts:
    37
    Hi Jaimi

    I just did a new test project with 2.6 and invector and after some tweaking it is working pretty well
    The only problem I have left is the human male DCS is not working properly for now every other basic character type seem to work ok

    The integration with invector it self is now working but after adding all the necessary script to the UMA character and a few tweak in the Invector script for late initialization I am able to control the character no problem now with out any error in the console I will see how far I can go from here and post back at a later time

    Thanks
     
    Last edited: Aug 20, 2017
  7. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    I think if you're using DCS, you do need to set a shared color (even if only one overlay is using it, eg eyes) to set the color at runtime if using Avatar.SetColor. On your custom model race's recipe you'll need to add a shared color called skin and set your skin overlays to use that shared color channel. That's how the included human races are set up. @Jaimi might know otherwise though.
     
    m0rr0ws0n and hopeful like this.
  8. NerdAlex

    NerdAlex

    Joined:
    Apr 23, 2017
    Posts:
    12
    Excuse me, hi. This looks great but I am unable to save my avatar? When I try it says "Object reference not set to an instance of an object". I know what this means, but I don't know how to fix it.
     

    Attached Files:

  9. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    It looks like from your screenshot that the scene isn't running, is that the case? That's a requirement to save a generated UMA.
    http://www.umawiki.secretanorak.com/Avatar
     
  10. m0rr0ws0n

    m0rr0ws0n

    Joined:
    Sep 18, 2014
    Posts:
    65
    how do you change the animator and then how do you access one? I tried several things like setAnimator and setting runtimeanimatorcontroller on the avatar but it doesnt work. It's saying theres no animator on the character. I was thinking i could change the animator controller or put all the animations into one animator controller and switch them with transitions.

    I added a race animator on the UMADynamicCharacterAvatar and when I try to get into the animator its saying that theres no animator attached to the avatar.

    What im trying to do is set an idle animation based on what class the player picks at character selection.

    Thx guys! :D


    -EDIT- ok well i added a animator but when I switch animations it looks like its stuck on the first frame of the animation or something. Here is my code!

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.EventSystems;
    using UnityEngine.UI;
    using UMACharacterSystem;

    public class MyDropdown : MonoBehaviour {

    public Dropdown SkinToneDropDown;
    public Dropdown ClassDropDown;
    public Dropdown HairStyleDropDown;
    public Dropdown HairColorDropDown;
    public SharedColorTable SkinColor;
    public DynamicCharacterAvatar Avatar;
    public Animator idleAnims;

    // Use this for initialization
    void Start () {

    SkinToneDropDown.onValueChanged.AddListener(delegate { SkinToneValueHandler(SkinToneDropDown); });
    ClassDropDown.onValueChanged.AddListener(delegate { ClassValueHandler(ClassDropDown); });
    HairStyleDropDown.onValueChanged.AddListener(delegate { HairStyleValueHandler(HairStyleDropDown); });
    HairColorDropDown.onValueChanged.AddListener(delegate { HairColorValueHandler(HairColorDropDown); });
    idleAnims = Avatar.GetComponent<Animator>();
    }

    private void SkinToneValueHandler(Dropdown target)
    {
    switch(target.value)
    {
    case 0:
    Avatar.SetColor("Skin", SkinColor.colors[0].color);
    Avatar.UpdateColors(true);
    break;
    case 1:
    Avatar.SetColor("Skin", SkinColor.colors[1].color);
    Avatar.UpdateColors(true);
    break;
    case 2:
    Avatar.SetColor("Skin", SkinColor.colors[2].color);
    Avatar.UpdateColors(true);
    break;
    case 3:
    Avatar.SetColor("Skin", SkinColor.colors[3].color);
    Avatar.UpdateColors(true);
    break;
    case 4:
    Avatar.SetColor("Skin", SkinColor.colors[4].color);
    Avatar.UpdateColors(true);
    break;
    case 5:
    Avatar.SetColor("Skin", SkinColor.colors[5].color);
    Avatar.UpdateColors(true);
    break;
    case 6:
    Avatar.SetColor("Skin", SkinColor.colors[6].color);
    Avatar.UpdateColors(true);
    break;
    case 7:
    Avatar.SetColor("Skin", SkinColor.colors[7].color);
    Avatar.UpdateColors(true);
    break;
    }
    }

    private void ClassValueHandler(Dropdown target)
    {
    switch (target.value)
    {
    case 0:
    idleAnims.SetBool("mage", false);
    idleAnims.SetBool("knight", true);
    idleAnims.SetBool("thief", false);
    break;
    case 1:
    idleAnims.SetBool("mage", true);
    idleAnims.SetBool("knight", false);
    idleAnims.SetBool("thief", false);
    break;
    case 2:
    idleAnims.SetBool("mage", false);
    idleAnims.SetBool("knight", false);
    idleAnims.SetBool("thief", true);
    break;
    }
    }

    private void HairStyleValueHandler(Dropdown target)
    {

    }

    private void HairColorValueHandler(Dropdown target)
    {

    }

    }
     
    Last edited: Aug 20, 2017
  11. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Too little information, but let me guess... you have an "Any State" -> "Knight Idle" transition that can happen at any time when the knight bool is set. Unfortunately this means that when you're in "Knight Idle" you're still transitioning to "Knight Idle" the next frame and the frame after... such never really playing the "Knight Idle".
     
    m0rr0ws0n likes this.
  12. m0rr0ws0n

    m0rr0ws0n

    Joined:
    Sep 18, 2014
    Posts:
    65
    Yeah i had to use a trigger then it works.
     
  13. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Firlefanz73, Teila and malkere like this.
  14. Bantichai

    Bantichai

    Joined:
    Nov 6, 2016
    Posts:
    138
    Those models looks bloody amazing. I'm a bit late to the party but I'm wondering why are these not available on the Unity Store? Are they eventually going to be coming to the Unity Store?
     
  15. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    He is definitely getting better! :) Now if he would redo the UMA 2.0 ones to put in the body parts that are missing for those of us who prefer to hide slots rather than have skin showing through. That would be fabulous. :)
     
    runningbird likes this.
  16. russnash37

    russnash37

    Joined:
    Feb 22, 2017
    Posts:
    31
    I'm having an issue getting UMA 2.6.1 to work with Ultimate Survival 1.3 and was wondering if anyone could offer any insight? I'm using Messy Coder's tutorial video but find that after adding the UMA character to the canvas it isn't rendering at runtime. I've ensured that the UMA's objects layer is set to UI. Some difference between 2.5 and 2.6.1 perhaps?

    Edit: I've noticed that the avatar is being rendered, its just for some reason being placed way into the background far behind the canvas despite having the same coords as the original avatar from the US UI.

    Thanks in advance for any help!
     
    Last edited: Aug 27, 2017
  17. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    Before everything was fine.
    Then I installed Unity 2017.1.0.p5 (had p4 before).

    Now I get this error every time I start a Scene with an uma in it:

    UMA.UMADefaultMeshCombiner:UpdateUMAMesh(Boolean, UMAData, Int32) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:117)
    UMA.UMAGeneratorBuiltin:UpdateUMAMesh(Boolean) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:275)
    UMA.UMAGeneratorBuiltin:HandleDirtyUpdate(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:226)
    UMA.UMAGeneratorBuiltin:OnDirtyUpdate() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:263)
    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)

    I downloaded the latest Uma Version from Github.
    But still the same, I can see no Uma, here the latest error from the log:

    SkinnedMeshRenderer: Trying to set a mesh ("") that is unfit for use with SkinnedMeshRenderer. Most likely it doesn't have Skin information and/or is only assigned to the renderer during runtime, in which case Unity isn't aware of its use with SkinnedMeshRenderer. Mark the mesh as Readable or assign it to the renderer in the Editor before building.
    UnityEngine.SkinnedMeshRenderer:set_sharedMesh(Mesh)
    UMA.UMADefaultMeshCombiner:MakeRenderer(Int32, Transform) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:96)
    UMA.UMADefaultMeshCombiner:EnsureUMADataSetup(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:44)
    UMA.UMADefaultMeshCombiner:UpdateUMAMesh(Boolean, UMAData, Int32) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:117)
    UMA.UMAGeneratorBuiltin:UpdateUMAMesh(Boolean) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:282)
    UMA.UMAGeneratorBuiltin:HandleDirtyUpdate(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:226)
    UMA.UMAGeneratorBuiltin:OnDirtyUpdate() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:265)
    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)

    Any idea what's wrong? Is there a way to fix it or must I go back to p4?

    Thanks a lot and have a nice Weekend!
     
    pixelR likes this.
  18. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    Not an answer, but I'm using the store version of UMA 2.6.1 with Unity 2017.1 without problems. I am using DynamicCharacterAvatar
    other than my hair shader problem that is... that didn't go away with the upgrade =3
     
  19. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    Code (CSharp):
    1.         private SkinnedMeshRenderer MakeRenderer(int i, Transform rootBone)
    2.         {
    3.             GameObject newSMRGO = new GameObject(i == 0 ? "UMARenderer" : ("UMARenderer " + i));
    4.             newSMRGO.transform.parent = umaData.transform;
    5.             newSMRGO.transform.localPosition = Vector3.zero;
    6.             newSMRGO.transform.localRotation = Quaternion.Euler(0, 0, 0f);
    7.             newSMRGO.transform.localScale = Vector3.one;
    8.  
    9.             var newRenderer = newSMRGO.AddComponent<SkinnedMeshRenderer>();
    10.             newRenderer.enabled = false;
    11.         newRenderer.sharedMesh = new Mesh();
    12.             newRenderer.rootBone = rootBone;
    13.             newRenderer.quality = SkinQuality.Bone4;
    14.             newRenderer.sharedMesh.name = i == 0 ? "UMAMesh" : ("UMAMesh " + i);
    15.             return newRenderer;
    16.         }
    When I double click the error it goes to the line that I switched to the left side above...
     
  20. Xypherorion

    Xypherorion

    Joined:
    Nov 23, 2012
    Posts:
    4
    Firlefanz73, I believe I'm experiencing the same! I'm testing it with the UMA project by itself in 2017.2 b8, then i'll drop back to 2017.1 p4 to see if that fixes things. I'll let you know my results.

    Results:
    2017.1 p5 - Broken! Same results as Firlefanz73
    2017.2 b8 -
    Commented out AssetBundleManager.cs:190-191 so it would compile... Broken! Same results.

    Reinstalled 2017.1 p4
    2017.1 p4 - Works!

    Hey UMA team, looks like we have an interface break happening after 2017.1 p4, heads up!

    https://github.com/umasteeringgroup/UMA/issues/33
     
    Last edited: Aug 27, 2017
    pixelR likes this.
  21. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    You should join the Slack channel. You can get more help there and faster.
     
  22. BruceBarratt

    BruceBarratt

    Joined:
    Jun 20, 2015
    Posts:
    57
    Hi, I'd like to join the Slack channel. What are the details? Thanks.
     
  23. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    If you send me your email via PM/Conversation here on the forums, I will send you an invite. :)
     
  24. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Did you report it to Unity as a bug? Generating the skinned mesh at runtime has worked for 5+ years, so if it doesn't now it's because Unity broke something, not UMA.
     
  25. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I agree - it's dying on this line:

    newRenderer.sharedMesh = new Mesh();

    because the "isReadable" flag is not set. However, there is no way to set that flag, and it should be set to "true" for a mesh created in code (according to the docs).

    If you all can report this to Unity, hopefully they can get this fixed before too long.
     
    pixelR and hopeful like this.
  26. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    Reported. Case 946068.
     
    Jaimi and hopeful like this.
  27. DarkCooker

    DarkCooker

    Joined:
    Jan 7, 2015
    Posts:
    119
    Hi
    I am new to UMA System
    Would like to know if this can be used in mobile device?
    How's the performance in term of loading/ CPU usage?

    Thanks very much.
     
  28. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    UMA was originally designed to work on mobile, using forward rendering, diffuse (non-PBR) shading, gamma instead of linear color, lower poly base models, and being able to remove any unneeded bones from the models at runtime. Over the years it has been upgraded to take better advantage of desktop environments (linear / deferred / PBR / higher poly models), but it can still be used on mobile.

    While I'm not using mobile, and mobile platforms differ a lot, if I remember correctly I imagine you'd be looking at running 5-20 characters on screen at a time while still running your game at a good clip. You'll have to experiment to find out how well your platform performs with your specific workload, but fortunately UMA is free.

    If you try the demo on your device, come back to the forum here and leave a note as to how it went. :)
     
    kenamis likes this.
  29. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    Good news: after a question from them I sent them the link to the uma store Version with some Infos.

    I now got a mail:

     
    sharkapps, pixelR, kenamis and 3 others like this.
  30. Bantichai

    Bantichai

    Joined:
    Nov 6, 2016
    Posts:
    138
    Just got a quick question is it possible to hide arms and/or hide arms individually? I use powertools to save umas into prefabs and I'm trying to build a dismemberment system. Being able to hide individual arms and legs would be nice. Aside from that, if I had to option to just hide the torso and leave the arms, I could clear up some clipping I have with one of the UMA armors.
     
  31. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    There are two options here.
    1. Get the uma content meshes and cut them up and generate left and right arm slots from those.
    2. Use the mask overlay to make the arm invisible, essentially you make a black and white mask texture that you throw on an overlay, when you add that overlay it makes the masked part invisible. In UMA vanilla this requires you to use the cutout shader, when using power tools bone baking this will actually remove the triangles as well, but the vertices are still there so #1 is faster at runtime. There is currently no uma system in place to automatically add these overlays, so you'll have to add these masking overlays by hand/from code.
     
    Bantichai likes this.
  32. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Here is the promised link to the tutorial on creating UMA DCS prefabs that I've finally found some free time to make:

    http://umawiki.secretanorak.com/Creating_a_customizable_prefab

    This is a different type of prefab - it doesn't pregenerate the mesh (like the Power Tools do). Instead, it's a way of predefining and loading a DCS UMA. This has pluses and minuses: The pluses are that it's a full DCS UMA - it's modifiable, knows about it's wardrobe, and it can be completely repurposed if you wish (like all other DCS UMA's). The minuses are that it has to be generated at runtime, and you see the placeholder at design time.
     
  33. Bantichai

    Bantichai

    Joined:
    Nov 6, 2016
    Posts:
    138
    Thanks for the quick reply! I'll have a look into it now based on your advice :)
     
  34. frankmat

    frankmat

    Joined:
    Sep 14, 2013
    Posts:
    42
    Hi! hope someone can help me here. I am developing a basketball game (excuse his lack of clothing!) ;) and have a roughly animated shooting animation against my UMA generated character. All works great.

    The character on the left was the default UMA character dynamically generated and exported. You can see that the animation bone that the ball is part of fits perfectly into his hand. When I increase the height of him though to make him taller (Pretty important in a basketball game!) eg: his height goes from "height\":158" to "height\":188" you can see that the animation also does not scale... so the ball shoots from his chin rather than the original position the animation was in.

    Is there something easy that I am missing here?



    Thanks in Advance!
     
  35. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    From the screenshots, it looks like the animation is fine just the placement of the ball is incorrect. How are you managing the ball? Is it a separate game object and if so, parented to a bone, like the hand?
     
  36. MrG

    MrG

    Joined:
    Oct 6, 2012
    Posts:
    368
    Followed the steps here. When I drag the prefab into the scene and run the scene again, the UMA's disappear and I get a flood of 2 warnings repeated:

    • Exception in UMAGeneratorBuiltin.OnDirtyUpdate: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
      at System.Collections.Generic.Dictionary`2[System.Int32,UMA.UMASkeleton+BoneData].get_Item (Int32 key) [0x000a2] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:150
      at UMA.UMASkeleton.EnsureBoneHierarchy () [0x00045] in D:\Unity\Projects\UMA Stuff\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMASkeleton.cs:652
      at UMA.UMAMeshData.CreateTransforms (UMA.UMASkeleton skeleton) [0x00029] in D:\Unity\Projects\UMA Stuff\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAMeshData.cs:761
      at UMA.UMAMeshData.ApplyDataToUnityMesh (UnityEngine.SkinnedMeshRenderer renderer, UMA.UMASkeleton skeleton) [0x00003] in D:\Unity\Projects\UMA Stuff\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAMeshData.cs:614
      at UMA.UMADefaultMeshCombiner.UpdateUMAMesh (Boolean updatedAtlas, UMA.UMAData umaData, Int32 atlasResolution) [0x00112] in D:\Unity\Projects\UMA Stuff\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMADefaultMeshCombiner.cs:151
      at UMA.UMAGeneratorBuiltin.UpdateUMAMesh (Boolean updatedAtlas) [0x00026] in D:\Unity\Projects\UMA Stuff\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAGeneratorBuiltin.cs:282
      at UMA.UMAGeneratorBuiltin.HandleDirtyUpdate (UMA.UMAData data) [0x0016b] in D:\Unity\Projects\UMA Stuff\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAGeneratorBuiltin.cs:226
      at UMA.UMAGeneratorBuiltin.OnDirtyUpdate () [0x0005c] in D:\Unity\Projects\UMA Stuff\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(Boolean, UMAData, Int32) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:125)
      UMA.UMAGeneratorBuiltin:UpdateUMAMesh(Boolean) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:282)
      UMA.UMAGeneratorBuiltin:HandleDirtyUpdate(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)
     

    Attached Files:

  37. MrG

    MrG

    Joined:
    Oct 6, 2012
    Posts:
    368
    It seems everything has to be done in Play mode...is there no way to work on a UMA directly in the scene?
     
  38. frankmat

    frankmat

    Joined:
    Sep 14, 2013
    Posts:
    42
    The ball is a gameobject but I parent it to an additional bone within animation not to the hand itself. That way I can animate the ball within Motionbuilder for things like dribbling and shooting. (It would be almost impossible to parent it to the hand for something like dribbling between legs and use physics for the bounce between the legs)



    The Ball has a SkinMeshRenderer component and the "Root Bone" property of this component is set to the "BallBone" bone within the animation whenever I need the player to handle the ball. When the ball is in the air I set this to none and use Physics for shooting at the basket and passing.



    So the placement of the ball is perfect when the height of the UMA matches the height of the skeleton within MotionBuilder. Whenever I use a different height for the UMA the bones in the animation of course map to the new height but the additional BallBone which isn't part of the UMA skeleton doesn't... and I get these placement mismatches.
     
  39. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    Yea, it's not matching up because as soon as you change the height the position of the hand changes which then no longers matches up with your ball animation. For something like this you need to use IK or some procedural animation on the ball.
     
    hopeful likes this.
  40. frankmat

    frankmat

    Joined:
    Sep 14, 2013
    Posts:
    42
    Yeah pretty much was about to come to that conclusion myself. I think I will use a combination of IK and ball physics ... It will end up more realistic in the long run anyway.
     
  41. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    Sorry, no there isn't a way to work on a UMA directly in the scene at edit time with the UMA package.

    "Please note that this creates a customizable UMA that is generated on the fly. If you want a compact, unmodifiable prefab that is pregenerated, you'll need to use the power tools."

    It was designed as a runtime editor so that's a current limitation. You can use UMA Powertools (https://assetstore.unity.com/packages/tools/uma-power-tools-2-14249) to design an UMA during runtime and export it out as a prefab. It's static then though. What is it that you are trying to accomplish?
     
  42. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    We are slowly moving towards a future without this limitation, but it will require a lot of work. As mentioned my Power tools can create an uma in the editor, however I had to hide the game object and make it don't save to avoid problems with our run-time oriented resource usage.

    Please note that my power tools is currently out of date and NOT working with the latest version of uma. It is waiting on a new uma bug fix release 2.6.2. Both releases are scheduled for the coming weekend.
     
    runningbird and hopeful like this.
  43. drakedane

    drakedane

    Joined:
    May 23, 2017
    Posts:
    62
    I am concerned that profile for "FernandoRibeiro" says he was last seen on 28JUL17! So, guess I might not expect a quick turnaround. But here goes. Maybe someone else might have some helpful feedback, if Fernando Ribeiro is unable to reply any time soon.

    I just switched to UMA from MCS. I checked out MBLab, as well. And I notice that only MCS seems to clearly have the ability to morph base adult characters into children characters.

    MBLab clearly provides an 18 year old age limit, in terms of reducing age.

    UMA doesn't specify any age, but given that the breasts will only get so small, plus the lack of morphs that would provide more child-like proportions or features, clearly there is a limit in UMA as well!

    My game will mostly be based on female child characters (athletes, actually). But, since switching to UMA, no way I can make my characters look as young as they did in MCS. And I guess I am wondering about the reason for this limitation.

    I am also wondering if I can use a male torso, to simulate the torso of a young girl, but very new to UMA, so not sure about everything I can do with UMA.

    Are there any plans to allow us to create younger UMA characters?

    Do most game developers only have/use adult characters? If so, then I wonder why MCS didn't bother putting in such a limitation.

    Any suggestions about using UMA to model child characters?

    Any tutorials about doing this?

    BTW, FR, the 2 of the 3 links you provide at the top of the page are no longer valid: Asset store link does NOT go to latest version of UMA (UMA2). It goes to old UMA that is no longer available for download. Also the link to the Wiki page does not appear to be working. Only the link to all UMA content seems to be working properly!
     
  44. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    Fernando started UMA, but it was an open project from the beginning, and it is being carried forward by others now.

    While there are default models included with UMA, UMA is the system not the models. You can supply your own models.

    Conceptually, you would need a full body base model for a male and female child. Duplicating these, you would then break that body model up into parts that are called "slots" in UMA. This would enable you to swap out different clothing models.

    Depending on your needs and platform, since a lot of athletic gear is skin tight, you might just add overlays (textures) onto the base body models.

    I'm not that familiar with MCS body morphs, but I suppose it is possible that you could manipulate the MCS figure to what you want for your child athlete, and - if it's possible - freeze it in place, remove the body morphs, and use that as the template for your characters? Just weight the MCS body to the UMA rig as though it was a clothing item, and break it up into slots if you need to.

    (If you need more specific information on this, probably someone here can help. I've never attempted this, but conceptually it sounds like it could work to me.)
     
    Last edited: Sep 6, 2017
    malkere and kenamis like this.
  45. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    Also to add, UMA does support blendshapes now so you could use the blendshapes in your MCS model with the UMA system. The blendshape values can be hooked up to DNA too.
     
  46. sharkapps

    sharkapps

    Joined:
    Apr 4, 2016
    Posts:
    145
    Looks like this is fixed in the 2017.1.1 build released today.
     
    hopeful, Jaimi and kenamis like this.
  47. crudeMe

    crudeMe

    Joined:
    Jul 8, 2015
    Posts:
    92
    Hey, guys.
    After a third glance at UMA, specifically at v2.5, I'm beginning to realize the potential all of you are building. And I'm not scared anymore of uma avatars and want to give it a try.

    I'm following 2 tutorials of content creation for v2.5 (one by Secret Anorak and the other one for DCS by The Messy Coders).

    I want to make a motorcycle helmet. I've successfully created all those uma materials, slots and everything ending on wardrobe recipe. Now, I can add my helmet to uma avatar and it works when I change DNA.

    I'm having difficulties creating a helmet with a helmet visor. My current helmet model contains two submeshes - helmet and visor - using two materials. As I've tried creating multi mesh slot following same tutorials, I can say that only first mesh is taken. Probably, I just got confused by all new concept with all those uma-stuff and missed something. Or it's by design.

    I could place Visor to a new wardrobe slot, which is a bit messy to manage. Or I could use one transparent material for a whole helmet + visor with alpha-mask, covering helmet areas.

    Is there a place where I can read about it?) Or could you give me a hint what's the right way of doing it?
     
    Last edited: Sep 11, 2017
  48. drakedane

    drakedane

    Joined:
    May 23, 2017
    Posts:
    62
    Thanks so much for your reply! Since I have now gone so far with UMA, given your reply and the quick turnaround, I am hoping this forum will be a good support option for UMA.

    Thanks for that. I am still too new to all of this to easily implement what you suggest; but I will keep this in mind, as I develop my skills.

    However, for now, I have a new issue: I managed to use UMA to create all of the child characters I need. They don't look as young as they did, as MCS characters, but they should be fine. Unfortunately, I tried a test build yesterday, after successfully building UMA characters and adding them to my game scenes. Characters look and work great in Unity editor, when I run the game. But, when I did the test build, I discovered that NONE of the UMA characters are displaying!

    Oddly enough, I am not getting the "no camera rendering" error. In fact, I can move in circles, so I can look around. But I cannot move forward/backwards. Camera is child of the player character. So, I should get "no camera rendering", if the character was actually not there. Do I have to do anything special to get UMA characters to show up in a build? Or did I do something wrong, so characters are now being suppressed in the build, for some reason??

    Thanks again, for replies! Thanks in advance, for any additional support!
     
  49. drakedane

    drakedane

    Joined:
    May 23, 2017
    Posts:
    62
    That sounds intriguing! But I am still too new to be able to implement anything like this; but I will keep this in mind - especially given the current issue I am having with getting UMA characters to show up in my build. If I can get UMA to show up in build, I will probably leave good enough alone. But good to know there might be other options. Thanks for your reply! It really helps!
     
  50. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Wardrobe recipes can contain multiple slots and overlays. So just make one slot for the helmet, and one for the visor, and add them both to the helmet recipe.

     
    crudeMe likes this.