Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. Boegi

    Boegi

    Joined:
    Dec 6, 2014
    Posts:
    19
    Hello,
    I'm new to UMA and finished Secret Anoraks 101 tutorials today.
    I have planned to use the Oculus LipSync plugin with UMA but now I’m kind of stuck and want to ask you for the right direction.

    First – I know, that there are some tutorials on LipSync Pro & UMA

    And I also watched them to get the idea of mapping the “phonemes” to the UMA facial expressions.

    Oculus LipSync https://developer.oculus.com/documentation/audiosdk/latest/concepts/audio-ovrlipsync-sample-details/ works with Skinned Mesh Renderer, which should have blend targets assigned to it. They follow the Viseme Standard (15 shapes)
    I’ve looked through the UMA2 Expressions Examples Folder and found the demo and the Phonemes animations. However… I have a lot of puzzle pieces and can’t figure out the best way to fit them together.
    Does anybody have some tips on how to continue?
    Thanks in advance
     
  2. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Yeah, probably content, so that should be be difficult. I want happy clients. :)
     
  3. Boegi

    Boegi

    Joined:
    Dec 6, 2014
    Posts:
    19
    Hello again...
    I'm still stuck with the LipSync integration. However - I found some more puzzle pieces ;-)

    Maybe someone has an opion / advice on the salsa with randomeyes LipSync integration?!
    https://crazyminnowstudio.com/posts/uma-lipsync-using-salsa-with-randomeyes/

    From the "marketing" texts it supports UMA2 - however... I found no link from the UMA club back to this asset?! Is it a recommended asset? Is it updated and supported also from the UMA side?

    Thanks for your answers...
     
  4. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    SALSA LipSync Suite works with latest UMA, is really esay to use and works very well.
    Salsa with Random Eyes was the older Version and worked with older UMA.
    Both have an addon to work with UMA (which is included in the Price if you buy SALSA).

    I used UMA with Random Eyes before and now using SALSA Lipsync and it works prefect for me.
     
    Jaimi and Boegi like this.
  5. Toylips

    Toylips

    Joined:
    Feb 15, 2013
    Posts:
    28
    Hi there!
    First of all UMA is a fantastic tool, but can somebody help me with LODs?

    I'm using randomizer in UMA DCS Demo - Random Characters.scene to create a lot of characters, and UMADynamicCharacterAvatar-LOD with SwapSlots toggle,

    I did lods for some clothes and weapons, and its swapping.
    1. But I can't to understand how to do it for bodies, for example for HumanMale/HumanFemale?

    2. And should I create LODGroup for the result some how ?
    because feel like its lagging a lot when models are swapping in the Demo scene.

    3. What I'm doing wrong?
    thanks.
     
  6. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I have no clue on the Oculus lipsync. I personally use Salsa, and it works great with UMA. Note that it is an approximation - a good one, but still an approximation. Perfect lip sync can be done with LipSync Pro, but it's a lot of work.
     
    Boegi likes this.
  7. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    1. You do it the same way with bodies - you create LOD versions of the body slots, add them to the library, and it will automatically swap the body parts in.

    2. No LOD groups are needed - it's all handled in UMASimpleLOD.

    3. You may not be doing anything wrong. Pushing lots of polys and lots of textures can really slow things down. For UMA, which creates unique texture atlases for each material for each character, the limiting factor is usually texture memory. the existing scene (with 200 UMAs) gets about 40fps for me on my intel graphics.

    To see if it's texture memory, go into the UMA generator, and increase the initial scale factor. it will make everything blurry. If you get a speed boost, then you know it's a texture issue.
     
  8. Toylips

    Toylips

    Joined:
    Feb 15, 2013
    Posts:
    28
    Thank you Jaimi for the reply!

    If camera and characters are staying, 188 characters give me pretty fast fps.

    but if I'm moving the camera, everything is lagging, I set initial scale factor to 10 and to 66, it didn't help.

    Profiler shows that UMAGenerator doing a lot of work when cam is moving.
    UMAGenerator statistic.png

    I'm using radeon 560 4gb

    What is happening when lods are switching,
    is it rebuild atlases and skinned meshes?
     
    Last edited: Sep 18, 2019
  9. DeadSeraph

    DeadSeraph

    Joined:
    Sep 8, 2017
    Posts:
    97
    Hi @Jaimi I'm just wondering if there is a way I can put one of our coders in touch with you to discuss how assets and things like textures are stored in memory? That stuff is a bit out of my wheelhouse and he has some general questions. We use slack if you guys have a slack channel or if you have an email or something he can reach you at that you can DM me.
     
  10. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yes - it's rebuilding the mesh and atlases - perhaps your LOD distance is to small so there is a lot of rebuild? Try to turn off SwapSlots - usually textures matter much more.
     
  11. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I'm usually on the discord (here's an invite: https://discord.gg/sCN8JBy )
    I'll be working on the addressables version of UMA starting shortly - but it will be a long haul. This will give us the ability to load/unload assets automatically.
    Currently the only option to unload assets is to move everything to asset bundles, and write something to unload any in use when done with them.
     
  12. id0

    id0

    Joined:
    Nov 23, 2012
    Posts:
    455
    What is this warning mean? I have it every time I change something. Everything works though.

    Overlay' missing required color data. Resizing and adding defaults
     
  13. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    This means that an overlay in a recipe has less color channels than the material has texture channels.

    The most likely thing that has happened is that a recipe was created, and an overlay was added to it - but then later, the UMAMaterial was modified to contain more texture channels. You can ignore this, as it added default color channels to it (the additive channel was set to 0,0,0,0 and the mutliplier was set to 1,1,1,1 - so nothing happens).
     
    id0 likes this.
  14. holy_3051_unity

    holy_3051_unity

    Joined:
    Sep 24, 2019
    Posts:
    6
    I was trying to make blend shapes work with UMA. I already achived to make morph from 3DS max work in Unity but the Secret Anorak tutorial seems to be obsolete. What is suppose to be the process to implement it now. Is there any tutorial?
     
  15. DavidBVal

    DavidBVal

    Joined:
    Mar 13, 2017
    Posts:
    206
    I am trying to show an outline around selected UMA avatars, even when they are behind obstacles. However none of the shader-based solutions I've tried seem to work well with UMA models/clothing.

    Has anyone managed to do this? I mean something similar to what Unity Editor does with its orange outline.
     
  16. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You'll probably need to get some sort of Outline shader, and then modify the UMA Materials to use that shader instead of the standard shader. To adjust the shader parameters, you can get the materials from each UMA by getting the sharedMaterials from the Renderers (DCA.umaData.GetRenderers() will return the SkinnedMeshRenderers).


     
  17. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    When you import the FBX, be sure to select "Import Blendshapes" on the import settings. On your DynamicCharacterAvatar, there is an option to "Load Blendshapes" that also has to be selected.
    To create DNA for those, create a new DynamicDNAConverterController.
    Add a Blendshape DNA converter to it, and add your blendshape and parameters to that. Assign that to your race.
     
  18. anomas

    anomas

    Joined:
    Jul 3, 2016
    Posts:
    47
    Hey everybody, i'm just replying back in case there are people that might have this same problem. This problem was due to a bug with unity's cloth system. They broke the module with updates:
    (https://issuetracker.unity3d.com/is...17.1437372437.1569019396-996547989.1566930726)
    The latest version i found in which it still works as intended was 2019.1.13f1 but they said it was fixed in 2020.1 which is coming at some point.
    So if you want to use unity cloth with UMA you'll have to downgrade your version of unity.
    Cheers


    Edit.: I've noticed that the UMA wiki documentation regarding the integration with unity's cloth is missing a few steps and have some wrong info as well, so i want to make a video tutorial to help anyone that stumbles upon it. Does anyone knows if there is already one so i don't make something useless?
     
    Last edited: Sep 26, 2019
    Boegi, Jaimi and id0 like this.
  19. id0

    id0

    Joined:
    Nov 23, 2012
    Posts:
    455
    anomas I think those tutorials obsolete. I personally want cloth, but everything is broken even uma example, at least in my version of unity (2019.2.5)
     
  20. id0

    id0

    Joined:
    Nov 23, 2012
    Posts:
    455
    I want to ask one thing. Now I use UMA in one small project, and I like it. I want to try this in my main game, but it is not so simple. I already have an equipment system, and it divides the body into many small parts, so the arms are divided into the left arm, left hand, right arm, right hand, etc.. Is it possible to create my UMA character from scratch and let UMA build all this slots?

    Also I already have mimic basic on blend shapes. Is it supported well?
     
    Last edited: Sep 26, 2019
  21. dlshs

    dlshs

    Joined:
    Oct 20, 2018
    Posts:
    3
    Hi,

    I'm currently investigating the use of UMA assetbundles for my project and am currently following the instructions in the UMA AssetBundles manual.
    I have a folder containing a wardrobe recipe, the corresponding overlay, slot and relevant textures. My aim is to apply this wardrobe recipe on the character using the SetSlot(string Slotname, string Recipename) function without having the recipe in the global library, and purposefully forcing UMA to load it from the relevant asset bundle instead.

    Perhaps I'm doing this wrong, but I've performed the following steps:
    1. Assigning the folder to an asset bundle.
    2. Building asset bundles using the UMA Asset Bundle manager
    3. Checking the "Dynamically add from AssetBundles" on the following UMA_DCS child objects; DynamicSlotLibrary, DynamicOverlayLibrary and DynamicCharacterSystem.
    4. Removing the aforementioned overlay, slot and recipe from the global library to ensure that UMA loads the assets from the asset bundle.
    5. When I attempt to call SetSlot as described above, the Unity editor crashes without any stack trace. Is there some step that I forgot to take into consideration, or have I in some way misinterpreted the way I'm supposed to work with asset bundles with UMA?

    Cheers,
     
    Last edited: Sep 26, 2019
  22. tredpro

    tredpro

    Joined:
    Nov 18, 2013
    Posts:
    515
    May I request something here? If it's possible please inform me but a master mask feature that can be enabled or disabled. Would be nice for first person to hide all but the arms
     
  23. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You can split up your models, create a new race, and create whatever wardrobe slots you want (they're defined on the racedata).

    You can use Blendshapes with UMA also. Of course, if you add wardrobe items to areas that use Blendshapes they also have to have the same blendshapes so they adapt correctly.
     
    id0 likes this.
  24. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Look at "UMA Demo - UMARendererAssets" - this shows how to use the UMARendererAssets to hide parts of the UMA in various circumstances. The sample just hides the head in the scene, but doesn't hide it for reflections or shadows.
     
  25. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Have you setup the server, enabled emulation, etc?
    Are you able to go into the asset bundles demo, and dynamically add the werewolf?
     
  26. anomas

    anomas

    Joined:
    Jul 3, 2016
    Posts:
    47
    You wont be able to use unity's cloth using any version of unity after 2019.1.13f because the unity team broke it with updates. Either you downgrade to 2018.1.13f or wait for 2020.1(in which they said they've fixed it)
    I'll make a video tutorial showing how to create custom wardrobe using uma and cloth.

    Regarding you question have you seen secret anorak's daz to uma video tutorial? He shows how you can use uma with custom models and custom slots. I think it can help you with your issue:

    Watch from this one on. Its quite easy so don't worry.
     
    kenamis and id0 like this.
  27. anomas

    anomas

    Joined:
    Jul 3, 2016
    Posts:
    47
    Hey jaimi, do you know how to create a custom collider textrecipes? I need some extra colliders for the clothing and using bone builder and then adding colliders to the bones just gave weird rotation on colliders at runtime.
     
  28. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Two ways:
    You can create a set of "UMAPhysicsElement" objects, and then create a slot script for these (see the PhysicsHDSlot example), or you can just add a UMAPhysicsAvatar script to your DCA and directly add the definitions to it.

    Otherwise, look at the CapsuleColliderRecipe, which just creates them all in code.
     
    anomas likes this.
  29. anomas

    anomas

    Joined:
    Jul 3, 2016
    Posts:
    47
    Thanks my man, i was able to do that and everything works great as far as that, but if you look at the physics/cloth example you can see that it adds the colliders created using "UMAPhysicsElement" to the cloth component colliders at runtime but i can't see any custom script responsible for that. Do you know how the example does that with UMA?
    Just for reference i am using custom models, not the UMA default models.
     
  30. DeadSeraph

    DeadSeraph

    Joined:
    Sep 8, 2017
    Posts:
    97
    Hi everyone. Still running into a problem with memory profiling. I've created a thread in the unity support forum, but I'll copy the text here as well in case anyone active in this thread might have some insight. https://forum.unity.com/threads/discrepancies-in-memory-profiles.751985/

    "Hey all. Our team is running into an issue while optimizing our project for release on iOS / Android. We are using UMA, so we've gone through all the existing textures and reduced them as the memory profiler was showing texture usage at well over 5 gigs at 1st. I've since managed to get that number to under 500 mb, however we've run into a problem. I don't believe the issue is related to UMA (which is why I'm posting this here).

    What happens is that myself and one other team member show total memory usage in the memory profiler under 1.5 gigs, however the person sending out our builds is showing 3 times that. While going through the textures, I adjusted the default settings for them to reduce the size, and also set device specific overrides to match (for iOS and Android).

    Even textures I *haven't* optimized still show up 3 times higher on his end than they do on either of ours. I'm wondering if anyone has any insight into what could be causing this?

    We've gone over our project settings, and best we can tell, our settings match. Is there a particular setting we could have missed somewhere, or is it possible this could be related to the operating systems we are developing on? Is there perhaps texture specific settings I should be applying that I've missed?"

    *edit to add*: Also worth noting, is that the person getting the highest results is working on a mac, while myself and our other team member are on PC's
     
  31. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Compression settings maybe?

     
  32. DeadSeraph

    DeadSeraph

    Joined:
    Sep 8, 2017
    Posts:
    97
    We checked that. Mine were set to default and the person working on a mac was set to LZ4, but when he set his to default he didn't see any difference in the memory profiler (I changed mine as well and didn't notice a significant difference either). It seems like it's something related to the OS he is on.

    Is there a way to perhaps enforce project settings across multiple developers to make sure we haven't missed a setting somewhere?
     
  33. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yeah, those are stored in the "ProjectSettings" folder. Just check them in with the rest of your stuff. Lot of people put those in the .gitignore, so you may need to edit that.

     
  34. bran76765

    bran76765

    Joined:
    Jul 14, 2018
    Posts:
    26
    Hi Jaimi (or whoever can help me with this issue lol),

    So I've imported one of Arteria3d's packs and I wanna use all the clothes in the pack. However, anytime i add the packs to the build, my memory skyrockets and I've looked into the memory profiler, and it says that each texture is 42.7 MB and is referenced by only 2-3 UMA things (as well as ManagedStaticReferences). Is there anyway to reduce this memory usage? because it seems a bit weird that after one pack, Unity's memory is almost maxed out. If I wanted to use over 100 recipes (or over 500-1000 overlays) or basically just a lot of recipes in my unity game, shouldn't that be possible and still use good memory usage?
     
  35. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yeah, game development is always a constant battle between nice looks and resource usage.
    Arterias new stuff ships with very high quality textures. You'll need to review the textures and reduce resolution as much as possible, while still maintaining the look you are after.

     
    Last edited: Sep 28, 2019
    DeadSeraph likes this.
  36. DeadSeraph

    DeadSeraph

    Joined:
    Sep 8, 2017
    Posts:
    97
    See jaimi's comments on texture resolution, but once you adjust for that, yes you should be able to use multiple recipes. You'll want to share textures and overlays wherever possible. So for instance if you have an item for a male and a female (or even multiple races), you'll want the wardrobe recipes for each to share the same overlay and textures.
     
  37. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    Hi Jaimi,

    I am using Unity 2019.2.6f1
    I am using HDRP package version 6.9.

    I am trying to upgrade a project that was using UMA version 2.8 to the HDRP (hd pipeline). It seems like it almost works, but the clothes and atlases don't seem to work quite correctly (they're very black in a lot of areas). I think UMA version 2.9 is now out yes? But I'm afraid to upgrade to UMA 2.9 because it might break stuff in my project -- I don't know that for sure though.

    So, I am trying to do a "selective upgrade" in UMA 2.8, where I thought maybe it was just the Atlas folder that might need updating from 2.8 (the one with the "TextureMerge" prefab). I changed all of my material property names to "_NormalMap" from "_BumpMap". I experimented changing them from _MainTex to _BaseColorMap and stuff like that as well. I also updated all of the materials that could do it, to using the HDRP>Lit shader. But so far it still doesn't work quite right.


    So my questions are: #1: Should I be afraid to upgrade to UMA version 2.9 for HDRP? Would it break stuff from 2.8? How should I do that if I do?

    Question #2: If I try to selectively upgrade things in UMA 2.8 to work with HDRP, what exactly needs to be upgraded to make it work with HDRP properly (for example, just the texture merge asset, or specific shaders, or specific material assets, or all of the above, etc....)?

    Thanks for any help.
     
  38. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Is anybody using UMA with Android or IOS? I'm using the demos scene for for android, it takes so long for the avatar to appear, around a minute, is this normal?
     
  39. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    For each avatar, or for the first?
     
  40. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    For the first only its slow, subsequent avatars seem to appear pretty fast.
     
    Last edited: Sep 30, 2019
  41. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Its loading the library. It's not optimized for mobile by default. For best performance, you need to really tune the library for mobile (reduce texture sizes, remove unused slots, overlays Etc)
     
  42. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    #1 - it shouldn't break anything, though you will probably need to rebuild the global library. 2.8.1 to 2.9 should be a relatively painless upgrade.

    #2 - I would not recommend trying to piecemeal update 2.8 to HDRP, there are a lot of changes across a bunch of files. I didn't do this work, so I can't really help, but I think you would be left with a broken system going down this path.

     
  43. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    Thanks Jaimi. Ok, so when I update, can I leave 2.8 folders where they are and just overwrite files with 2.9? Or should I completely delete 2.8 folders first?
     
  44. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    It's best to move the content folder out, delete the UMA folder, import UMA from scratch, and copy the content folder back, ignoring duplicates.
     
  45. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    I already reduced the texture sizes and removed some slots, but it freezes for a round 1 minute when creating the first avatar. If i reduce the texture too much they dont appear anymore on the character.

    Is there a way for you guys to make a slimmed down version for mobile? I dont really understand how UMA works, it would take me a really long time to figure it out, but if you experts created a mobile version (reduce number of slots, textures characters etc) it would probably take you a day at most, and it would benefit a lot of people than making us all do it ourselves. Just a suggestion.

    Note: its not only slow for mobile, i have a WebGL version of the game and its slow there too when creating the first avatar, but on PC build, or when running in the editor its virtually instantaneous.
     
  46. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The problem is the global library loading. The more stuff you have in it, the longer it loads. Unity loads the library, not us, we don't have any control over the speed of it. You need to remove everything from it that you don't need. If you have removed everything from it, then you need to consider moving to using Asset Bundles.

    I'm working on a version that ditches the scene libraries and global library, and uses addressables. Using this, we will be able to demand load the items that are needed, and cache specific items for speed once loaded. This is quite a ways off.
     
  47. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Which library is it loading? the UMA data? With asset bundles will UMA still allow the user to change clothes etc? Are there still recipes (i need that)? How do i use the asset bundles?
     
  48. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    It's loading the global library - it loads it the first time it's used. This can take a few seconds on mobile (or more, if you've loaded it with a bunch of assets).
    Using asset bundles, everything still works just like you expect. UMA just loads from the asset bundles instead. It's quite complicated to use Asset Bundles. There is a chapter dedicated to it in the manual (the manual is in the UMA folder).
     
  49. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Thanks for the info, but i dont know what the global library is, im not that deep into Unity yet. So this global library only contains data for the UMA character system, or does it have other stuff in there too for other parts of the game?
     
  50. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The global library is a UMA specific thing - it indexes and references all the slots/overlays/recipes (etc) that UMA needs - so UMA can find them and load them. It's the default method to add stuff to UMA - go to the UMA menu, and choose "Global Library Window" - that will load a window with all the types, and all the items of each type.

    You can remove things from the global library that you don't need. For example, if you are writing a game using modern clothing, you don't need the "Gloves of Hammer". Open the SlotDataAsset type in the global library, and remove it by using the "-" button. If you aren't using the High Poly races, you can remove all the FR_HIGH slots. etc.
     
    kenamis likes this.