Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    Thanks, I actually meant having a single slot, ie. a single mesh for arms, torso face and legs and not separating them out into separate slots? and hence needing an atlas.
    is there a reason not to do this?

    My reason is, that as soon as i separate the arms legs etc. in blender, i can see defects in the surface that are visible in unity. The seams themselves are patched perfectly and the unified mesh looks great in unity, but where the individual pieces are together they catch the light differently, maybe have slight differences in angles on the faces adjacent to the cut lines, making them look like separate pieces (and this is visible in blender and unity). So i wondered, why cut the mesh up? why not leave the skin as one single mesh (and hence i would need to make an atlas prior to preparing the UMA)? is there any negative to doing this?
     
  2. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    1. The model is cut up so that you can hide parts that are occluded. You use the uncut version of the model as a "seams mesh" to fix the normals getting rid of the seams.

    2. If you give each slot it's own textures and overlay, then when the slot is discarded during the character build, its textures are not added to the atlas, saving space.

    3. You must hide or suppress the slot to save the space. Using a mesh hide asset does not discard the slot.

     
    umutozkan likes this.
  3. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    So maybe i should try to address the core issue, it sounds like a single mesh will work, but is not efficient. So i illustrate my issue, I am away from my project so quickly mocked it Daz-Blender-Unity. You can see separating the arms in Blender creates a different appearance on the mesh, for illustration i drag into Unity with the same results and sadly this is how the output looks in the final UMA (my actual project is all setup with textures etc.), like the arm is glued on:

    upload_2019-1-24_15-53-29.png

    I am not saying this is an UMA problem as you can see the issue in Blender, but i would really like to know what causes this and how to avoid it. I have followed SecretAnorak's tutorial through precisely 3 times and this remains. I have only ever tried with Daz characters, I dont know if this is unique to them, but i dont see why it would be... Any ideas how to get around this?
     
  4. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204

    That is caused by Blender "smoothing" the normals.

    That is what the "Seams mesh" functionality cleans up.

    You should have two copies of your model in blender: The "unified model" with no seams. and the "split model" with the seams. You import both models into Unity.

    You create slots from the split mesh parts. In the Slot builder, there is a field for the "Seams mesh". You put the Unified mesh into the "seams mesh" field, and one of the mesh parts (for example, the arms) in the "Slot Mesh".

    During the construction of the slot, UMA will use the "seams mesh" to fix the slot normals.
     
    hopeful and kenamis like this.
  5. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    Yes, I have done this, it doesn't seem to be working for me though. All slots were created using the unified mesh and the individual parts.
    The only way I have deviated from the tutorial is that I imported the blend file into project instead of exporting everything as fbx, just because blender fbx exporter randomly deletes blendshapes from sub parts creating major bendshape issues.
    I guess I could go back and repeat all with an exported fbx, knowing I cant use it because of the broken blendshapes.... But in theory this shouldn't be necessary, I'd have thought the models in blend file should be suitable (although it is possible an import setting is different - that said, the unified looks fine) .
     
  6. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    My guess is there is some issue with it finding the right vertexes to fix the normals - are the models scaled the same?
     
  7. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    Yes, all scale and rotations set uniformly in blender together. I have even tried recreating parts from the scaled unified with same result. I'll keep playing with it.
     
  8. Creiz

    Creiz

    Joined:
    Jun 6, 2017
    Posts:
    130
    Right in accordance of my luck, nothing good can last long, I guess.

    Suddenly UMA is crying about

    MissingReferenceException: The object of type 'UMAAssetIndexer' has been destroyed but you are still trying to access it.

    And yet it's there. I've tried to reinstall the whole UMA three times. I can't figue it out.
     
  9. arteria

    arteria

    Joined:
    May 31, 2007
    Posts:
    2,189


    Last of our January Weekend Specials today
    Choose any UMA Costume from our website for free(Except Viking and knight FULL Packs, Tudor Townsman, and Squire)

    Simply email arteria3d@live.co.uk with your choice

    We offer this in thank you to all the devs do for UMA

    UMA section on Arteria3d
    https://arteria3d.myshopify.com/collections/uma
     
    Last edited: Jan 25, 2019
    EdWaters, Jaimi and Firlefanz73 like this.
  10. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Can you post the call stack? This sounds familiar - we should have a new RC up this weekend. It may have already been addressed.
     
  11. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    How about the import scale on the model in unity? Are they the same?
     
  12. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    When you build a slot with a "normals mesh" I believe the console spits out some information about how many overlapping vertices were found. It uses the mesh's vertices position pre-skinned. So the two skinned meshes could look the same, but their non-skinned mesh be different..
     
  13. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    Thanks both. I believe scale is identical in unity, they are duplicates from blender imported together and they look the same. I will go back and recreate some of the slots and get the console information.
     
  14. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Unity will add scaling parameters to the gameobject it when it is dropped into the scene, to counter the blender scaling - so it could appear to be the same visually even if they are not the same on the mesh. If you have already done this, please ignore. But if not, you might want to verify the import scale parameters on the fbx or blend file itself in the properties window are the same.
     
  15. Creiz

    Creiz

    Joined:
    Jun 6, 2017
    Posts:
    130
    The entire output? Sure/


    MissingReferenceException: The object of type 'UMAAssetIndexer' has been destroyed but you are still trying to access it.
    Your script should either check if it is null or you should not destroy the object.
    UMA.UMAAssetIndexer.ForceSave () (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/UMAAssetIndexer.cs:194)
    UMA.UMAAssetIndexer.Clear (System.Boolean forceSave) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/UMAAssetIndexer.cs:775)
    UMA.CharacterSystem.Editors.UMAAssetIndexerEditor.DoGUI () (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/Editor/UMAAssetIndexerEditor.cs:253)
    UMA.CharacterSystem.Editors.UMAAssetIndexerEditor.OnGUI () (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/Editor/UMAAssetIndexerEditor.cs:68)
    System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <ac823e2bb42b41bda67924a45a0173c3>:0)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <ac823e2bb42b41bda67924a45a0173c3>:0)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <ac823e2bb42b41bda67924a45a0173c3>:0)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:342)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:336)
    UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:310)
    UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect, System.Boolean customBorder, System.Boolean floatingWindow, System.Boolean isBottomTab) (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:363)
    UnityEditor.DockArea.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:322)
    UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:266)
    UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:438)
    UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:421)
    UnityEngine.Experimental.UIElements.IMGUIContainer.HandleEvent (UnityEngine.Experimental.UIElements.EventBase evt) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:401)
    UnityEngine.Experimental.UIElements.EventDispatcher.ProcessEvent (UnityEngine.Experimental.UIElements.EventBase evt, UnityEngine.Experimental.UIElements.IPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:511)
    UnityEngine.Experimental.UIElements.EventDispatcher.Dispatch (UnityEngine.Experimental.UIElements.EventBase evt, UnityEngine.Experimental.UIElements.IPanel panel, UnityEngine.Experimental.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:307)
    UnityEngine.Experimental.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.Experimental.UIElements.EventBase e, UnityEngine.Experimental.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/Panel.cs:176)
    UnityEngine.Experimental.UIElements.UIElementsUtility.DoDispatch (UnityEngine.Experimental.UIElements.BaseVisualElementPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:245)
    UnityEngine.Experimental.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:68)
    UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)


    But the whole thing works ok when you drag the objects to it, though.
     
  16. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    It's just they are all in the same blend file so share the import settings, but I'll check again.
     
  17. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Ah - then of course they share the same import settings. Sorry for the wild goose chase.
     
  18. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    I remember SecretAnorak talking about precision loss on the vertex positions when separating meshes. Maybe in Blender, using a blend file, at the scale you're using, there is just enough precision loss that the vertex isn't getting counted as the same one in the mesh vs normal's mesh.
    You could try in "UMASlotProcessingUtil" at around line 132
    Code (csharp):
    1.  
    2.                 resultingMesh = SeamRemoval.PerformSeamRemoval(resultingSkinnedMesh, prefabMesh, 0.0001f);
    3.  
    up that threshold value (0.0001f) slightly to see if it makes a difference?
     
  19. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    Taking this number all the way up to 1 doesn't solve it. I'll go back through the whole lot!

    Edit, I am retracting this, I don't think I did the above correctly and I changed a lot of stuff in Unity and rebuilt a couple of slots and got better results. Will dissect it and report back when I know for sure.
     
    Last edited: Jan 26, 2019
  20. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    @kenamis @Jaimi I've rebuilt all the slots again and all is working! I am unable to determine what changed and fixed it, but happy nonetheless.
    Thank you for your persistence.
     
    hopeful likes this.
  21. iyango

    iyango

    Joined:
    Jan 26, 2019
    Posts:
    4
    Hey Guys.

    How would I go about using asset bundles which I have already downloaded using my own download manager? I know I can use the DynamicAssetLoader to do this, but I don't have any control with this method. I want to be able to download bundles on demand, then index them, then use them. Can anyone point me in the right direction?

    Thanks :)
     
  22. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    That looks like it happens when you press the "Clear" button - Are you on 2018.3, and using the RC version?

     
  23. Creiz

    Creiz

    Joined:
    Jun 6, 2017
    Posts:
    130
    Yes, on 2018.3 using RC (Test). Works on 2017, though. Also works when I drag and drop recipes, it just doesn't work when I click any of the buttons. Since I have everything in folders, I just drag and drop the top folder to the UMA library window and it's okay to go, so at least it's not the end of the world.
     
  24. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    I thought I had fixed all of that... I'll verify it. We're preparing a new RC right now.
     
  25. DavidGrof

    DavidGrof

    Joined:
    Sep 13, 2016
    Posts:
    24
    I did it manually and the avatar gets added. But when you add it to the prefabs forlder it gets removed.(the avatar)
     
  26. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    I'm not aware of anything in UMA that removes the Avatar at edit time. The avatar can be replaced when the race changes at runtime (it is constructed from the races tpose). I have tried to duplicate the issue using the base UMA project (Created a DCA, assigned the avatar, created a prefab. Changed the avatar on the prefab. Changed the race on the prefab, etc). And have not been able to make the Avatar be replaced.

    Have you modified any of the code (added ExecuteInEditMode, or anything like that?) Otherwise, this must be some artifact of the networking code you are using.
     
  27. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    UMA 2.8 RC3 Released

    Get it here:

    https://github.com/umasteeringgroup/UMA/releases/tag/v2.8rc3

    What's new in 2.8 RC 3


    Lot of 2018.3 fixes found during testing.
    DNAConverterController assets now replace the old DNABehaviour prefabs. A single DNA name can now be used to control multiple modifications to the avatar (Blendshapes, BonePoses, fading normal maps, changing colors and more!), Simpler to use and much faster.
    Example scenes have been restructured to be easier to find.
    Global library (UMAAssetIndexer) is now a ScriptableObject.
    Improved raycasting when detecting occluded faces in Mesh Hide Asset editor.
    Various warnings and errors if users do unexpected things (delete global lib, etc)
    Various small fixes on some of the example scenes.
    High poly models now use a bone pose for initial bone positions.
    HumanMale, HumanFemale updated to use DNAConverterControllers. These should be the default races to use now.
    Normal shader fixed to combine normals at runtime using RGBA32 textures (default).
    Developers can now add (and sell or distribute) new dna functionality for DNAConverterController using the new DynamicDNAPlugin API.

    **Upgrade notes:**

    • You should remove the previous UMA folder before importing! At the very least, remove the CORE and EXAMPLES folders.
    • With the change in type, your global library will need to be rebuilt.
    • You can update the old DNAConverterBehaviour prefabs to the new DNAConverterControllers by selecting the warning in the console and following the text directions.
    • HumanMale and HumanFemale are now using Bone Poses for initial bone morphs. This can cause some slight differences in characters having DNA applied. If you need the old behavior, you should change your race to the "Legacy" version of the races.
    • Note: Blendshapes do not work correctly on 2018.3 when GPU skinning is enabled. Please disable GPU skinning in your 2018.3 project until Unity has addressed this bug.

    What's new from 2.8 RC 2

    Unity 2018.3 compatibility
    New Dynamic DNA plugin framework
    New scene with new Dynamic DNA (ElfOrAlien) showing Color DNA, Morph DNA, Bone DNA all in one.
    Added spoiler to Car demo
    Minor scene fixes (remove warnings, fix missing prefab, remove extraneous components)
    Some issues fixed when adding wardrobe items that had Dynaimic DNA attached.
    Checked for existence of UMAGenerator before dequeuing the UMA on destroy.

    Whats new From 2.8 RC 1

    General Changes
    The minumum supported release of Unity is now Release 2017.1
    Reworked Blendshapes, improved API, optimized.
    Improved performance in expression player.
    Ability to set texture properties on the UMMaterial (aniso level, trilinear filtering, mipmap bias).
    Ability to downsample textures at atlas build time (in UMAMaterial).
    Ability to hide any slot from a wardrobe (not just base slots)
    Improved Physics Avatar.
    UMAMeshData is now clonable
    Fixed issue with removed slots when using MeshHideAssets
    Cleaned up error reporting for duplicate bones
    Support for UWP build using IL2CPP
    Updated queue on hair shader and materials for improved look against skyboxes
    Added Timeline Clips for Race, Colors, DNA, and Wardrobe
    Mouse orbitor now takes a bone to look at (instead of a bone path)
    and many more bug fixes and optimizations

    Editor Improvements
    Add race updater to update base race overlays to new materials
    UMAGenerator atlas size is now a dropdown list
    Added progress bar when adding items to Global Lib via drag/drop or rebuild.
    Added Re-orderable list to Dynamic DNA
    Lot of enhancements to the Mesh Hide system:

    Ability to view and export UV map (With alpha for selected polys)
    Ability to select base slots from dropdown.
    Symmetry paint mode
    Ability to create wardrobe recipes from hierarchy and slot builder
    Tags editor to mass tag UMA assets (and remove UMA tags)
    Copy/Paste DCA Wardrobe
    Add progress bars to global library
    Added TPose inspector
    Menu item to create Dynamic DNA
    Ability to edit edit multiple SlotdataAsset and OverlayDataAsset in the inspector
    Morph DNA editor added

    Scenes
    Help text added to most scenes
    DCA Sample accessory mounting scene added
    Fixed small issue with not found colors in Asset Bundle scene
    Timeline sample scene showing how to morph, recolor, change sex, and change wardrobe.

    An example of the new DNAConverterController is included:

    DNAPlugin.gif
     
    Last edited: Jan 28, 2019
  28. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,314
    First of all thanks a lot for the UMA update :)

    I just have a Problem my DNA is not working anymore.

    Before, those were a Goblin and a troll. Clothes and Color are Right but not the DNA.


    After building slots and overlays I do the following (Troll example):

    Code (CSharp):
    1.  
    2.             // Grab a reference to our receipe
    3.             UMAData.UMARecipe umaReceipe;
    4.             if (umaDynamicAvatar != null)
    5.                 umaReceipe = umaDynamicAvatar.umaData.umaRecipe;
    6.             else
    7.                 umaReceipe = umaData.umaRecipe;
    8.             umaReceipe.SetRace(raceLibrary.GetRace("HumanMale"));
    9. ...
    10.           umaData.umaRecipe.slotDataList[7] = slotLibrary.InstantiateSlot("M_Bar starter 2 Lower");
    11.             umaData.umaRecipe.slotDataList[7].AddOverlay(overlayLibrary.InstantiateOverlay("M_Bar starter 2", trouserColors[activeTrousersColor]));
    12.  
    13.             if (!AutoGenerate || umaDna == null)
    14.             {
    15.                 umaDna = umaData.GetDna<UMADnaHumanoid>();
    16.             }
    17.             SetTrollDNA(Globals.Scene == Globals.TScene.GAction, npcNumber);
    18.  
    Code (CSharp):
    1.     void SetTrollDNA(bool useRandom, ushort npcNumber)
    2.     {
    3.         try
    4.         {
    5.             if (npcNumber > 0 && !string.IsNullOrEmpty(BeingData.UmaDna) && !doSave)
    6.             {
    7.                 umaDna = UnityEngine.JsonUtility.FromJson<UMADnaHumanoid_Byte>(BeingData.UmaDna).ToDna();
    8.             }
    9.             else
    10.             {
    11.                     if (npcNumber == 1098)
    12.                         umaDna.height = 0.82f;
    13.                     else
    14.                         umaDna.height = 0.78f;
    15.                     umaDna.headSize = Random.Range(0.38f, 0.4f);
    16.                     umaDna.headWidth = Random.Range(0.85f, 0.95f);
    17. ...
    18.                     umaDna.gluteusSize = Random.Range(0.9f, 1f);
    19.                 }
    20.             }
    21.         }
    22.         catch (UnityException ex)
    23.         {
    24.             UnityEngine.Debug.LogWarning("UMAMaker TrollDNA Error: " + ex.ToString());
    25.         }
    26.     }
    This worked before without Problems. I still do not get an error message, and everthing else Looks OK so far, but the DNA is not used.
    Is there a new command I need to use to set the DNA changes? I do not use receipes but use Slots and overlays manually but with
     

    Attached Files:

  29. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Hi Firlefanz,

    This is due to the changeover of the default race to the new DNAConverterController. But the fix is simple - you can either switch the the races to use the legacy DNA, or you can switch your races to the Legacy version of the races.(HumanMaleLegacy, etc), which are setup that way by default.


     
  30. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,314
    Do I use the UMA menu "Create dynamic DNA converter Controller"?

    Or add something to my UMA_DCS or UMA Config in the Scene where DynmicSlotLibrary etc are?

    Thanks :)
     
  31. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,314
    PS: Before, I had the first toggle on. Now I removed it and added the 3 races I want to use. Still works, but still DNA is Always Standard not mine...

    upload_2019-1-28_15-1-37.png

    In my script I use this:

    if (IsMale)
    {
    umaData.umaRecipe.SetRace(raceLibrary.GetRace("HumanMale"));
    }
    else
    {
    umaData.umaRecipe.SetRace(raceLibrary.GetRace("HumanFemale"));
    }

    and if I add "DCS" to each I still see no Change...
     
    Last edited: Jan 28, 2019
  32. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    The standard DNA has changed in this version. Now it is using the new Dynamic DNA. The DNA you are using is the legacy DNA - it's from UMA 1.x. That's fine - it's still available, but it's only setup by default on the "Legacy" races.

    To fix this, in your race library, replace the "Human Male" and "Human Female" races with "Human Male Legacy" and "Human Female Legacy":

    RaceLibrary.jpg

    And then change your code to use these new races:

    Code (CSharp):
    1.             if (IsMale)
    2.             {
    3.                 umaData.umaRecipe.SetRace(raceLibrary.GetRace("HumanMaleLegacy"));
    4.             }
    5.             else
    6.             {
    7.                 umaData.umaRecipe.SetRace(raceLibrary.GetRace("HumanFemaleLegacy"));
    8.             }
    Using the legacy DNA in code restricts you to using ONLY the old DNA, you won't get the ability to morph between normal maps, colors, blendshapes, etc.

    Edit: I'll fix up a sample set of code here in a few minutes, showing how to change the new DNA in code (it will work for both legacy and Dynamic DNA)
     
    Firlefanz73 likes this.
  33. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,314
    Great! Working with the new Version now. Thanks Jaimi!
     
    hopeful and Jaimi like this.
  34. Viggy1996

    Viggy1996

    Joined:
    May 11, 2017
    Posts:
    39
    Hey! My Wardrobe recipes are really dark. When I reduce the opacity of Metallic texture, they're somewhat visible, but still dark. The shader I use is the inbuilt UMA_Diffuse_Normal_Metallic . The Base Slots look fine .
     
  35. KresentMoon

    KresentMoon

    Joined:
    Mar 4, 2015
    Posts:
    1
    I imported UMA then added UMA_DCS and then GameObject but when I tried to add component, UMA scripts werent there... please help!!! :(
     
  36. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Check your alpha channels on your textures
     
  37. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Likely you have a compilation issue. Check the console for any errors.
     
  38. lorddanger

    lorddanger

    Joined:
    Aug 8, 2015
    Posts:
    103
    I have few questions
    Does UMA is optimized for Mobile uses?
    Does UMA need models with same number Polygones or we can use low poly models ?
     
  39. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Yes. UMA combines meshes and textures, giving you an optimal solution for mobile.
    You can create your own races using lower poly models. However, you may not need to. Depending on the number on the screen at one time, you may be fine with the existing models. You can probably just lower the texture resolution (and you can adjust it on the fly using the generator settings) and get good performance.
     
    lorddanger likes this.
  40. VijayNV

    VijayNV

    Joined:
    Jan 2, 2018
    Posts:
    1
    Uma 2 is really cool and to easy setup. A big thanks to the team who worked on it.

    I am stuck up with an issue. I just want to know if its possible to use asset bundles created in a project to be used in another. Can new assets created after building be used in the scenes by using asset bundles ?
     
  41. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Yes, you can create new assets and download them via asset bundles. There is a sample scene in the application that shows how to do this (it downloads the werewolf race).
     
    hopeful likes this.
  42. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    I'm not that familiar with that part of UMA. But you should be able to hook into the DynamicAssetLoader and just "do what it does" to add your bundles. It might require modifying some files on the fly. I'll look into this further.
     
  43. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,204
    Note:

    An updated RC3 version was just now uploaded. This includes a fix for normal maps on mobile devices.

     
    Ramsdal likes this.
  44. Viggy1996

    Viggy1996

    Joined:
    May 11, 2017
    Posts:
    39
    Hey when I try to hide my UMA's head slot when wearing a Helmet Wardrobe, I get this error and the UMA no longer animates.

    Human Male Lowpoly : Tranform 'LipsInferiorAdjust' for human bone 'Jaw' not found. 


    However When I add the Helmet at runtime instead of in the edit time, the error no longer appears and the UMA animates perfectly .

    Any Idea why? I searched the scene for the 'LipsInferiorAdjust' bone and it's available when I assign the Helmet after Pressing play, but if I assign the helmet before pressing play, it can't be found in the hierarchy and the error is thrown.
     
  45. DavidGrof

    DavidGrof

    Joined:
    Sep 13, 2016
    Posts:
    24
    I did not modify the code, did not find anything related also. This also happens with no networking componets, clean UMADynamicCharAvatar.
    Same thing happens in fresh project. I can make a recording if you want me to.

    The other strange thing is whenever I click on a dynamic char avatar in the scene the editor freezes for about 5 min every time.
    Do you by any chance go over all the files in the project?
    https://imgur.com/a/6OHp0cu
     
    Last edited: Jan 31, 2019
  46. LoekvanKooten

    LoekvanKooten

    Joined:
    Apr 3, 2017
    Posts:
    120
    How would I tell UMA to implement an extra gameObject at spawn time in the NPC hierarchy (for holding a weapon)? Does this need to be coded, or can it be done from the Inspector too?

    Also, what are the biggest advantages of UMA pro versus the free version?

    Thank you very much for helping me out!
     
  47. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    So, you'll need to have scripts to spawn (or enable/disable) your weapon at runtime.

    A common method in character controllers is to have all the possible weapons attached to the appropriate bone and then a script controls enabling and disabling the current active weapon.

    If you want to place these at edit time, then you can use the bone builder to pre-generate the bone hierarchy for you to attach the weapons to the bones. You can find that at the top toolbar -> UMA -> bonebuilder. Then you drag the DynamicCharacterAvatar into the input field and hit "Generate".

    There is also an example "MountingObjects" scene that demonstrates how to spawn and enable/disable objects and attach them to the bone hierarchy.

    Alternatively, you can make a new wardrobe slot for your weapons and make them slots themselves.
    That unifies it with the rest of the system and reduces drawcalls, but every time you change weapons you'll need to regenerate the UMA

    Are you referring to UMA Power Tools when you say UMA pro?
     
    LoekvanKooten likes this.
  48. LoekvanKooten

    LoekvanKooten

    Joined:
    Apr 3, 2017
    Posts:
    120
    Ah, wait, I read too quickly. That asset is called DK UMA Premium. For some reason I thought it was a premium version of UMA itself.

    Spawning at runtime is what I did with my current asset from the MB1 FB1 pack, so I'd need to rewrite that part for UMA. But the bonebuilder may indeed save me quite some time. I'm going to try that. Thank you very much! I'll let you know how I fared.
     
    kenamis likes this.
  49. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    It's unclear what two workflows you are doing. You say you add the helmet at runtime and it works. That implies you are trying to hide the head slot at edit time time and it doesn't work? I don't know how you would be going about that, can you explain?

    "Human Male Lowpoly : Tranform 'LipsInferiorAdjust' for human bone 'Jaw' not found."
    This looks like a Unity Avatar error. I think you have the LipsInferiorAdjust assigned to the human bone 'Jaw', which I think is incorrect. Check your Unity Avatar if that is incorrect, and if so, correct it and rebuild your T Pose asset.
     
    Viggy1996 likes this.
  50. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    UMA dynamically builds the animator avatar (due to skeleton possibly changing). In UMA 2.7 I believe the animator avatar object wasn't named, so if you didn't look closely enough, in the inspector (on the animator) it looked like there was no object. In UMA 2.8, a name is assigned to the animator avatar so that it is clear that there is an object assigned.
    This might be part of what you are seeing.

    For the freezing, do you have an UMA Context in your scene? There is a prefab for it called "UMA_DCS". If that component is not present in the scene then one will be created in the editor and can cause those slowdowns.