Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. Shreddinger

    Shreddinger

    Joined:
    Aug 22, 2018
    Posts:
    5
    Hey!
    I've started using UMa recently and trying to get it to work with Unity 2018 and the Lightweight rendering pipeline and at first I got only pink stuff, then I upgraded the project materials to LW pipeline and now my character is almost completely black with some greyish highlights on his arms. Furthermore it looks like his left hals is a little bit brighter than his right half of the body. Does anyone know what I did wrong/missed?
     
  2. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    UMA doesn't currently support the scriptable pipelines. We will likely look into it once they are final.
     
  3. Shreddinger

    Shreddinger

    Joined:
    Aug 22, 2018
    Posts:
    5
    Ah, okay, thanks for letting me know! So, once the pipelines are finalized, will there be a new version of UMA?
     
  4. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    of course!
     
    hopeful and Shreddinger like this.
  5. Shreddinger

    Shreddinger

    Joined:
    Aug 22, 2018
    Posts:
    5
    Cool!

    Another thing I would be interested in:
    Is it possible to overwrite some models from UMA with your own or add new ones? And if yes, how would I need to adjust everything?
     
  6. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yes, SecretAnorak has a set of tutorials that show how.

    https://www.patreon.com/secretanorak/posts

    Basically, you need to add adjustment bones (or blend shapes) for anything you want adjustable. Bones are by far the easiest to work with when dealing with something that needs clothing, etc.

    The race creation tutorials start with UMA 301, but we recommend you watch all the earlier ones also.
     
    Shreddinger likes this.
  7. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    510
    I want to use a blood overlay, that will put the blood on the chest, whether the UMA character has no shirt, a long sleeve shirt or a short sleeve shirt.

    Would I have to make 3 overlays (1 for each) or can I just make 1 overlay and have it be able work on each. I've tried the 1 overlay for all method....which doesn't seem to work

    I've attached pics with
    1. Shirt with Blood
    2. No Shirt WITH Blood
    3. No Shirt, No Blood

    For some reason, the no shirt with blood shows the shirt mesh.
     

    Attached Files:

    Last edited: Aug 26, 2018
  8. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    As long as the UV coordinates on the model are compatible, you should be able to use one. If you wanted, you could pre-add the "blood" texture to your existing wardrobe items, and then vary the alpha using a shared color for blending. You could even have multiple blood textures, and vary both of their alpha to be able to create a more pronounced effect when wounded. This would simplify the whole process in my opinion, and make the blood splatter a simple matter of updating the color.

    But, If you created a wardrobe item for the "no shirt with blood", make sure you don't accidentally have the shirt slot on it. That's the only way I can figure it would be adding the shirt.
     
    FiveFingerStudios likes this.
  9. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    404
    Just easing back into UMA now with 2.6 from the store.
    Has anyone found a better skin shader, the standard one just isn't giving me the "feel" I'm looking for?

    Thanks again guys for keeping UMA moving forward.
     
  10. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    We've pretty much standardized on "Fast Fake Skin", and this is supported in Will's skins as well.

    https://assetstore.unity.com/packages/vfx/shaders/fast-fake-skin-42535

    I'd also recommend to update to 2.7, lot of new features.
     
    Mark_01, LukeDawn and umutozkan like this.
  11. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    You can use the FFS shader, if you want to make some modifications to overlays and slots yourself. I used a modified version of it in the o3n Races .

    I also created a race for base UMA with the same modified FFS shader but it's not out yet, still in review. (It's not just the shader though, I also used textures from o3n races too.)

    baseUmaFFS.png


    raw.png
     
    Mark_01, LukeDawn and Jaimi like this.
  12. Deleted User

    Deleted User

    Guest

    Hi again!

    Several days ago I reported a problem with a model on UMA (post 3603044). Summarizing, the model is lying on the floor and bones are twisted.

    After some days talking in private with kenamis (thanks a lot, Sir) I find myself stuck at the same point. We did some findings however:
    • Our 3D artists use Maya. They export to FBX and then I import into Unity/UMA. This never worked.

    • This same FBX imported into 3DSMax, stripping some "keys" (presumably the "bind pose", not sure) and exporting again as FBX works like a charm.
    Some differences I've found between both FBX files (the working and not working ones are):
    1. The failing FBX has "PoseNode"s associated to some bones (x53). The working FBX has only 3 "PoseNode"s associated to the meshes (body and head) and a "null" object I use as "Root".
    2. The failing FBX has "Prerotation" attributes associated to some bones while the working FBX has no "Prerotation" attribute associated to bones. I think "Prerotation" attribute matches the "Join orientation" attribute on Maya's joints. On the working FBX these rotations seem to be moved to the "Lcl rotation" attribute.
    I'm not a Maya expert and don't have a clue on how to get rid of these "PoseNodes" and "Prerotation" attributes on the FBX.

    Does this sound familiar to someone here? Any ideas on how to avoid this problems?
     
  13. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    404
    Thanks for the info guys. Amazing, that makes a world of difference.
     
  14. Shreddinger

    Shreddinger

    Joined:
    Aug 22, 2018
    Posts:
    5
    I might watch every tutorial there is :)
    When I imported it, it was huge and the sample scene couldn't possibly explain everything.
     
  15. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,687
    I thought @SecretAnorak used to have a video about using UMA in Maya. Maybe it was another program, I don't recall, but anyway it appears it is no longer on YouTube. So ... :(
     
  16. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    510
    I currently am listing for "CharacterBegun" and use that to build my UMA character when the scene loads. It ends up firing twice. I must be firing it when I start configuring my UMAs.

    Is there a way to not build the UMA characters twice?
     
  17. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Those events all happen when the character is built. It should be filtering any requests to rebuild the UMA so it doesn't build twice. Are you somehow asking it to build again (in a coroutine, or somehow)?

    You can supply a "character file" to the UMA to have it make a prebuilt character, and then it will only build it once:

    http://umawiki.secretanorak.com/Creating_a_customizable_prefab

    You can also give it a string (in code) in the Awake if you are doing that instead, then it will get built with the recipe from the string.
     
  18. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    510
    I currently have a UMACreationManager class that I use to populate slots and overlays on startup and when players enter a different areas. I am calling " BuildCharacter" on scene startup after I've selected the approximate slots and overlays.

    Thanks for the link, I'll check it out.
     
  19. yusue899

    yusue899

    Joined:
    Jan 11, 2018
    Posts:
    5
    Hi,
    I have a question about the create the slot from slot builder. I have a body model with 6 submeshes then use slot builder to generate 6 slots piece of the body in my slot folder. but there is an issue on each slot that all got the same amount count on vertex and normal etc. the only difference is they got different Sub Mesh Index number. and I have noticed on the sample file in UMA. each slot of mesh got different polygon count. am I doing anything wrong on this process? also, I try to use occlusion mesh for painting some polygon to make them disappear in the render, but since my body mesh slot all show the same mesh as head part for the character, that function does not work... how do I create mesh slots like sample file all are industrial but from the same piece of the whole body?
     
  20. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    Yea, that means you have multiple material id assigned to your mesh. Each material is like a copy of the mesh. Usually you only want one material id assigned to your mesh. You can still have separate textures in multiple overlays, but those get atlassed or merged at runtime so you end up with one (or a few) materials instead of many. So try assign a single material (without destroying your uvs) in your modeling package and then building the the slots.
     
  21. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Another thing you might try is turning off the "build character enabled" in the advanced options. Then you can load your wardrobe onto the DCA, but you'll have to manually build it when you're done. You might be able to load DNA using a utility recipe, but I haven't tried that.
     
  22. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    510
    Thanks for all of the help!

    Man, I hate that I keep bugging you guys...are there any code examples on how to do certain things?

    I'm trying to change the color of a wardrobe item in code, but for some reason the colors don't change.

    "Shirt" is the name of a Slot on the character.


    Code (CSharp):
    1. SharedColorTable itemColors = categoryAvatar.outfit.top.colors;
    2. inGameAvatar.SetColor ("Shirt", itemColors.colors[Random.Range (0, itemColors.colors.Length)].color);
    3. inGameAvatar.UpdateColors (true);

    Btw, should the colors be associated with a wardrobe item in anyway? I mean do they need to be in the Global Library and do names have to match anything?


    Ok, it looks like I found the issue.

    I wasn't setting up the Shared colors on the wardrobe item. So there should be a shared color named "Shirt" on the wardrobe item in order for it to work.


    .
     
    Last edited: Aug 29, 2018
  23. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The color that is passed to SetColor is the name of a SharedColor - not a slot. The wardrobe recipe defines the slots, the overlays, and the shared colors that are applied to the overlay.

    When you call "UpdateColors(true);", the shared color table is scanned, and the colors are applied to the overlays, and the avatar texture atlas is rebuilt.
    If the wardrobe item is not changing color, I would suspect either the shared color name is not found, or there is a problem in the recipe - make sure the shared colors are selected for the specific overlays you want updated.

    The "Simple Setup" scene shows how to Apply colors, Set DNA, change wardrobe items, etc - all in code, and has some help along with it. It's not perfect by any means, but it does show all the basics.
     
    vonSchlank and FiveFingerStudios like this.
  24. Flegy

    Flegy

    Joined:
    Jan 5, 2017
    Posts:
    30
    Hello,

    I set up hair and beard as slot when I try to change the color of hair it changes both but beard color don't have any effect but it changes inside UMA but not on the model. Any suggestion on how to fix it?
     
  25. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Look at your beard recipe, and make sure you have set the shared color on it to the hair color.
     
  26. hungrybelome

    hungrybelome

    Joined:
    Dec 31, 2014
    Posts:
    336
    Hi, is it possible to bake a character's atlas texture in advance instead of at runtime, so that it can be compressed? I'm guessing the tutorials cover this, but I just want to test some basic things before committing to fully learning UMA.
     
  27. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You can bake a character to a prefab with the power tools, but then it's really no longer a UMA.

    Are you wanting the texture to be DXT compressed?

    We've added some new features to the UMAMaterial in the develop branch for the atlas, that shouldn't be too hard to add. I'll look into it.

    Update: Currently tracking down an issue converting RenderTextures to standard Texture2D. (RenderTextures of course can't be compressed). This option already exists in UMA, but doesn't appear to be working correctly in some cases. I'm also thinking it might be possible to down-sample specific textures in the material (like the normal map, or the metallic map) and save memory also.
     
    Last edited: Aug 30, 2018
    hopeful likes this.
  28. EdWaters

    EdWaters

    Joined:
    Mar 20, 2017
    Posts:
    7
    What is the short term path forward for using UMA with Windows Mixed Reality headsets? I gather I could go the Steam route, longer term a universal interface may come about. Any current experience?
     
  29. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Added the following to the UMAMaterial:

    Ability to convert the RenderTexture to Texture2D per channel. (Required for compression).
    Ability to compress the generated atlas texture per channel (fast or high-quality)
    Ability to downsample the texture per channel.

    TextureCompressionCapture.JPG

    This will give you the ability to downsample and compress specific textures per channel for each UMAMaterial. This will affect every atlas generated for a specific UMAMaterial.

    Downsampling should only be used for things that don't need as much resolution.

    Note that converting From a RenderTexture to a Texture2D is a requirement in order to DXT compress the atlas, and can have a small performance hit.

    This will be worked into the Development branch when it has a chance to be reviewed.


     
  30. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Does WMR require the application to be compiled as UWP? If so, that might be a while before we can get that completed. There are some differences that need to be worked out there, and Unity has removed some support that we needed at one point. There are others asking about it, and it's on the Trello board, but there is no date set yet.
     
  31. EdWaters

    EdWaters

    Joined:
    Mar 20, 2017
    Posts:
    7
    Yes, it needs to be UWP. Really need the flexibility of UMA. I'm sure eventually we will have a way around the UWP, perhaps the Khronos project will bare fruit.
     
  32. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    UWP would be great :)
     
  33. hungrybelome

    hungrybelome

    Joined:
    Dec 31, 2014
    Posts:
    336
    Baking a character to a prefab is exactly what I'm looking for! I don't really need runtime customization at the moment, so using UMA as a static character generator would be perfect for my use case. I'll give that a try.

    I'm looking for ASTC compression for use with Android and iOS.

    Also, your additions to UMAMaterial look awesome! Though personally I'm targeting mobile, so I imagine compression at runtime would be too slow, even at the fastest compression format/setting. Sounds great for PC users though!

    Thanks for your help.
     
    Last edited: Aug 31, 2018
  34. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Maybe some of you who use UWP can help. I used the latest version of Unity (2018.2), switched the project to UWP in the build settings. Set "Build and Run" to "Local Machine".
    In the player settings, i told it to use IL2CPP, and .Net 4x.

    Then I hit "Build and Run" and it created the solution without errors, built without errors, and then displayed a "Deploying" dialog, and there it sat deploying for the last 8 hours, with nothing else happening.

    Can one of you UWP developers try the same thing?
     
  35. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    Did you try without IL2CPP? And was Unity started as Administrator?
    I will try this Weekend just to build the UMA latest branch with UWP and see if I get Errors :)
     
  36. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    No, I know it won't work without IL2CPP - there's too many incompatibilities with .Net core. Plus it says the scripting backend is deprecated, so we'll likely not put any time into it.

    But, I was able to run a UWP build of UMA by opening the il2cpp generated solution in Visual Studio, and compiling it.

    So as far as I can see, we are good to go with UWP and IL2CPP.
     
    Firlefanz73 likes this.
  37. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    When I am Building my game to UWP and IL2CPP I get no Errors, no strange Looking warnings, it builds until it says "Packaging assets - sharedassets2.assets" and does hang there. It still Shows the progressbar (around 80%) but is stuck there forever until I terminate it...
     
  38. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    510
    I'm trying to figure out the best way to do limbs that get blown off my characters. I want them to look like my UMA characters and be able to use the same slots and overlays, so that I could have the appropriate pieces clothes properly.

    Here is an example:
    If the player shoots off a leg (below the knee), my UMA character has pants and shoes, which of course could be different depending on the wardrobe items. I was going to create custom meshes, but it would be too many combination.

    Is it possible to make a reduced skeleton with only the ankle joint so that I could use the same clothes and shoes or would I have to make a new race which is only limbs?
     
  39. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    PS: Unity 2017.4.10f1 started as a admin successfully built my game including uma with uwp and il2cpp.
    Visual Studio 2017 complained About missing C++ / updates, I am just installing an update and see if I can get it running. :) Thanks for the il2cpp hint. I will place an info here if it works.
     
  40. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    It works! With UWP and IL2CPP. Strange mouse behaviour. And Looks a Little bit different. But works! :)
    Thanks Jaimi!
     
    Jaimi likes this.
  41. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    404
    Hey guys. What's the best method for overlay only clothing that requires a different shader to the body piece underneath it?

    For example, underwear. I want to use a cloth shader for the underwear, but the FFS skin shader for the body. Also what if the overlay covers more than one slot (ie cycle shorts cover parts of the torso and parts of the legs).

    Still learning here.
     
  42. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    As far as I know, UMA doesn't let material to be different in slot and overlay. So two different overlays will mean two different slots which will not be ideal.

    What I do is: because FFS shader on a overlay only clothing does look off; I modified FFS shader to take a mask texture and fall back to Unity standart shader for the areas that are black in the mask.

    For example, I mask out the underwear on the skin like this. The shader is freely available in o3n UMA races pack.

    For clothing covering more than one slot you can add all those covered slots and add the same overlay in the recipe. And you can set the recipe to suppress other wardrobe slots (not to be confused with UMA mesh slots ).
     
    Mark_01 and LukeDawn like this.
  43. Flegy

    Flegy

    Joined:
    Jan 5, 2017
    Posts:
    30
    Correct, it was setup to share a color with hair. Can I get with code left/right hand without drag object into inspector?
     
  44. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    404
    If, for instance, I had two torso slots, one for skin, and one clothing, does the UMA system merge the bones and remove non-visible polys on the cothing? And if this is the case, is it just the extra load when internally doing the merge, or is there continuous extra load after the UMA has been generated?
     
  45. haywirephoenix

    haywirephoenix

    Joined:
    May 17, 2017
    Posts:
    109
    Hey, I'm trying to use Uma with the new incremental compiler which doesn't support unet. How can I remove the unity networking deprendencies of uma without breaking it? I don't need an assetbundle browser or loading of encrypted assets etc.



    Also, how do I go about exporting the obj as a rigged humanoid?
     
  46. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    I am pretty sure it "merges" the bones since any slot might have the same bones in the avatar (like lower arm adjust bone both affects the hand vertices and arm vertices).

    I don't know about the non-visible polys. I am guessing by default it won't remove the polys instead just make them invisible by the alpha on the texture. (that is if you are using one of the cutout UMAmaterials otherwise I believe it won't even hide the mesh)

    Maybe someone more knowledgeable about the inner works of mesh combining can answer that one.
     
    Mark_01 and LukeDawn like this.
  47. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Sorry - I'm not really sure what you're asking. If you're asking about mounting an object in the left hand or right hand (like a weapon), then there is a sample scene that Kenamis just did in the Develop branch on github. This branch will become the 2.8 release, which shouldn't be too much longer.
     
  48. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    To export as a rigged humanoid, you can use the power tools. At that point, the object is just that - a rigged humanoid. If you're wanting to keep the ability to modify it, you will need to use one of the other options.

    Removing the unet networking dependencies will be tedious, but is possible (since you won't be using Asset bundles). There is no easy define for it though (we should probably add a define to turn it on and off, though). By tedious, I mean you would need to compile, find the problems, and put #if/#endif around everything network related.

    Now that I think about it, they aren't normally called in code unless you specifically request it, so it would likely be much easier to just delete the sample networking scripts, and write some wrapper classes that do nothing.
     
  49. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    No - if you have two torso uma slots, it will simply add both. If you have two torso wardrobe slots, one would replace the other.
    You can do what you want by creating a slot for your underwear area that you put a different UMAMaterial on, and then using a "mesh hide asset" to hide the part of the torso that you don't want to show.
     
    LukeDawn and umutozkan like this.
  50. haywirephoenix

    haywirephoenix

    Joined:
    May 17, 2017
    Posts:
    109
    I had a go at doing exactly that. You're right about it being tedious. I tried adding a tilde~ at the end of various folders and scripts, and modifying parts of scripts to skip over networking functions but ended up with something non functional. I see that the asset bundle browser extension is a separate folder which is good, but there are parts of dynamic character avatar scripts that depend on those scripts being there. I'd like to see even further expansion in the modular direction, but until then I have to either remove uma, or try to fix it.