Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. CWatsonT2

    CWatsonT2

    Joined:
    Jan 9, 2019
    Posts:
    114
    I have it checked as "development build" and attached is what I'm getting from using ADB. Does this make sense to you? It runs perfectly fine in the editor without any errors or missing scripts.
     

    Attached Files:

    • ADB.png
      ADB.png
      File size:
      240.7 KB
      Views:
      527
  2. igrus

    igrus

    Joined:
    Aug 29, 2014
    Posts:
    4
    Thank you for the last questions.
    I have one more question.
    Do you have any sites or Statistical data you used to create UMA-based models? I read the article about the average volume, but I forgot where I saw it. Please let me know if there is a related document or if there is anything in mind!

    Thank you for reading!
     
  3. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Well, this seems like it is the problem, but why it is, I can't tell you. I don't seem to have this issue on builds for Windows & WebGL, and I can't really test Android right now.

    I can only recommend doing the following:

    Try removing the .asmdef files. Sometimes this can cause issues with scripts in some cases.

    If that doesn't help In player settings:

    1. Make sure your "scripting runtime version" is ".Net 4.x Equivalent".
    2. API Compatibility Level is ".Net 4.x"
    3. Managed Stripping Level is "Disabled"

    If you're currently using "Mono" as the scripting backend, and those didn't help, try using IL2CPP, and try with the settings above again.
     
  4. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Currently, we are using 16 bit index buffers. So the number of vertexes and polygons is limited to 64k.
    There is some documentation in the ASSETS/UMA folder. In addition, there is a wiki here:
    http://umadocs.secretanorak.com/doku.php?id=knowledgebase:start

    The documentation also contains an invite to the discord.

    Hope this helps!
     
    Deleted User likes this.
  5. CWatsonT2

    CWatsonT2

    Joined:
    Jan 9, 2019
    Posts:
    114
    I made all these changes and it turned out to be that I didn't have the HumanFemaleDNA 1 file in the global library. That doesn't cause an error in the editor but does on the device I guess.
     
  6. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Great! I'm not sure why it worked in the editor, but glad you found it.
     
  7. Umslapogus

    Umslapogus

    Joined:
    Mar 27, 2017
    Posts:
    2
    I am having a rather strange issue -

    I have attached a capsule collider to an avatar prefab. I then detect right clicks on the avatar using a RayCast.

    This works perfectly on all objects I have tried, other than the avatar. The strange part is that the capsule attached to avatar does work while the avatar is building but stops when it is complete.

    I can easily make the collider work if I make it a cube rather than a capsule, which with the collider working at the start makes me think this is something that the avatar creation process is changing in the collider (other than the radius and height, which are scaled as they are expected to. Size does not seem to be the issue and I can't see anything else that might be.)

    Is this an issue with an obvious solution or a known cause?
    (I would prefer to solve it in a way other than brute force removing and re-adding the collider after the build completes, making my own not-quite-capsule or other hacky workarounds)
     
  8. leapp

    leapp

    Joined:
    Mar 19, 2015
    Posts:
    19
    using RendererTexture in UMA making my RT Memory much bigger in mobile platform!!!! how to create a character without RenderTexture???
     
  9. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    There are some scenes/code that change the layers on the character (for physics). In addition, the default setup adds a rigidbody, if that would cause issues.
     
    Umslapogus likes this.
  10. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    if you don't create renderetextures, it will instead create standard textures. Mobile has much more restrictive requirements from the PC.

    Open the generator in the UMA_DCS prefab. You can lower the atlas resolution, the initial scale factor, and turn off mipmaps by unchecking "convert mip maps".
    You can also tune per-texture parameters in the UMAMaterial.

    But the best thing to do is to lower all of the texture sizes, and remove as much as you can from the Global library.
     
  11. leapp

    leapp

    Joined:
    Mar 19, 2015
    Posts:
    19
    Thanks for your reply! Every avatar create its own atlas texture? is there any method to reuse the atlas texture if they are wearing the same clothes
     
  12. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    There is currently no method to reuse textures built into UMA - Everything can be colorized and layered, so the textures aren't guaranteed to be the same even with the same clothes. If you use the LOD system, it will rebuild the textures on the fly, significantly lowering texture usage.

    However, there is also the UMA Power Tools from Unlogick - it will allow you to build a mesh prefab of a UMA character. That could let you reused the prefab with the same texture over and over.

    Some devices will be quite powerful compared to others, so I recommend using the LOD system, and lowering the Initial Scale Factor depending on your target devices. You might also consider using the Power Tools.
     
  13. LuisEGV

    LuisEGV

    Joined:
    Jul 21, 2015
    Posts:
    36
    Hello, I'm having issues with some UMA scripts. For example, the Dynamic Character Avatar, when I select a GameObject with that script attached, it takes a lot to load in inspector (and freezes de editor), with a lot I mean minutes sometimes. Also when I select a recipe asset, this is what shows in editor (screenshot attached), and throw some errors.

    This all seems like is corrupted, but it is a new import. I just downloaded the package and tested in an empty Unity project.

    I have the most recent version on the AssetStore, which is 2.9, but I noticed the problem on 2.8.1. Also I’m using Unity 2019.2.10, but again, the problem appeared before.


    Please help
     

    Attached Files:

    Last edited: Nov 26, 2019
  14. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Well, that definitely sounds like corruption. If you create a brand new project, and import 2.9 from the Asset Store, what errors do you get when you click on a DynamicCharacterAvatar? Do you get an error when you open the Global Library window?
     
  15. Umslapogus

    Umslapogus

    Joined:
    Mar 27, 2017
    Posts:
    2
    It was the default setup, in a place I hadn't looked. The CapsuleColliderSlotScrtipt was overwriting my settings, and removing it from the Additional Unity Recipes slot allowed me to handle collisions with no issues.

    Many thanks for pointing me in the right direction :)
     
  16. leapp

    leapp

    Joined:
    Mar 19, 2015
    Posts:
    19
    sorry, I didn't find the document about LOD, is it UMASimpleLOD.cs ?
     
  17. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yes. There's not a lot of documentation on it, but there is some documentation in the main doc file in the UMA folder.

    But basically it's pretty simple - you put the UMASimpleLOD component on your DynamicCharacterAvatar game object, and set the parms, and it's all automatic.

    I recommend starting with just Texture LOD - it is by far the most bang for the buck.
     
  18. LuisEGV

    LuisEGV

    Joined:
    Jul 21, 2015
    Posts:
    36
    No errors with DynamicCharacterAvatar nor with Global Library window. But when I select a GameObject (prefab or in scene) with DynamicCharacterAvatar attached it takes so much time to load. Errors are thrown when I select a recipe.

    My last test before I asked for help here, was in a new project, and the behavior is the same was in my current project.

    I deleted the package downloaded from asset store, and re downloaded it (also deleted all the files on the project and re imported the package). With this, takes much less time to load DynamicCharacterAvatar (still taking its time), so maybe the package was indeed corrupted.

    The problem with recipes still happening, but I think this issue is completely different (screenshots attached). I don't know if I have to download another package or import some package included with the main one, or if this is indeed an error. As I said, I just re imported the UMA package, so no should not be any missing "material"
     

    Attached Files:

  19. gromamg228

    gromamg228

    Joined:
    Dec 15, 2018
    Posts:
    1
    Hello Jaimi, can you help in adapting to URP (Universal Render Pipeline)? I have already changed the materials, but have a problem in the mesh :oops:

    Update. I think blendshapes is not working.
    Ended.
    the problem was in Skin weights
     
    Last edited: Nov 29, 2019
    arteria likes this.
  20. arteria

    arteria

    Joined:
    May 31, 2007
    Posts:
    2,189
    michaelday008 and Jaimi like this.
  21. radrad07

    radrad07

    Joined:
    Sep 15, 2018
    Posts:
    7
    I would like to use UMA with VRIK component of Root Motion FinalIK plugin with HTC vive HMD, controllers and 3-7 vive trackers attached to feet, knees, elbows, pelvis. I want to dynamically choose a character, add VRIK component and calibration script to bind vive trackers and controllers based on proximity to matching avatar's joints. Something like showed here: https://qiita.com/kotauchisunsun/items/19d828383a63ed7fdece using https://github.com/kotauchisunsun/KotauchiTrackerCalibrator
    I know from umawiki pages there is: http://umawiki.secretanorak.com/3rd_party_integration and VRIK integrationat the bottom, but what about other integration points. Any examples would be appreciated.Thanks.
     
  22. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    An UMA is just a skinned mesh renderer after it is built. For all the VR, Controller questions, and all that, you may find someone who knows some, but you're probably better off asking in the section specific to those things.
    If you need access to the bones before the character is generated, you can use the "Bone Builder" tool to generate the rig for you on your prefab.
     
  23. MaliceA4Thought

    MaliceA4Thought

    Joined:
    Feb 25, 2011
    Posts:
    406
    Greetings :) Am using UMA 2.9 in uMMORPG and using WillB's RPG sets onUnity 2018.4.13f1... I have all the recipes etc loaded in the Global Library Window, however, when the game starts, any recepies in a wardrobe list item are removed on startup with the folowing messages...


    DCS removed M_Warlock from Recipes
    UnityEngine.Debug:LogWarning(Object)
    UMA.CharacterSystem.DynamicCharacterSystem:AddRecipes(UMATextRecipe[], String) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterSystem.cs:296)
    UMA.CharacterSystem.DynamicCharacterSystem:AddRecipesFromAB(UMATextRecipe[]) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterSystem.cs:239)
    UMA.CharacterSystem.DynamicAssetLoader:AddAssets(Dictionary`2&, Boolean, Boolean, Boolean, String, String, Nullable`1, String, Action`1, Boolean) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicAssetLoader.cs:671)
    UMA.CharacterSystem.DynamicCharacterSystem:GatherRecipeFiles(String, String) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterSystem.cs:218)
    UMA.CharacterSystem.DynamicCharacterSystem:Init() (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterSystem.cs:95)
    UMA.CharacterSystem.DynamicCharacterSystem:Awake() (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterSystem.cs:48)

    So came here hoping for help, or at least to point out what i did wrong.

    Thank you.
     
  24. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    This happens when you have recipes in a Wardrobe Set that aren't marked compatible with the race. You just need to go into the recipe, and add the race to them.
     
  25. MaliceA4Thought

    MaliceA4Thought

    Joined:
    Feb 25, 2011
    Posts:
    406
    Did that.. went into wardrobe and the wardrobe item was marked with HumanMale and HumanMaleDCS.. went into the DCS settings and added the individual recepies to the slots... rebuilt from global.. now it's saying cant find the slots :) Still fighting this :)

    Am using HumanMaleDCS


    Now error is :-

    UMAResourceNotFoundException: dSlotLibrary (211): Unable to find: M_Warlock Hood
    UMA.CharacterSystem.DynamicSlotLibrary.InstantiateSlot (System.String name) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicSlotLibrary.cs:170)
    UMA.UMAContext.InstantiateSlot (System.String name) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAContext.cs:119)
    UMA.UMAPackedRecipeBase.UnpackRecipeVersion2 (UMA.UMAData+UMARecipe umaRecipe, UMA.UMAPackedRecipeBase+UMAPackRecipe umaPackRecipe, UMA.UMAContext context) (at Assets/UMA/Core/Scripts/UMAPackedRecipeBase.cs:849)
    UMA.UMAPackedRecipeBase.UnpackRecipe (UMA.UMAData+UMARecipe umaRecipe, UMA.UMAPackedRecipeBase+UMAPackRecipe umaPackRecipe, UMA.UMAContext context) (at Assets/UMA/Core/Scripts/UMAPackedRecipeBase.cs:39)
    UMA.UMAPackedRecipeBase.Load (UMA.UMAData+UMARecipe umaRecipe, UMA.UMAContext context) (at Assets/UMA/Core/Scripts/UMAPackedRecipeBase.cs:20)
    UMA.UMATextRecipe.Load (UMA.UMAData+UMARecipe umaRecipe, UMA.UMAContext context) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/pUMATextRecipe.cs:182)
    UMA.UMARecipeBase.GetCachedRecipe (UMA.UMAContext context) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMARecipeBase.cs:51)
    UMA.CharacterSystem.DynamicCharacterAvatar.AddAdditionalSerializedRecipes (UMA.UMARecipeBase[] umaAdditionalSerializedRecipes) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterAvatar.cs:2967)
    UMA.CharacterSystem.DynamicCharacterAvatar.LoadCharacter (UMA.UMARecipeBase umaRecipe, System.Collections.Generic.List`1[T] Replaces, UMA.UMARecipeBase[] umaAdditionalSerializedRecipes) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterAvatar.cs:2810)
    UMA.CharacterSystem.DynamicCharacterAvatar.BuildCharacter (System.Boolean RestoreDNA) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterAvatar.cs:2729)
    UMA.CharacterSystem.DynamicCharacterAvatar+<BuildFromComponentSettingsCO>d__84.MoveNext () (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterAvatar.cs:568)
    UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)
     
    Last edited: Dec 2, 2019
  26. vsinners

    vsinners

    Joined:
    Jun 12, 2019
    Posts:
    4
    I want to use the same tattoo style overlays on several slots. In the recipe, I have it so that the overlay is compatible with two slots. But when I drag that recipe into my UMA, it's also showing the mesh of the other slot on top of the character.Is there a fix for this? I want to be able to use the same tattoo style overlay recipe for multiple slots.
     
  27. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You can't do it that way because (as you see) it will add the extra slot to the other character.
    Instead, make two recipes with two different names. But give them the same "Display Name" in the recipe. And make each recipe have the correct slot, overlay and compatible race as needed.

    This way, when you are presenting the recipes to the user by "Display Name" they appear to be the same item, even though they are not.
     
  28. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    If you are using the UMA_DCS prefab, it should be setup to pull the slots and overlays from the Global Library.
    If you are using a different prefab, or setup your own, make sure your libraries in the prefab have "Dynamically add from Global Library" checked. You might want to verify that M_Warlock Hood is not setup to go into an Asset Bundle. Look in the Global Library, and make sure the slot is there.


     
  29. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    @Jaimi - Hey there! Just curious how the addressables version of UMA is coming along. IIRC, you were thinking it would come in at least two parts, with a basic function version coming first.

    Is that still how it's looking?
     
  30. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I'm almost done with the beta of the first draft. Just working through an issue that appears to be timing related. If you want to get a headstart on it, it's in the features-addressables branch. Only the "simple setup" and "addressables" scenes are currently working.

    I haven't done any actual measurements, but my general feelings are: "Wow, this makes it much faster to load, and use less memory". I'll be looking at metrics as soon as I have this last bug fixed.
     
    hopeful and chrisk like this.
  31. StarChick971

    StarChick971

    Joined:
    Nov 28, 2015
    Posts:
    117
    For all people using URP (Universal Rendering Pipeline), you will have to change in each UMAMaterial asset the material property from _MainTex to _BaseMap so that you won't see the pink NOT SET texture on your complete avatar.
    Still, I didn't tried with LWRP and HDRP but I think it would be the same fix to apply.
     
  32. ChickenHero

    ChickenHero

    Joined:
    Jul 18, 2016
    Posts:
    79
    I am not familiar with bone animation.

    Even if I change the value of the ForearmLength slider, the character's arm doesn't get long and grows.
    Looking at the UMA sample race, the bones affected by motion, such as LeftForeArm, have the same XYZ values. Do they need to be the same value?
     
  33. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208

    Generally, for bones that are affected by animation, you create a duplicate bone and append "adjust" to the name. Then you weight the vertexes to the "adjust" bone instead. this will allow you to modify the adjustment bone affecting the vertexes, but not affect the animation and children bones of the original bone.

    Does that help?
     
    ChickenHero likes this.
  34. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    That sounds so awesome! As for the timing issue, I'm not super surprised as addressables allow us to access resources that may exist remotely. That probably affects the item access timings in some new way.

    One part of the system that I'm really going to love is the automatic unloading of unused slots and overlays. Not sure if that's going to be a feature in UMA up front, or if it comes later, but ... it sounds soooo great. :)
     
  35. daveinpublic

    daveinpublic

    Joined:
    May 24, 2013
    Posts:
    167
    Hey,

    I just updated Unity from 2018.2 to 2019.3. Now all my UMA models look kind of weird. Their faces are really pronounced, the girls boobs are really pronounced, and everyone's guts are larger but there's a chunk missing from the center, pictured below. Can't get the guts to smooth out even if I increase or decrease the sliders, I can see changes, but it changes the lower portion of the gut.

    Not sure how to fix this.

    Thanks - David
     

    Attached Files:

  36. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    My gut feel would be that the vertex weights in the selected quality settings is not set to 4.

    If that's not it, did you reimport UMA or upgrade it as well?
     
  37. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I found the issue, it's actually not a timing issue, but a caching issue. I should have it solved sometime today (I hope).
    The automated cleanup will not be in the first release. The first pass will have the ability to preload specific items, and then free them when done. It sounds hard to use, but it's actually pretty simple based on the wardrobe items.
     
    hopeful likes this.
  38. ledentsov

    ledentsov

    Joined:
    Feb 8, 2017
    Posts:
    145
    Hello! I would like to change the avatar texture in runtime. I tried the following code:
    Code (CSharp):
    1. public DynamicCharacterAvatar avatar;
    2. private void ReplaceTexture()
    3. {
    4.     SlotData slotData = avatar.umaData.GetSlot(0);
    5.     OverlayData overlay = slotData.GetOverlay(0);
    6.     Texture[] overlayTextures = overlay.textureArray;
    7.     Texture2D texture = new Texture2D(128, 128);
    8.     overlayTextures[0] = texture;
    9. }
    But it also changes the texture in the overlay asset and applies to all avatars.
    Is there a way to update the texture for the particular avatar without changing the overlay asset and without affecting other avatars?
     
  39. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You would need to modify the sharedmateeial on the skinned.mesh renderer.
     
  40. daveinpublic

    daveinpublic

    Joined:
    May 24, 2013
    Posts:
    167
    Hey, looks like that worked thanks, would have never found that! It's called Skinned Weights in 2019.3. For some reason, before it only needed to be at 1 in 2018.2, not sure why.
     
    Jaimi likes this.
  41. ledentsov

    ledentsov

    Joined:
    Feb 8, 2017
    Posts:
    145
    As I understood, the shared material of the skinned mesh renderer has a single texture merged from all slots. So if I need to replace a texture of the particular slot (a head for example), I need to find the frament of the head texture in the shared material and change only this part. Right?
    Is there any other way to replace a texture for a particular slot for a single avatar rather than modifying shared material of the skinned mesh renderer?
     
  42. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    If you could give more information about what you are wanting to do, I might be able to give you better advice.

    The Overlay is made to stack (so you can put a base shirt down, colorize it, put shiny buttons on the top, put a team number on it, etc), so if you have a set of things to add, simply add more overlays to the slot. (it overlays based on the alpha texture).

    You can mark the UMAMaterial as "no atlas" and that will make any texture that uses it into a separate submesh and will not generate an atlas. You would then need to duplicate the texture, and then modify it.
     
  43. ledentsov

    ledentsov

    Joined:
    Feb 8, 2017
    Posts:
    145
    Thanks for the replay. I will try to be more specific.
    My task is to change the main texture of the head slot for the avatar on the scene. I have instantiated a base dynamic character avatar (HumanMaleRace) on the scene. Then I need to change the head texture to the new one. I don't know this new head texture beforehand, so I can't create an overlay.
    head_texture.png

    To achieve it, I use the following code:
    Code (CSharp):
    1. public DynamicCharacterAvatar avatar;
    2. private void ReplaceTexture()
    3. {
    4.     SlotData slotData = avatar.umaData.GetSlot(0);
    5.     OverlayData overlay = slotData.GetOverlay(0);
    6.     Texture[] overlayTextures = overlay.textureArray;
    7.     Texture2D tex = new Texture2D(2, 2);
    8.     tex.LoadImage(File.ReadAllBytes("path_to_the_texture_file"));
    9.     overlayTextures[0] = tex;
    10. }
    The problem is that this code also modifies the M_Face overlay. The _MainTex becomes missed if I run it in the Unity Editor. In case I build a standalone app and try to instanciate the second avatar, this avatar also has a new texture instead of default.
    upload_2019-12-11_9-41-22.png

    The possible solution is to revert back the original texture for the slot right after the "BuildCharacter" is done. But this approach doesn't work when I need to update textures for several avatars simultaneously.
    So I wonder if there is any other better solution to solve my task?
     
  44. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    For this case, I would suggest perhaps giving each character its own unique head overlay, and generating your texture and updating the overlay before building.
    In the future, I can try adding an event into the build process that will allow you to supply a replacement texture when the atlas is built. This is probably the optimum is I understand correctly. I will add a Trello task for this.

     
  45. ledentsov

    ledentsov

    Joined:
    Feb 8, 2017
    Posts:
    145
    Thanks for the suggestion. I will be waiting for an update with such event to make a texture replacement.
     
  46. Harekelas

    Harekelas

    Joined:
    Feb 3, 2015
    Posts:
    864
    Hi, I've met an issue with blendshapes on UMA generated characters:
    upload_2019-12-12_23-41-44.png
    The left character is the source mesh with several blendshapes applied on. To the right is the character UMA generated with the same blendshapes. The normal on the UMA character is wrong. The source mesh used to have the same issue, but can be resolved by changing the normal option to calculate in the fbx importing settings. How to let uma character auto generate its normals rather than using static ones?
     
  47. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You would need to rebuild the slots after reimporting the fbx with the calculated normals.
     
  48. ikermozos

    ikermozos

    Joined:
    Dec 5, 2019
    Posts:
    8
    Hi!

    I'm using UMA with the latest DNAController to drive some blendshapes on my character's body (3 body types), as well as some of its garments too. Before adding the DNA, when running the scene, I was able to load and unload these garments dynamically without problems, by dragging Wardrobe Recipes or Collections in Inspector/Dynamic Character Avatar.

    However, once I added the shapes/DNA, only the first loaded/dragged outfit (using a Wardrobe Collection or Recipe) looks good and follows what I am doing with the sliders. If I switch or add a garment, the shapes look slightly corrupted, or even do not work. If I play with the shape values in the UMARenderer node when running, it even looks like some of the sliders are driving vertices from other meshes sometimes, which is really strange. I thought it could be a problem with the shapes deltas, but adding the FBX file to the scene to test yields correct results.

    The only thing I can think of is that I updated my meshes by dragging updated garments in each slot's SkinnedMeshRenderers rectangle, to update them after I built my shapes in Maya. I want to try creating the slots from scratch, to see if I can avoid the problem. So my questions are:

    - Do you have any idea what could possibly be going on?
    - Is there any known issue with updating meshData for adding shapes?
    - On the DNAConverterController, I am using one BlendshapeDNAConverter per body type to drive the shapes of several meshes. So far I have 3. Would grouping the Converters by mesh help to avoid instability?

    Any clues would be really helpful. Thanks a lot, and thanks for your amazing work too!
     
  49. ikermozos

    ikermozos

    Joined:
    Dec 5, 2019
    Posts:
    8
    *** UPDATE ***

    It does look like updating a mesh with no shapes to a mesh with shapes dragging it to the SkinnedMeshRenderers rectangle in an existing slot could be the cause of this issue. By creating a new slot using a garment with shapes everything seems to work.
     
  50. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I'll add a note to check for that, thanks.