Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    My understanding is that new code is a fix for when you have the regular UMA skeleton, but on slots which were exported from Maya or Max rather than Blender. If you're exporting all of your own slots it's probably safe to disable it and go back to the old version. In my opinion that stuff should probably be happening in the editor rather than at runtime, but it's not on anyone's todo list AFAIK. You can submit a bug about the slowdown at: https://github.com/huika/UMA/issues
     
    hopeful likes this.
  2. Deleted User

    Deleted User

    Guest

  3. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Thanks for the heads up, unfortunately I no longer have a pro license so I couldn't profile this change. I'll see if I can somehow limit the number of times this matrix compare is being called 15k sounds like bones ^ 2 which suggest I just did a brute force which should be easy to optimize now that I know it's needed.
     
    hopeful likes this.
  4. tomi-trescak

    tomi-trescak

    Joined:
    Jul 31, 2013
    Posts:
    78
    Fernando, after I have removed and added UMA back in place and used the "NoJaw" race, avatars no longe appear with open mouth BUT I no longer can animate talking. Is there any other possible solution? The only option that currently seems is to add mandibule position into every animation, which is quite tedious. UMA, create clean animatiom seems not doing anything for me .. or at least I can't see any results. Thanks!
     
  5. Hoxolotl

    Hoxolotl

    Joined:
    Sep 24, 2011
    Posts:
    7
    Could somebody help me with my overlays? it gives a weird checker pattern and I have no idea why:
     
  6. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Create Clean animation doesn't actually do anything with the jaw, so that won't fix it. This is a Mecanim bug, but it doesn't seem to have appeared in the issue tracker since I reported it months ago, so you could try reporting it yourself. As far as I can tell your options are to fix the animations, leave out the jaw and animate it yourself, or correct the broken animations in LateUpdate().
     
  7. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    That looks very strange and I haven't seen anything like it.

    I do have one question, is your uv coordinates always in the 0-1 range? If you have UV coordinates outside the 0-1 range you can get incorrect results.
     
  8. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    Could you post the resulting normal map? This usually happens if you bake normal maps from a faceted lowpoly mesh.
    Cheers
     
  9. Hoxolotl

    Hoxolotl

    Joined:
    Sep 24, 2011
    Posts:
    7
    I took a look and indeed the normal map looks terrible. What is a faceted lowpoly mesh? I know what a "lowpoly mesh" is, it's the "faceted" I never heard before, although I suspect smoothing faces has something to do with it.
     
  10. Hoxolotl

    Hoxolotl

    Joined:
    Sep 24, 2011
    Posts:
    7
    I might have found the cause, no idea how to fix it yet thaugh.
     
  11. Hoxolotl

    Hoxolotl

    Joined:
    Sep 24, 2011
    Posts:
    7
    The import size on the normal was set too low... I'm not worthy.
    Mandatory "UMA is awesome" as apology here.
     
    hopeful likes this.
  12. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    Yep, if you´ve generated the normal map texture, Smoothing angles can most times be set to 180.
    You also need to check if when generating the normal maps at blender or other 3d software, the low poly mesh and high poly mesh also had shading->smooth set. This is an example: http://wiki.blender.org/index.php/Doc:2.6/Manual/Modeling/Meshes/Smoothing
    Cheers

    Edit: btw, the normal map don´t look correct, both colors and the kind of information won´t provide correct results.
     
  13. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
  14. cookimage

    cookimage

    Joined:
    Sep 10, 2012
    Posts:
    729
    Any reason why you can't set UMA hair slot to use a transparent material as that's whats needed to get proper looking hair. Does anyone have a work around it?
     
  15. tomi-trescak

    tomi-trescak

    Joined:
    Jul 31, 2013
    Posts:
    78
    Fernando, ecurtz. I got quite far with solving this problem which probably lies within the animations stored in the UMA_Unified.fbx. There, the frame 1 holds that animation with mandibule down. Yet I still have a problem. This is what I did:

    1. Downloaded the ContentPack_1.1.0.1
    2. Opened the MaleUnified.blend
    3. Removed all the animations
    4. Exported to FBX (Exported only the mesh and a bone structure)
    5. Created an empty GameObject
    6. Added this new FBX as a child of this gameobject and created a new Prefab.
    7. Set this Prefab to the HumanMale race

    But, when I am now generating the new UMA I get this error:

    Code (CSharp):
    1. Exception: Bone not found.
    2. UMA.UMASkeletonDefault.SetScale (Int32 nameHash, Vector3 scale)
    3. HumanMaleDNAConverterBehaviour.UpdateUMAMaleDNABones (UMA.UMAData umaData, UMA.UMASkeleton skeleton) (at Assets/UMA/UMA_Assets/DNA/HumanMaleDNAConverterBehaviour.cs:754)
    4. UMA.UMAData+UMARecipe.ApplyDNA (UMA.UMAData umaData)
    5. UMA.UMAData.ApplyDNA ()
    6. UMA.UMAGeneratorBuiltin.UpdateUMABody (UMA.UMAData umaData)
    7. UMA.UMAGeneratorBuiltin.HandleDirtyUpdate (UMA.UMAData data)
    8. UMA.UMAGeneratorBuiltin.OnDirtyUpdate ()
    9. UMA.UMAGeneratorBuiltin.Update ()
    10.  
    This is the line:

    Code (CSharp):
    1.         ////Bone structure change
    2.         skeleton.SetScale(UMASkeleton.StringToHash("Global"),
    3.           new Vector3(
    4.               Mathf.Clamp(1 + (umaDna.height - 0.5f) * 1.0f + (umaDna.legsSize - 0.5f) * 1.0f, 0.5f, 3.0f),
    5.               Mathf.Clamp(1 + (umaDna.height - 0.5f) * 1.0f + (umaDna.legsSize - 0.5f) * 1.0f, 0.5f, 3.0f),
    6.               Mathf.Clamp(1 + (umaDna.height - 0.5f) * 1.0f + (umaDna.legsSize - 0.5f) * 1.0f, 0.5f, 3.0f)));
    Do you have any idea what I missed?

    [Edit] - Avatars have their mouth shut, but they lost the ability to talk ;( Yet the problem with the bone remains.

    Thanks!
     
    Last edited: Nov 27, 2014
  16. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
  17. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    The animation from MaleUnified.blend shouldn´t matter at all, for Mecanim, what really matters is the base tpose information, and how it´s set at the mecanim rest tpose.
    To be sincere, talking animation using only jaw is so bad that I never considered it being used on a final product. I really recommend you look for a more complete facial animation solution using the full range of UMA facial bones.
    This is a raw example of what can be archived with those bones:


    For full facial animation, I usually recommend working with a separated animation layer with full influence for facial bones only. Facial animation should be done avoiding adjust bones completely, this way you can keep facial animation + head customization.
    Cheers
     
    Zante likes this.
  18. cookimage

    cookimage

    Joined:
    Sep 10, 2012
    Posts:
    729
    Thanks after looking at his hair I found out what I was doing wrong with my Material lol simple thing!!! I used a transparent diffuse material shader instead of a transparent Bump diffuse so it was not rendering the hair because it did not have a normal map setting on it lol.
     
  19. 138sd36675

    138sd36675

    Joined:
    Nov 29, 2014
    Posts:
    4
    Hi, I am new to unity and blender, and would like to ask for your help.

    I imported a customized animation into the animator "locomotion" and set default. While I ran UMA example “Scene02 - serialized”, I encountered a strange problem as shown in the video: http://www.mediafire.com/watch/edyob9snrbq2sfc/adding_animation_problem.avi

    2 avatars were animating properly while another 2 were rotated by 90 degree along z axis, and 1 of them just did not receive any animation and kept floating upward.

    Could you please point out the reason for that and make a simple tutorial on how to add animation for UMA avatar.

    Besides, are blender rigify tool and IK constraints compatible to UMA and mecanim using blender FBX 7.4 binary export? I also noticed in FBX 7.4 the animation must be baked. Can baked animation be retargeted on other avatar?
     
    Last edited: Nov 29, 2014
  20. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    I don´t know if this is an intended behavior of Mecanim, but if you´re retargeting an animation from an identical rig, instead of retargeting it might lead to full animation playback, this might result in what you´re getting (not sure why the last avatar is not animated based on my brief analisys).
    Try renaming the base avatar rig (the one you export with the animation clips) for something different like retargetRig instead of UMA_Male_Rig/UMA_Female_Rig.
    Cheers
     
  21. buckius82

    buckius82

    Joined:
    Nov 19, 2013
    Posts:
    40
    I Love UMA, And Wanted to Share a problem And solution I recently had.

    Problem: Having To create Lists For Overlays and Slots Filling them in the Specter <-- time Vampire

    Solution: Standardized Naming Convention

    for my own Project I created a Standardized Naming convention
    all slots begin with 3 numbers
    the first Digit Denotes Gender:
    0 - Female
    1 - Male
    3 - Uni

    the Next 2 Are the Defined slots
    Slot Catagories
    00 = torso
    01 = head
    02 = hands
    03 = legs
    04 = feet
    05 = eyes
    06 = eyes balls
    07 = ears
    08 = mouth
    09 = inner mouth
    10 = nose
    11 = eyelashes
    12 = Hair
    13 = Beard
    13 = Horns
    example of how it looks
    Code (CSharp):
    1. void DefineSlots()
    2. {
    3. // Torso mesh
    4.             umaData.umaRecipe.slotDataList[0] = slotLibrary.InstantiateSlot("100MaleTorso");
    5.             // Body skin
    6.             umaData.umaRecipe.slotDataList[0].AddOverlay(overlayLibrary.InstantiateOverlay("100MaleBody02", DefalutSkinColor));
    7.  
    8. // Torso mesh
    9.             umaDataFemale.umaRecipe.slotDataList[0] = slotLibrary.InstantiateSlot("FemaleTorso");
    10.          
    11.             // Body skin
    12.             umaDataFemale.umaRecipe.slotDataList[0].AddOverlay(overlayLibrary.InstantiateOverlay("000FemaleBody01", DefalutSkinColor));
    13.  
    14. }
    The Body And Head are the most Important for the Overlays that deal with Hair; Head and Body , Make- Up, War-Paint, Tattoos
    If the Overlay will Cover The Body for example: Chest Hair it always is added to slot 0's overlay
    If the Overlay will cover the face: eyebrows, hair !!!! overlay format !!!, Added to slot1's overlay

    Naming Convention For Overlays

    the First Digit Is used to denote gender just like the Slots
    the second denotes the specific slot this overlay needs to be added too
    the third is and index limit
    the index limit prevents no more than one of like overlays being added
    for example a characters overbody array has a max of 10,
    index 0 is always the body
    a function is used to incriment through the array and apply the overlays in order preventing multiple bodies

    Body
    00 - body, 01 - tattoo, 02 - bodyhair, 03 - body paint, 04 - back, 05 - chest, 06 - left arm, 07 - right arm, 08 - left leg, 09 - right leg.
    all limbs use the same body overlay so you just add them

    Face
    10 - head, 11 - hair, 12 - eyebrows, 13 - warpaint, 14 - beard , 15 - blush, 17 - eyeliner, 18 - eyeshadow, 19 - nose
    these face slots and overlays all share the same head overlay

    Lips use slot 9 in the standard system so they don't get added to face,
    Eye balls use slot 6
    Ears use slot 7 Uma's default human overlay is on the head overlay but the elf has its own overlay

    so to add add a slot like a beard or lip - stick would look like:

    Code (CSharp):
    1. umaData.umaRecipe.slotDataList[4].AddOverlay(overlayLibrary.InstantiateOverlay("114MaleBeard01",DefalutHairColor*0.15f));
    2.  
    3. umaDataFemale.umaRecipe.slotDataList[9].AddOverlay(overlayLibrary.InstantiateOverlay(09lipstickTextures[selectedFemaleLipstickTexture], lipstickColors[selectedFemaleLipstickColor]));
    So if you wanted to sort the overlays names in list so the lists can be used in a Character creator without having to manually input you could:
    This is just an exert with the beginning of the function i used.

    Code (CSharp):
    1. public OverlayLibrary OLibrary; // contains all overlays
    2.  
    3. public List<string> MaleOverlays= new List<string>(); // strings of all male overlays
    4. public List<string> FemaleOverlays= new List<string>();// strings of all male overlays
    5. public List<string> UniSexOverlays= new List<string>();// strings of all male overlays
    6.  
    7. // Sorts and Fills all lists
    8.  
    9. public void fillGenderLists()
    10.     {
    11.         if( OLibrary == null )
    12.         {
    13.             OLibrary = GameObject.Find("OverlayLibrary").GetComponent<OverlayLibrary>();
    14.         }
    15.         var temp = OLibrary.GetAllOverlays();
    16.         for (int i = 0; i < temp.Length; i ++)
    17.         {
    18.             var name = temp[i].overlayName;
    19.     for (int i = 0; i < temp.Length; i ++)
    20.         {
    21.             var name = temp[i].overlayName;
    22.  
    23.             // overlay is a male overlay
    24.             if(name[0] == '1') // compares first digit Notice apostrophe to denot char not string
    25.             {
    26.                 MaleOverlays.Add(name);
    27.                 // overlay belongs to body lists
    28.                 if(name[1] == '0')//  Notice Compairs second overlayname char if it is 0 it belongs body
    29.                 {
    30.                     // from hear we compare the third char and add it to the proper list
    31.                     if(name[2] == '0')//  Notice Compairs third overlayname
    32.                     {
    33.                         OverlaySkinMale.Add(name); // list of all skin textures
    34.                         continue;
    35.                     }
    36.                     if(name[2] == '1')// add to hair list
    37.                     {
    38.                         OverlayBodyHairMale.Add(name); // list of all hair
    39.                         continue;
    40.                     }
    41. }
    42. if(name[1] == '1')//  Notice Compairs second overlayname char if it is 1 it belongs face
    43.                 {
    44.                     if(name[2] == '0')// add to Head list
    45.                     {
    46.                         OverlayHeadMale.Add(name);
    47.                         continue;
    48.                     }
    49.                     if(name[2] == '1')// add to hair list
    50.                     {
    51.                         OverlayHairMale.Add(name);
    52.                         continue;
    53.                     }
    54. }
    55.  
    Implementation: All I had to do was go int the overlay list and adjust the names of the uma default overlays.
    writing this post took longer.
    When i finish the the component i will place it on either the unify wiki or on the uma wiki.
    so people can chop it up and use it as needed
    i have to finish the ApplyAllOverlays() function and some others

    the component will go on UMA Root Object.

    as i learn more about unity and Uma. i hope to have a component that will be able to add to the libraries from a resources folder.


    Sorry about the Length
     
    Nanako likes this.
  22. 138sd36675

    138sd36675

    Joined:
    Nov 29, 2014
    Posts:
    4
    Problem solved, thx.
     
    Last edited: Nov 30, 2014
  23. Soshius

    Soshius

    Joined:
    Nov 26, 2014
    Posts:
    4
    Hi i'd like to know if someone is getting issue with UMA and Unity 5 Beta ?
     
  24. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    =)
     
  25. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    You might want to check this branch from Git, provided by Joen
    https://github.com/huika/UMA/tree/UMA20
     
  26. Soshius

    Soshius

    Joined:
    Nov 26, 2014
    Posts:
    4
    Hi Fernando ! Thanks ! I'll check that :)
     
  27. jonboris

    jonboris

    Joined:
    Jan 8, 2009
    Posts:
    78
    Hi Fernando,

    I'm using UMA to create a customizable avatar system for a tablet-based educational app. It's working well so far, I've managed to create a custom race which is a simplified toon character, complete with DNA. Great!

    What I'm struggling with is that the muscle settings I've set on the combined model's Mecanim avatar are not propagated to new characters created at runtime using UMA. The new characters always seem to use the default muscle settings, which causes the arms to sit badly.

    I've looked through the various components but can't see any way to change this... is it possible to use custom Meccanim muscle settings?

    p.s. Once characters have been created at runtime, in the editor I can drag on the combined model's Mecanim avatar, so I'm assuming there's some way to do this properly!

    Thanks, Jon
     
  28. siblingrivalry

    siblingrivalry

    Joined:
    Nov 25, 2014
    Posts:
    384
    Hi, i am wanting to change the face for non Caucasian characters. Are there any license restrictions?

    Also, are there any issues we should be aware of before customising?

    thanks
     
  29. buckius82

    buckius82

    Joined:
    Nov 19, 2013
    Posts:
    40
  30. Jeff-Kesselman

    Jeff-Kesselman

    Joined:
    Apr 5, 2010
    Posts:
    99
    So... I am sure this has been asked before and I'm sorry, but ive spent two days now trying to wrap my head around UMA and i havent found an answer to this with web searches...

    All the demos and tutorials for UMA seem to use the same basic set of slots for men or for women and then just chnage the "overlays" textures and DNA (bone stretching) to get different avatars.

    I'm trying to learn how to create an avatar that can equip and unequip things like armor and weapons. I have a pack that is theoretically armor for UMA but just adding the armor pieces as additional slots doesn't seem to work right.

    Is there a tutorial somewhere for how one adds slots or changes the geometry in
    existing slots?

    Thanks
     
    Sir-Spunky likes this.
  31. Korolev

    Korolev

    Joined:
    Sep 20, 2012
    Posts:
    22
    Please tell me. When will support unity 5?
     
  32. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    This branch at github is designed for Unity 5 support - https://github.com/huika/UMA/tree/UMA20/UMAProject
    The code is complete, but nobody has come forward to update the textures for the new standard shader.
     
  33. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Are you trying to add them via your own code or put something into the random set used by the demo scene? How is it not working? They don't show up at all, or they show up but are broken in some way?
     
  34. Sir-Spunky

    Sir-Spunky

    Joined:
    Apr 7, 2013
    Posts:
    132
    Hi. I'm very new to UMA, but it seems amazing.

    Are there any packs in the Asset Store available with facial expressions or facial animations?

    I assume I cannot create facial expressions directly in Unity, but have to use Blender, right?
     
  35. buckius82

    buckius82

    Joined:
    Nov 19, 2013
    Posts:
    40
    Unity Does allow you to make animations i have used it for animating doors and the like. A face though i would use 3ds or blender.

    I would probably try using the Default dude first since it has less bones if your new to animation rigging; and see how the face anims look on uma once they've been created.
     
  36. Sir-Spunky

    Sir-Spunky

    Joined:
    Apr 7, 2013
    Posts:
    132
    That's really cool. I'll give it a go. Thanks for the info!
     
  37. Foxxis

    Foxxis

    Joined:
    Jun 27, 2006
    Posts:
    1,108
    Hi everyone & Fernando!

    I have been focusing on other things for the last few months and have been trying to quickly get a feel for what has changed in the UMA project, but with little success (and I do not have time to read every page of the thread :) ). So:

    1. Is there an updated change file somewhere? The one on GIT has not been touced since 1.0.1.0 or something like that. :)

    2. Is UMA considered working with Unity 5? If not, how far along is it?

    Many thanks in advance! :)
     
  38. 138sd36675

    138sd36675

    Joined:
    Nov 29, 2014
    Posts:
    4
    Please ignore or delete this reply.
     
    Last edited: Dec 10, 2014
  39. l0cke

    l0cke

    Joined:
    Apr 15, 2012
    Posts:
    438
    I ve noticed, that morphing is done though bones, so character has if I remember well 157 bones. How big performance impact does it have in compare to vertex morphing, or some blend shapes? 100 characters on the screen *157 bones is a lot. Are there any performance optimizations (bones for morphing are usually used only during creation of character)?
     
  40. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
  41. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    UnLogick's UMA Power Tools asset can bake away the adjustment bones and just leave the ones required for animation. https://www.assetstore.unity3d.com/en/#!/content/14249
     
  42. l0cke

    l0cke

    Joined:
    Apr 15, 2012
    Posts:
    438
    Thanks, looks well, unfortunatelly without source fot this bone reduction. I am actually more interested into algorythm itself, not code.
     
  43. Deleted User

    Deleted User

    Guest

  44. TH-Interactive

    TH-Interactive

    Joined:
    May 26, 2013
    Posts:
    34
    Hi everyone,
    I'm new to UMA and following the tutorials on youtube and documentation.
    I've scoured this thread to try and find a solution to the problem I'm having but have been unsuccessful.
    I apologise for using so many pictures but it's the best way to show what settings I'm using.

    I'm using Blender to make shoes to replace the feet for the male avatar.

    In the video tutorials Fernando doesn't seem to parent the boots to the rig, he just adds an armature modifier to the boots.

    I have tried the same thing, and transferring weights is successful inside Blender. Rotating the bones also animates the shoes - they seem to be successfully weighted.

    I then select both the shoes and the armature (as you can see) and then export to fbx with the following settings:


    Loading into Unity unfortunately I don't get a skinned mesh rendederer, I only get a mesh renderer.


    So then I go back to Blender and try parenting the shoes to the rig in the following way:



    Upon importing into Unity3D we have great success!


    So now we can try to make the slot.
    Following the tutorial I set the data piece by piece and hit Create Slot but get this error:


    I downloaded the latest version from GIT and used source code so I can see where it's failing.
    It appears to be searching for a match to the bone "Global" in the shoes to the same one in the unified mesh but in the unified mesh it is starting from the bone "Hips" so it never finds the match.

    I edited the code to return null gracefully if it can't find a match (rather than crashing):


    Now creating a slot is successful!
    But the result is bad:


    What have I done wrong and how can I fix it?

    Thanks for your help!
     
  45. eyal_xtr

    eyal_xtr

    Joined:
    Oct 30, 2013
    Posts:
    5
    Hello all,
    First of all, UMA is amazing! I really appreciate the amount of work you have put into this, so well done!
    I played around with it and got very good results.
    I am now interested in creating a transparent avatar for my game, as if they are invisible.
    I am fine that the clothes they are wearing will not be transparent; I am interested only in the skin.
    I tried modifying the UMACrowd script (specifically the method DefineSlots()) to have all the overlays use an alpha value of 0 instead of 1 (i.e., every line which either has new Color() or is using skinColor or HairColor), but to no avail - I get the same results regardless of the alpha value.
    Is it possible the alpha value is ignored? Changing the RGB values in the above locations to being all 1.0f did cause the avatar to become black.
    Thanks in advance for your help!
     
  46. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    The default shader does not support transparency, you need to change the shader to a transparent shader.
     
  47. mikezenox

    mikezenox

    Joined:
    Oct 18, 2012
    Posts:
    55
    I'm having the same error when trying to create a slot, and manually creating the slot results in similar deformations of my mesh. any ideas?
     
  48. Deleted User

    Deleted User

    Guest

    I'm not the first person to mention this error..

    This error is happening for me in the MaterialBuilder when I click "Create Slot". I followed the tutorial for slots on youtube exactly. I see someone else back in March posted on this forum about this exact same error. Nobody really gave him an answer for this error, except he must have gotten past it, and later he mentioned something about the code looking for a "Global" bone but the code can't find it.. possible bug?

    ArgumentNullException: Argument cannot be null.
    Parameter name: key
    System.Collections.Generic.Dictionary`2[UnityEngine.Transform,UnityEngine.Transform].TryGetValue (UnityEngine.Transform key, UnityEngine.Transform& value) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:588)
    UMA.SkinnedMeshAligner.RecursiveFindBoneInHierarchy (UnityEngine.Transform bone, UnityEngine.Transform hierarchyRoot, System.Collections.Generic.Dictionary`2 boneMap)
    UMA.SkinnedMeshAligner.RecursiveFindBoneInHierarchy (UnityEngine.Transform bone, UnityEngine.Transform hierarchyRoot, System.Collections.Generic.Dictionary`2 boneMap)
    UMA.SkinnedMeshAligner.RecursiveFindBoneInHierarchy (UnityEngine.Transform bone, UnityEngine.Transform hierarchyRoot, System.Collections.Generic.Dictionary`2 boneMap)
    UMA.SkinnedMeshAligner.FindBoneIndexInHierarchy (UnityEngine.Transform bone, UnityEngine.Transform hierarchyRoot, System.Collections.Generic.Dictionary`2 boneMap, System.Collections.Generic.Dictionary`2 boneIndexes)
    UMA.SkinnedMeshAligner.AlignBindPose (UnityEngine.SkinnedMeshRenderer template, UnityEngine.SkinnedMeshRenderer data)
    UMAEditor.UMATextureImporterUtil.CreateSlotData (System.String slotFolder, System.String assetFolder, System.String assetName, UnityEngine.SkinnedMeshRenderer mesh, UnityEngine.Material material, UnityEngine.SkinnedMeshRenderer prefabMesh)
    UMAEditor.UmaTexturePrepareWindow.CreateSlot_Internal ()
    UMAEditor.UmaTexturePrepareWindow.CreateSlot ()
    UMAEditor.UmaTexturePrepareWindow.OnGUI ()
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)

    So this error appears to be happening again with me.







    I tried setting the rig to every option available down to Spine1, and then gave up trying any further options down the line.

    If anyone knows why this error is occurring, please reply. I may get past this error by the time you reply, but I'm sure your reply will help someone else out. Also this should be considered a bug because if I understand correctly, the bone is there, it's just failing to find it because it expects it to be a child of something... aka it's looking in the wrong spot for the bone, something like that.

    Unfortunately, I can't edit the code where there error is happening because I guess it's in the DLL. Any help would be greatly appreciated.

    EDIT: I see that the guy above me posted about the exact same error. If anyone finds a solution, please let us know.
     
    Last edited by a moderator: Dec 11, 2014
  49. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    This problem keeps popping up, normally it's linked to adding skinning to bones that Fernando didn't add skinning to, but clearly we need the code to be more robust and we need a proper error code if something is truly a miss.

    Please send me your model and I'll take a look at what goes wrong.

    Please send me your model and I'll take a look at what goes wrong.

    Edit: Same issue, send me your model and I'll try to get this sorted properly this time.
     
    hopeful likes this.
  50. Deleted User

    Deleted User

    Guest

    Hey I found a possible temporary fix to the "ArgumentNullException: Argument cannot be null. Parameter name: key" error. This is probably just a hack solution but for now it seems to be working.

    Just use the same thing for both renderer slots, in the materialbuilder. Aka, if you're making a boots like me, drop the boots into both slots. This may not work if your mesh is rotated somehow wrong or whatever. My understanding, it only needs the unified mesh (in the top slot) to help it figure out the correct orientation of your mesh. But if your mesh is already oriented correctly, shouldn't even be necessary? Anyway, this seems to work for me to do this: