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. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Actually this is a common problem caused by the unity pro render textures. When going from full screen to windowed or generally changing resolution using DirectX all the textures are corrupted.

    There are two ways to fix this problem.
    1. Use the slightly slower convertRenderTextures option, this copies the atlassed texture from gpu to cpu. Once the texture is in RAM unity will recover gracefully and you'll never see this glitch again.
    2. Detect that your RenderTextures are no longer valid and tell UMA to rebuild them. You can use the RenderTexture.IsCreated to detect this problem and then use the UMAData.Dirty(bool dnaDirty, bool textureDirty, bool meshDirty); to tell UMA to rebuild the atlas only: "umaData.Dirty(false, true, false);"
     
  2. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Just wanted to share a little WIP screenshot of me converting existing skinned meshes to work with the UMA base meshes. Essentially it copy the skinning information from the original model and use it as reference as it re-skins it to UMA.

    This works well for most areas where uma have one bone per body part: Feet, Leg, Hands, Arms, Helmet.

    But most models does not support the belly or breast bones that uma have or have the same detailed facial bones as uma so up close facial stuff wont work either.


    The original Shoulders, Helmet and Belt comes from the Captain Scott Dow by mr_Necturus. And then I used my wip tool to convert it to the uma base mesh.

    I will continue to work on this tool, but as I said it's not a silver bullet, but the results speak for themselves.
     
    hopeful likes this.
  3. cyby89

    cyby89

    Joined:
    Apr 30, 2014
    Posts:
    35
  4. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    @judah4, That second screen shot looks pretty trippy. Reminds me of book and magazine cover art from the 50s to 70s. :)
     
  5. judah4

    judah4

    Joined:
    Feb 6, 2011
    Posts:
    256
    I see. I can have something checking the isCreated. Is there a way to fire an event when the the resolution changes?

    @hopeful, yeah, it sure is trippy. The pattern even moves around.

    @cyby89 Oh, I think I know how I can use this. Thank you
     
    Last edited: Sep 4, 2014
  6. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    Hi there,

    i want to attach this briefcase:

    Aktenkoffer Rigging.jpg

    to the UMA-Rig.
    Is it able to create new bones in the joints-hierarchy or do i have to use the rig how it´s modeled now?
    Additionally is it able to force the avatars hand to be closed using the briefcase-slot?
    Do i have to do that in blender or in Unity?
     
  7. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    You can add the new bones, and even add some joint physics to the briefcase so that it sways according to the hand animations. I think that would be super cool.

    The way to make the hand close on the handle requires you to play a hand closed animation. This is complex setup most likely involving layers in your Animation Controller. The UMA system will not expand into this space! It does raise the question if the SlotData should be able to fire a callback to trigger such actions, but since there is no generic way to handle these events I see no reason to add this complexity at this time.
     
  8. Breyer

    Breyer

    Joined:
    Nov 10, 2012
    Posts:
    412
    maybe when u drop support for older unity version you could use UnityEvent for event handling?
     
  9. cyby89

    cyby89

    Joined:
    Apr 30, 2014
    Posts:
    35
    Just wanted to share a preview of the character customizer of Battlefall. It shows how flexible UMA is. You can create a character by yourself or generate one from the following templates:
    Human – Orc – Wood Elf – Frost Elf – Fire Elf – High Elf – Piggy – Troll – Norsk
    Preview of 3 armors from the asset store are also included.

    http://battlefall.com/charactercustomizer/

    Thanks to everybody who contributes to UMA!

     

    Attached Files:

  10. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65

    So is it possible to use another rig or is it only allowed to bind bones on the assecoires? I want to do that as simple as possible....
    A callback isn´t needed i think. U can ask every avatar which "classes" of assecoires are bind and tell them to use the right animation-controller. A präfix in the Slot-library should be enough.

    Moreover i got a problem with the animations, using UMA.
    First i got a problem with gravity, so i freezed the y-component in the animations itself. But now i get skating-problems. The foot-IK is enabled, too. That´s confusing me, because this problem only exist with Raw-MoCap-Data (u can get in the assetstore) but not with the animations, included in the UMA-Package.

    :mad: New solutions means new problems....
     
  11. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    If you want a completely different rig you should create a different uma "Race". The male and female rig is slightly different and the race system handles this difference.

    The race prefab contains the base skeleton that slot data can add on top of, but the base race skeleton cannot be altered by slots, only added to.
     
  12. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    Hi there,

    why is this beard-texture

    Jacobs_Hair_D.jpg

    black, if i use the haircolor?
    Should i invert this texture? Doesn´t make sence for me....
     
  13. Rotary-Heart

    Rotary-Heart

    Joined:
    Dec 18, 2012
    Posts:
    813
    Hello I have been trying to build this amazing asset for WP8, but I got an error will the LitJson.dll, is there any fix for it? I have been reading the thread but haven't found anything.

    Thanks
     
  14. Archania

    Archania

    Joined:
    Aug 27, 2010
    Posts:
    1,662
    Hi all.
    I have been trying to figure this out for awhile now but am unable.
    I have a character creation scene where you can adjust something of the DNA things like stomach, etc. That gets saved out to a string.
    You then are able to select your character you want to play with. This will load up the Recipe String and populate that field in the UMADynamic Avatar that is attached to my player. The only thing that isn't applied to the UMAData is the Animator since that is on the parent gameobject. The player comes in invisible. I can go and check the Skinned Mesh Renderer on the gameobject but the materials is not correct nor is the shader. I noticed that it would replace these to the correct items. But mine is not.





    Really confused on why this is happening? Any ideas?
    I also checked to make sure that the Recipe saving out is the same as the original (you can see the UMA character when you are creating them).
     
  15. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    The way all shader coloring works is that it takes the texture color and multiply with the color you specified. So you should paint your beard texture white to give you the full range of colors. The alpha channel is where you should put your effort.

    Alternately you can use the OverlayData.SetAdditive(0, color) method to specify a rgba value that is added on top of the aforementioned multiplication. So if you use this method you can keep using your current texture. Just be sure to set (r,g,b,0) on the additive color so you don't mess up your transparency.
     
  16. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,775
    hopeful likes this.
  17. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    The way I recall nobody made the LitJson.dll work on WP8, it's a completely separate open source project that we included for convenience. But it is only used for the recipe text serialization which isn't essential to the rest of UMA.

    As an exercise I tried removing the LitJson.dll from my project, it took a little time but it was entirely possible. I added a compiler define called StripLitJson and if that was set for the project all parts of the code that used LitJson would be ignored.

    I've committed my changes to https://github.com/huika/UMA I can make no guarantees this will make the rest of WP8 work, but removing the DLL from the project and setting the define StripLitJson will at least make uma work without the dll.
     
    Rotary-Heart likes this.
  18. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    This sounds wrong, does your code look like this?
    Code (csharp):
    1. var recipe = ScriptableObject.CreateInstance<UMATextRecipe>();
    2. recipe.recipeString = myRecipeString;
    3. dynamicAvatar.Load(recipe);
    4. Destroy(recipe);
    Because this is the correct snippet to load an uma character from a string.
     
  19. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    Thats how i thought it would work. On the white spaces the color should be "Hair" cause (r,g,b) * (1,1,1) = (r,g,b).
    Why is it turned black. I dont want the white spaces to be transparent so alpha is set to 1. The gray hairs should be a little bit darker.
    I don´t get it. I think I´ll try to make it transparent. Maybe it´ll become a better result....

    Additionally do i have to script that effect?
    I thought it´s been scripted by UMA-Team. Isn´t it able to change that things in the RandomSet-Inspector?
     
  20. Homer-Johnston

    Homer-Johnston

    Joined:
    Nov 26, 2012
    Posts:
    46
    Hey there, first time playing with UMA - really, really impressive stuff! Quick question: we want to have several LOD models for our characters at difference distances. How might we generate different LODs of avatars? It seems like we should generate different LOD source-meshes (slots), then have multiple UMA definitions for each character; one per LOD. Does this sound plausible? Or might there be a better way to do this?
     
  21. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Thanks.
    We've often discussed LOD but haven't come up with a final solution for it. I recommend making your LOD slots with identical naming and then using a different RaceLibrary, SlotLibrary and OverlayLibrary for each layer of LOD.
     
  22. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    It's hard to look at your textures and see what's what. It's all white and black and I can't see the alpha channel.

    The RandomSet does not support the additive system, but the raw UMAData and Recipe editor does.
     
  23. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Fixed a bug in the RecipeEditor and the UMADataEditor, the two editors now works correctly. The fixes have been pushed to git repository.
     
    CrowdCruncher likes this.
  24. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    Hi there,

    the Update doesn´t work. I just get a few compiler Errors. Is that right to override the folders?
    Thank god - i made a backup. :D

    Other theme:
    How is it managed with the OverlayListSource?
    I´ll have a lot of textures and i think it would be nice to reduce the drawcalls.
    Moreover how should i make senceful Atlasses?
    Are that atlasses created by UMA itself at runtime?o_O
     
    Last edited: Sep 14, 2014
  25. Homer-Johnston

    Homer-Johnston

    Joined:
    Nov 26, 2012
    Posts:
    46
    I've seen a few people trying to get Skyshop running, but no concrete instructions. Figured I'll post some hints in case they help anyone else trying:

    1) If you're using the stock UMA meshes/textures, you will need to alter the textures to suit Marmoset's shaders (make a new normal map texture, copy Alpha of UMA textures to X of new normal map, copy Y of UMA textures to Y of new normal texture, set blue of new texture to 100% - you should have a "blue" type normal map now.)... Make sure new normal maps for Skyshop are imported as Normal Maps, not plain textures. Some Skyshop shaders use the diffuse alpha as Gloss... you can pull that from the UMA normal map's red channel. This info is in the UMA manual, around page 7.
    2) Make a new blank skin material for your meshes. I made one called SkinTemplate, setting the shader to Marmoset Skin Fast IBL.
    3) Make a new clothing template material for your meshes. I made one called ClothingTemplate, setting the shader to Marmoset Diffuse Bumped IBL.
    3) Change the Material of the avatar's skin SlotData assets (torso, face, feet, etc) to the SkinTemplate material you made
    4) Change the Material of any clothing slots to the ClothingTemplate material you made
    5) You must define the shader's texture names for each slot. For its simpler shaders, Marmoset uses two textures: _MainTex and _BumpMap... this is in contrast to UMA which uses _MainTex and _BumpTex. You have two options:
    a) In UMAGenerator, alter the Texture Name List to match whatever shader you're using. This sets the "default" shader texture names to try to use. This only fully works if every shader you're using with UMA has the same names.
    b) OR: In every SlotData asset, alter the Texture Name List in the same fashion. The generator will use the slot's defined Texture Name Lists instead of its own if they are defined.
    6) If you are using UMA's textures modified as per step 1, make sure you change your OverlayData assets' textures to the new ones you made

    It's worth noting that if you use the skin shader like I am, then you may not be able to use overlay clothes anymore. For my project I'm planning on having separate clothing meshes. You could use the basic Diffuse Bumped IBL shader for everything if you wanted to keep overlay-style clothes. I think that's everything - I'm speaking from memory, so I may have missed a step!

    I also found that the simple skin shader was very bright, but by adjusting some of its extra color properties from default white to skin-tones and darker colors it make it look OK.

    Screenshots attached (using Dionysus textures and a custom/W.I.P. underwear set :) )
     

    Attached Files:

    Last edited: Sep 15, 2014
    hopeful likes this.
  26. Erisat

    Erisat

    Joined:
    Jan 31, 2013
    Posts:
    88
    Hey, So I've made some equipments for my uma characters. some weapons and armors and such. It was my first time ever modelling and texturing, and the result is good enough for me to use as placeholders. I can export the models with the rig and get the slots just fine, however I'm not sure I understand how to get the overlays. I see theres the material builder and all, but How do I get the textures out of blender and into Unity? It's asking for the diffuse texture and such, not sure how to get that out of blender. Some of the objects have 2 or 3 separate materials with different textures on them in blender. (maybe I'm doing it wrong). They look good enough in blender for my purposes. atm I can use shared overlays from the other slots, but of course having the stuff share the skin texture looks horrible. I'm a total blender noob, so I'm probably misunderstanding something. If I can get the overlays and the slots to work in unity, I'll post them here for anybody who would like to use them for free. (they aren't game-quality, only good enough as placeholders imo, but hey, there are zero free armor sets on asset store for uma, and zero free weapon slots, so maybe someone would like them just as placeholders like I'm using them for, since theres nothing else out there). Can someone help me out with getting my overlays generated? I'd really appreciate it. Here's an image of the male set: (female is basically the same, just you know.. female shaped).
    Pretty much everything is a unique slot. Cuirass, Left Gauntlet, Right Spaulder, Left Greave., etc.
    I'm not an artist so don't judge the quality. They're placeholders. Plus, they're my very first blends.
     
  27. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    You got to export the textures (Diffuse, Normal, Specular). If u havent got normalMap you are able to generate it with an NormalMap-Generator. After that you have to built the OverlaySlots with the Materialbuilder in Unity.
    Watch this:



    If I were u i would add some scratches to ure textures.
    http://www.bildburg.de or http://www.cgtextures.com/

    Then u can overlay them in Photoshop.


    Very nice work for the very first ;)
     
  28. Erisat

    Erisat

    Joined:
    Jan 31, 2013
    Posts:
    88
    well thank you :) the models took me hours, but really i just slapped the textures on in like 20 minutes, probably why it looks so plain. but thing is i know how to make the overlay out of the textures in material builder, i did that when i was going throuh the uma tutorials, but i was using someone elses models that came with the textures all ready done and in nice image files, like how it shows in the video. i guess my question is more blender related, like is there an "export texture" button in blender? if there is i cant find it for the life of me lol. ill have to do some more digging when ivget out of class and see if i can figure it out. also, that cgtextures site is awesome! thats gonna be a great resource (if the site licenses the textures for free use). i dont speaj german so im not really sure what that other site is. ive been scouring google to find images to use lol. ill see if i can figure out how to add details like scratches to the textures, but really my texturing "skills" are infantile, i just took raw images for like copper and linen that i found in google and rearranged the uvs until it kinda lined up. i guess id have to get into using paint.net (is that a good photoshop alternative?) to start adding actual details like that. moreso im just trying to figure out how to pull the diffuse texture out of blender so i can plug it into the material builder. also i keep seeing people mention nornal and bump and specular maps and strange things like that. do you know of a good (free) program for making those sorts of things? im not even sure how they work. sorry for all the noob questions, im learning here lol. i consider myself more of a programmer than an artist. and thanks for the advice :) maybe ill hit up some blender chat rooms and see what they say about it, cause i guess thats reallly where my problems lie.
     
  29. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    If you change to "UV-Mode", there is a button underr the UV-Map called UV. Click that and on the top you´ll find the right option. UV-Export or something like that....

    For the NormalMap-Generator just ask google. ;) There are a few downloads for free
     
    Last edited: Sep 15, 2014
  30. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hello, I just downloaded this tool from the Asset Store, and I am seeing a couple of errors (I'm on Unity 4.5.3f3 Pro).

    Code (CSharp):
    1. MissingReferenceException: The variable meshRenderer of SlotData doesn't exist anymore.
    2. You probably need to reassign the meshRenderer variable of the 'SlotData' script in the inspector.
    Some of the SlotData assets (such as Female_Eyelashes) are missing a SkinnedMeshRenderer.

    Second Error:

    Code (CSharp):
    1. UMAResourceNotFoundException: SlotLibrary: Unable to find: FemaleEyes
    2. SlotLibrary.InstantiateSlot (System.String name) (at Assets/UMA/Example/Scripts/SlotLibrary.cs:81)
    3. UMACrowdRandomSet.Apply (UMA.UMAData umaData, .CrowdRaceData race, Color skinColor, Color HairColor, System.Collections.Generic.HashSet`1 Keywords, .SlotLibraryBase slotLibrary, .OverlayLibraryBase overlayLibrary) (at Assets/UMA/Example/Scripts/UMACrowdRandomSet.cs:138)
    4. UMACrowd.DefineSlots (.CrowdRaceData race) (at Assets/UMA/Example/Scripts/UMACrowd.cs:96)
    5. UMACrowd.GenerateOneUMA () (at Assets/UMA/Example/Scripts/UMACrowd.cs:560)
    6. UMACrowd.Update () (at Assets/UMA/Example/Scripts/UMACrowd.cs:45)
    I also get the same error for MaleEyes.

    Any help would be appreciated. Thanks!
     
  31. CaptainChristian

    CaptainChristian

    Joined:
    Apr 3, 2013
    Posts:
    100
    What am I doing wrong when something like this greets me as a result? In this case there are two models in the same position, that's not the issue, but what happened to their arms?
     

    Attached Files:

    • Bug.png
      Bug.png
      File size:
      340.8 KB
      Views:
      961
  32. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    First off what version of UMA did you use?
    What extensions are you using?
    And finally what MeshCombiner are you using?
     
  33. CaptainChristian

    CaptainChristian

    Joined:
    Apr 3, 2013
    Posts:
    100
    I am using power tools with the default setup and the latest version of UMA and power tools. When I use UMA only it works.
     
  34. CaptainChristian

    CaptainChristian

    Joined:
    Apr 3, 2013
    Posts:
    100
    Another question: How do I use this with object pools?
     
  35. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Right, you hit a bug in my tool. And to be honest a bug I should have fixed by now... can you please send me the pieces and I'll take a look at this asap.

    Thanks.
     
  36. Deleted User

    Deleted User

    Guest

    Random set generating nothing. When I replace the torso in the Male random set with my own slot ,overlay, and overlay list source, nothing shows up. It worked fine for the Female.

    Also, tried deleting everything in the random set and adding a slot from scratch, but still nothing.

    I'm also getting huge memory usage on 4 x 4 where 32 bit system basically runs out of memory.
     
  37. Deleted User

    Deleted User

    Guest

    The male torso replacement worked with UMA helper, so it's not the slot or overlay that's the problem.

    However; UMA Helper has issues with the female torso.
     
    Last edited by a moderator: Sep 19, 2014
  38. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Are you adding both Slots and Overlays to the RandomSet and are you setting the alpha of the overlay color to 1?

    The textures are atlassed together. This means that each character uses it's own unique copy of the texture. If you have high res textures it's easy to run out of memory, try reducing quality a bit as demonstrated in the videos.
     
  39. Deleted User

    Deleted User

    Guest

    Thanks Unilogick.

    That was it. The Overlay was actually missing the textures for some reason.Torso shows now.
     
  40. Deleted User

    Deleted User

    Guest

    Now everything's showing up white without textures. Including all the other slots. Checked Male body01 overlay and it has textures.

    Edit:

    Nevermid. I created a new overlay and it works. However; the legs are showing up with the texture now. I renamed the torso replacement overlay list source to "20". The legs are "2". Does that effect it?

    edit2 : Nope. It doesn't. The torso texture is replacing the hands, legs, and feet textures. They have different slots and overlays from it.
     
    Last edited by a moderator: Sep 19, 2014
  41. Deleted User

    Deleted User

    Guest

    The underwear seems to be appearing on the legs as well in an odd location (calf).
     

    Attached Files:

  42. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    (BTW, nice art, justb.)
     
  43. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Due to the atlassing all texture UV must be in the 0-1 range... otherwise textures ends up where they're not supposed to.
     
  44. Deleted User

    Deleted User

    Guest

    k. Thanks Unlogick. Somewhat solved. I just removed them since they weren't being used in my asset. I'll check that out more later.

    Thanks hopeful. It's uploaded to the store. Should be up in a few days if everything goes well.
     
  45. CaptainChristian

    CaptainChristian

    Joined:
    Apr 3, 2013
    Posts:
    100
    Somehow this bug disappeared and I cannot reproduce it. Strange, but all the better. Another thing. Using the power tools sometimes throws a Mesh.colors is out of bounds exception. I also found out that the default slot library in update scene 01 - crowd is not filled correctly considering the umacrowd script. Is there a reason to not use all the slots that came with uma? Do some of the default slots not work with the power tools?
     
  46. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Heh, welcome to my world, everytime I think I got a fix on the bug it dissapears. A few times I thought I had fixed it but when I rolled back my changes to find the fix it worked with the original code. :(

    All default slots works fine.

    I can't remember changing scene 01, perhaps scene 01 was changed and I didn't update the power tools scene 01. That seems more likely to me.
     
  47. CaptainChristian

    CaptainChristian

    Joined:
    Apr 3, 2013
    Posts:
    100
    I guess I should avoid using the power tools for a while.

    I am still in the process of setting UMA characters to work with object pools and hit another road block. When instantiating a crowd with the default procedure (tick generate lots of umas in the umacrowd script) uma characters are setup properly with animation controllers, shape and clothes. However if I call GenerateOneUma to return a template for the pool, create the pool and set the UMA character inactive, the character appears in the t-pose and without clothes or proper body shape. This, at least, is consistent.

    In the UMAData script, isMeshDirty, IsShapeDirty and IsTextureDirty are all ticked. How do I force a reload?
     
  48. endie

    endie

    Joined:
    Jan 16, 2013
    Posts:
    30
    Apologies if this has been answered in an earlier page but after skimming through I didn't see it. I'd like to download the content creation pack but the link on the website seems to be down. Anywhere else I can grab it?
     
  49. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    What site are you looking at and where did you find the link?

    The correct site regarding uma is the wiki, and the link there is working.
    http://uma.unity3d.com/wiki/index.php/Content_Creation

    Cheers,
     
  50. MarcoMeter

    MarcoMeter

    Joined:
    Jun 14, 2013
    Posts:
    69
    Hello guys,

    I need some help for understanding about how the worklow between facial MoCap and UMA could be achieved reasonable.

    Like I just tried to use one of those sample animations on the uma base model without any success. I believe the fbx files are not matching the rig of the uma base model, so it can't be retargeted.
    What needs to be considered for creating facial aniamtions for the base model of uma via motion capture?
     
    Last edited: Oct 8, 2014