Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. Lathrey

    Lathrey

    Joined:
    Jun 7, 2016
    Posts:
    15
    Nevermind. I must have somehow messed up the project. A fresh setup of everything is working. Sorry for the confusion.
     
    hopeful likes this.
  2. Lathrey

    Lathrey

    Joined:
    Jun 7, 2016
    Posts:
    15
    I've been trying to switch to Unity 2018.3.0f2 using the latest RC on github (https://github.com/umasteeringgroup/UMA/releases/download/2.8rc2/UMA_280_RC21.unitypackage). Creating a fresh Unity project I just add that Unity package, drag UMA_DCS from the 'Getting Started' folder into the scene and add an empty GameObject with a DynamicCharacterAvatar on it. Add a default animation, set to HumanFemale_DCS and add some clothes. It runs but the textures are all messed up per the attached image. Any ideas? Thanks!
     

    Attached Files:

  3. Lathrey

    Lathrey

    Joined:
    Jun 7, 2016
    Posts:
    15
    It's something to do with the auto-generated normal map for the UMA for the UMA_Mat_Diffuse_Normal_Metallic shader. Looks wrong visually, maybe everything is inverted? I have no idea how this is generated or how to fix it. Image attached.
     

    Attached Files:

  4. Lathrey

    Lathrey

    Joined:
    Jun 7, 2016
    Posts:
    15
    Ok, I think I found and fixed the issue (in my copy, not on github). The UMA_Diffuse_Normal_Metallic UMA material (and others in that folder) has the bump map channel texture format set to "ARBG Half" whereas previously it was "ARGB32" and the texture combiner seems to still be using 32-bit textures. Switching this back appears to fix the issue. Change was introduced in this commit: https://github.com/umasteeringgroup...2b617a8#diff-b3cb7cf4af7b16a7dea9f8642bd4f84e. Not sure if this needs to be fixed for others or not. Perhaps a parallel change was made to the atlas generators but only the format change made it into the release?
     
  5. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Thanks - I'll look into it.
     
  6. Lathrey

    Lathrey

    Joined:
    Jun 7, 2016
    Posts:
    15
    Thanks Jaimi. Note this fixes the weirdness/shifting at runtime but the generated textures are still pink and in my scene they light weird (which doesn’t happen with, for example, the included robot in the Invector package) so I’m guessing there’s still some other problem unless pink is normal for UMA somehow. I added some debug code to dump the textures to PNGs before/after combining them and they’re pink before/after. Still trying to see if they start blue at some point (well they show blue in the overlay assets but I mean when loaded.) Just need to figure out where in the code they’re originally loaded. Note they’re pink/orange in the 2.7 version too so if that’s an issue it’s been there a while. Thanks again. This is a great capability you have provided the community.
     
  7. Lathrey

    Lathrey

    Joined:
    Jun 7, 2016
    Posts:
    15
    Ok, I've looked at it more than I want to and I think the 'pink' is ok because it's just using the packed normal map format (uses (1, G, 1, R) instead of RGBA and recalculates B). Lots of good posts out there about it, here's one: https://forum.unity.com/threads/runtime-generated-bump-maps-are-not-marked-as-normal-maps.413778/

    The problem I'm having is how the normals are blended when overlaying items on top of the base textures. When I put the pants on the female avatar, for example, the strength of the pants normals (outside the pants area) are overriding the default normals there from the skin texture and making weird transitions/patterns. For example, here is the generated atlas normal map without any clothing:
    CombinedNormalMapNaked.png
    If I then add only the pants it changes to this:
    CombinedNormalMapPants.png
    As you can see, it's changing the color for the torso area and adding a strong transition between the head and the torso area which look weird in the scene. Here is the normal map for the pants (it's blue as I just grabbed the file in the directory instead of re-exporting it at runtime.)
    FemaleJeans01_Normal.png

    I tried playing a bit with AtlasNormalShader.shader which appears to be what is responsible for merging normal maps but I am out of my depth here and it may take a really long time to figure it out. It appears to have some capability to 'mask' areas but those textures don't seem to exist or be set in the overlays. I might try to make those and test them in the next week or so.
     
  8. Lathrey

    Lathrey

    Joined:
    Jun 7, 2016
    Posts:
    15
    Ok, another clue. Masking doesn't appear to work or I don't know how to use it. But by making a new default 2018.3 project and comparing it to my project I found something that made a huge difference. Linear color space in the player settings. So my guess is that something about how the textures are merged depends on Gamma color space and if I could force it to use that for the merging it might work fine in my normal project.
     
  9. Lathrey

    Lathrey

    Joined:
    Jun 7, 2016
    Posts:
    15
    Changing to use sRGB colorspace for the Normal render texture seems to work for me. In TextureProcessPROCoroutine.cs around line 98:
    Code (CSharp):
    1. RenderTextureReadWrite flags = RenderTextureReadWrite.Linear;
    2. if (slotData.asset.material.channels[textureType].channelType == UMAMaterial.ChannelType.NormalMap)
    3. {
    4.     flags = RenderTextureReadWrite.sRGB;
    5. }
    6. destinationTexture = new RenderTexture(Mathf.FloorToInt(atlas.cropResolution.x * umaData.atlasResolutionScale), Mathf.FloorToInt(atlas.cropResolution.y * umaData.atlasResolutionScale), 0, slotData.asset.material.channels[textureType].textureFormat, flags);
     
  10. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I haven't had time to dig into this yet, but I probably will tonight. I recall there were some changes to the materials, but I had thought all the other issues (gamma vs. linear, etc) had already been addressed in code. I'll need to make sure they didn't get reverted accidentally. We'll get it straightened out before release - thanks for testing.
     
  11. arteria

    arteria

    Joined:
    May 31, 2007
    Posts:
    2,189
    Happy New Year to All UMA users - Arteria3d have supported UMA for many years now, each release becoming stronger and more detailed - and we really appreciate the support of the Dev Team and UMA community - therefore for the next 24 hours we would like to offer a single pack free of charge to any customer who emails the code 'UMA SPECIAL' to -

    arteria3d@live.co.uk

    This doesn't include the Single Knight Packs, Full Knight Packs or the Viking Pack

    Enjoy!
     
    Last edited: Jan 2, 2019
    michaelday008 and Firlefanz73 like this.
  12. SickaGames1

    SickaGames1

    Joined:
    Jan 15, 2018
    Posts:
    1,270
    I tried emailing
    I tired emailing and it didn't work... Say the address doesn't exist.
     
  13. arteria

    arteria

    Joined:
    May 31, 2007
    Posts:
    2,189
  14. harald_konrad

    harald_konrad

    Joined:
    Jan 2, 2019
    Posts:
    1
    Happy New Year!

    I am totally new to unity und uma. I installed both but i can´t get UMA running. I get this error:

    Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAMeshData.cs(618,34): error CS0117: 'PrefabUtility' does not contain a definition for 'IsComponentAddedToPrefabInstance'

    What can i do?
     
  15. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    A release candidate supporting 2018.3 is available here:

    https://github.com/umasteeringgroup/UMA/releases/tag/2.8rc2

    there are still some issues to be worked out, but it's mostly working.
     
  16. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I'm just not seeing the error with the normal maps - everything merges right for me in both Linear (which is the default for me for the project) and Gamma lighting. But then, I didn't see an issue with the materials being set to ARGBHalf either. Maybe this is graphics driver and/or platform specific?

    What are your specs (graphics driver, OS, Graphics API)?

    Also - as far as I'm aware (I'm not the original developer), the normal map should use the alpha of the diffuse channel to merge.
     
    Last edited: Jan 3, 2019
  17. Lathrey

    Lathrey

    Joined:
    Jun 7, 2016
    Posts:
    15
    Alpha of diffuse: Hmm. I had just dragged the Albedo jeans texture into the Additional Parameters->Alpha Mask slot for the FemaleJeans02 Overlay asset (and updated the global library.) Looking at both the Albedo (for Jeans1) and diffuse checker pattern (for Jeans2) both appear to have a background that is transparent. But maybe it needs to be the opposite, transparent over the area to include and completely visible everywhere else? I'll experiment later in any case. Looking at the shader code for blending the normals it's weird because it has a link to a good article on how to do it and they mention using the partial derivatives algorithm but then the implementation doesn't match what is on that website so I'm confused. They calculate p1 and p2 and then ignore them and blend together n2 and n1. (Line 60 in AtlasNormalShader.shader, permanent link here: https://github.com/umasteeringgroup...Assets/UMA/Atlas/AtlasNormalShader.shader#L60)

    OS: Windows 10 (64-bit)
    Graphics Card: AMD Radeon R9 380
    Graphics Driver: 22.19.162.4 (which I could try updating as it's from April 2017)
    Graphics API: DX11
    Unity: 2018.3.0f2
    Quality and graphics settings images attached. Most of this was setup automatically by Gaia so not sure if there's something weird in there.

    GraphicsSettings1.png GraphicsSettings2.png QualitySettings.png

    It's weird that you don't see the ARGB Half settings at the very least. Here is a link to the RC28 branch on git showing the line where this is set (ARGB32 is textureFormat:0 and textureFormat:2, third in the list, is ARGB Half). https://github.com/umasteeringgroup...tandard/UMA_Diffuse_Normal_Metallic.asset#L22
    Here's a screenshot of that GitHub link:
    GitHubScreenshot.png
    Here's a screenshot showing the drop-down in the asset where ARGB Half is the third choice (in case the order is different for you.)
    UMA_Diffuse_Normal_Metallic_Asset_Channel1_Options.png

    Is there anything else I can provide?
     
  18. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Sorry I wasn't clear - I'm not seeing any errors when using the ARGB half setting - my guess is that my driver doesn't support it or something

    The current textures with transparency have correctly blended the normal maps since the release. I'm sure there is something squirrelly going on with that last checkin that just doesn't manifest itself on my setup. I'll try to test on something with more capable hardware in the next couple of days.
     
    Last edited: Jan 4, 2019
  19. Lathrey

    Lathrey

    Joined:
    Jun 7, 2016
    Posts:
    15
    Ah, ok, that makes more sense, my mistake. It could be bad Radeon drivers too, they have somewhat of a reputation for not properly implementing everything. I can definitely try to update that and check again when I have more time, perhaps on the weekend. Thanks again for your help.
     
  20. Viggy1996

    Viggy1996

    Joined:
    May 11, 2017
    Posts:
    39
    Hey! I'm using UMA for a mobile project and it can't handle the default characters that comes with UMA. Is there a way where I can replace the meshes of a race with my own low poly versions.
    I tried replacing the FBX file under UMA_Core/HumanMale, but the generated Character is still High Poly and is not using my model. My guess is there are separate high poly meshes for each body slot that UMA sews together , but I can't seem find them in the project.Help would be appreciated very much.Thank you!
     
  21. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yes - many people have done this. What you do is that you create a "slot" (or set of slots) out of your file, and create a new race. SecretAnorak has a video tutorial series showing how to do it (he uses Fuse as the base of the new character). It starts with this video: https://www.patreon.com/posts/uma-301-part-1-19835552

    The default model is not particularly heavy for mobile, you may want to try lowering the texture resolutions (etc) first. If you're seeing a big speed hit right up front, it's likely that you are seeing the load of the global library, so you might want to trim out all the unneeded data from the demos.
     
    hopeful likes this.
  22. SickaGames1

    SickaGames1

    Joined:
    Jan 15, 2018
    Posts:
    1,270
    I created a new scene with the updated version from git for 2018.3 and I am not able to see the DNA when selecting the avatar. It won't select anything when the scene is playing.
     
  23. fueledbyochd

    fueledbyochd

    Joined:
    Dec 6, 2018
    Posts:
    10
    Hello all,
    So i am using Unity 2018.3 And UMA RC2 and for some reason the every time i load my project All recipes even ones that came from the UMA package keep saying Asset is not live? and i will click the yellow triangle but if i save the project then reload they are again not live anymore. any help would be appreciated
     
  24. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Did you get any error messages? It's best to delete the UMA/Core folder before reimporting the package, as some old files can hang around and cause compile issues.
     
  25. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Have you moved anything around? Might try repairing or rebuilding the global library.
    if that doesn't work - can you post a screenshot where you are seeing the problem?
     
  26. fueledbyochd

    fueledbyochd

    Joined:
    Dec 6, 2018
    Posts:
    10
    I am going to try deleting everything then re-importing the unity package, hopefully that will fix the problem.
    It was all working fine untill i managed to crash unity over and over with accidental stack overflow. i finally got that problem fixed then UMA started to go all screwy
     
  27. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    A recent SecretAnorak tutorial mentioned a new DNA system is coming soon. Is there an ETA on this? Just planning ahead as I am on the verge of creating my own UMA bases and can wait if things will be easier...
    Thanks,
     
  28. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    It's part of the 2.8 release, that should be available shortly. There is a Release Candidate available here:

    https://github.com/umasteeringgroup/UMA/releases/tag/2.8rc2

    It has a few issues with some video cards, but otherwise should be alright.
     
  29. lcs_tlf

    lcs_tlf

    Joined:
    Apr 7, 2018
    Posts:
    6
    I want to say thank you for the great support for this community and the hard work you put in. I have been very impressed with your assets over the last two days.

    ~Trevor
     
  30. TechCor

    TechCor

    Joined:
    Apr 3, 2015
    Posts:
    56
    Just want to confirm that Unity 2018.3.0f2 with 2.8rc2 shows bad normal maps on a fresh project in demo scenes. No modifications.

    Seems to look fine close up and gets worse with distance. Makes me think it's mipmap related.

    Radeon RX 580 series card.
     
  31. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Thanks - we are getting reports from other users of Radeon cards. I believe it has to do with the introduction of new normal map types (16 bit float). A fix should be available in by the weekend.
     
    hopeful likes this.
  32. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
  33. TechCor

    TechCor

    Joined:
    Apr 3, 2015
    Posts:
    56
    Yes, that fixes it. Thanks.
     
    Jaimi likes this.
  34. Viggy1996

    Viggy1996

    Joined:
    May 11, 2017
    Posts:
    39
    Hey! Is there an LOD Feature in the UMA Pack?
     
  35. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yes - for both textures and meshes (slots). Texture LOD can be calculated on the fly, but the slot-based LOD needs precreated parts. There is a sample scene included that shows how LOD works.
     
    hopeful likes this.
  36. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    OK, thx. I have this and assumed SecretAnorak the same.
     
  37. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    Hey Steve,

    thanks a lot for your assasin. Looks great and fits perfect for a sidekick evil NPC in my game :)

    And thanks again everybody for UMA, great Job!
     
    hopeful likes this.
  38. Harekelas

    Harekelas

    Joined:
    Feb 3, 2015
    Posts:
    864
    Hi, I'm planning to migrate my game to unity 2018.3, does UMA work with this version of unity?
     
  39. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    I only found one error so far (using the latest UMA on git) and that is because unity engine and UI have a duplicated class name and you need to specify the namespace in one script. However, I stopped using 2018.3 and reverted for other reasons, so there may be other issues.
     
  40. arteria

    arteria

    Joined:
    May 31, 2007
    Posts:
    2,189
    Thank you, really appreciate your support!
     
  41. fueledbyochd

    fueledbyochd

    Joined:
    Dec 6, 2018
    Posts:
    10
    Ive been using it with 2018.3 for a while now and have not yet ran into any Major bugs If you run into issues i recommend deleting the Uma folder from assets then reimporting the package. and that has fixed any bugs that pop up, at least in my case. but i'm also a code head
     
    Harekelas likes this.
  42. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
  43. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    Oh, that looks amazing! I'm looking forward to the follow-up videos. :)
     
  44. Viggy1996

    Viggy1996

    Joined:
    May 11, 2017
    Posts:
    39
    Hey! Is there any way I can use Lightweight Render Pipiline with UMA? I tried switching to a LWRP shader and even assigned the Textures but always get the pink error material
     
  45. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Not yet - we're having some issues with 2018.3 compatibility, which is holding up the 2.8 release. Once we have these things figured out and 2.8 is released, we'll work on the LWRP/HDRP pipelines.
     
  46. axleR

    axleR

    Joined:
    Jan 9, 2019
    Posts:
    6
    Hello UMA users and developers,

    I have been learning UMA recently and I'm very impressed with what it can do. For our project, at least right now, we just need 3 Blendshapes on the body with swappable heads and swappable hairstyles.

    I have a couple of issues I'm hoping someone here can help me with.

    The first one is, I have a race set up with DNA and slider toggling my 3 body shapes. The issue is the Blendshape is not deforming the mesh correctly. It looks like z-axis is not being used so the character who is supposed to be getting fatter is only getting wider.

    The non UMA character in my scene blends correctly.

    The next issue is the neck seam but we'll come back to that after the Blendshapes.

    Thanks and keep up the good work.
     

    Attached Files:

  47. Snagasson

    Snagasson

    Joined:
    Nov 18, 2018
    Posts:
    6
    Hi there. Many praises to the contributors, I've been fiddling with this project for a while now and I think it's great. Thank you all.

    I'm wondering what's the best way to optimise UV space across multiple clothing pieces : hat , shirt, pants, boots, etc..
    I plan on creating 4 full suites of assorted clothing meshes for a start, and multiple overlays for each. So far the uma skin occupies two different 2048 sized maps and the eye and inner mouth are spread on two 256 px maps, the atlas size is 4096 px, The hair is a different shader so I think it does not matter how much space it takes.

    Should I put each clothing piece's uvs in their own separate square map or can I pack several pieces together in one 2048px map, in a consistent way across my different meshes to optimise UV real estate? (shirts in the same general [rectangular?] space , ditto for pants etc...), as this would allow me to allocate space far more efficiently and have better material definition in the end.

    I couldnt find info on the specifics of the atlassing process. How efficiently does the generator pack the uv islands it needs? does it only work with rectangles or can it rearrange complex shapes? Is it possible to see an atlas at runtime to get a sense of it? I think I read in this thread it is possible to dump it but I couldn't figure out how it's done.
     
  48. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    I'm not sure how that could possible happen. UMA simply copies the blendshape data from the slot to the final generated UMA. There is no separation of individual axis.
    While at runtime, can you click on the UMA object, look at the subobject "UMARenderer" and do you see your blendshapes in the skinnedMeshRenderer there? If so, when you modify the value there does it look correct?
     
  49. axleR

    axleR

    Joined:
    Jan 9, 2019
    Posts:
    6
    No. It looks incorrect.
     
  50. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    Each overlay in a generated UMA, may need space in the atlas, but not always. For example, there are several slots that make up the default uma body, but they share the same overlay. Now, if the legs are hidden or removed the body overlay is still needed for the other slots still being displayed. This shared uv space overlay is more packed together, but then you can't eliminate a portion of it when the mesh/slot using that portion is hidden or removed. Overlays can be layered too. When you do this they are merged (layered on top of each other) during uma generation and dont use up additional atlas space. For example the underwear is in the same uv space as the body texture. But if there was an underwear slot (for extra geometry) then it'd need it's own overlay which would need more space in the final atlas.

    Most of the time they should be in their own map. You can make them smaller, they don't have to be 2048. The reason is because if the uma is not using that slot then it won't need to allocate space for the overlay on that slot. For example, if you don't have a hat on, then it won't allocate space for it. But if the hat texture was packed together with a shirt texture (and they were one overlay) then when the shirt is on the whole texture is used even if the hat isn't on. I can't really think of a time when you'd want to pack several pieces together except maybe for like boots or gloves that aren't sharing the same UV space. You could put them in the same overlay because most of the time they'll be used together anyways.

    It only packs the texture maps, it doesn't pack the islands themselves.
    While at runtime you can expand the uma object and click on the "UMARenderer" and see the skinned mesh renderer. From there you can expand the materials and view each texture (ctrl click on the icon to see a texture window). You can also select the root uma object while at runtime. Then go to the top menu bar, UMA->Runtime->Save selected Avatar generated textures to PNG
     
    umutozkan likes this.