Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I don't see your picture. I also had to do the regular web.config change also (to allow unityweb files to download).
    In addition, I had to turn off gzip compression. And set the memory size to 256. And turn off WebAssembly. Its possible that the resources won't load because the memory is not large enough.

    Having a lot of configurable parts can be quite a memory hog.

    First step is to go into the global library, and remove the items you don't want. Probably the easiest thing is to just delete them from the project, and then repair the global library. A lot of the textures in UMA can be very large also. You may want to manually change them so they are smaller. The face/body/eyes should probably remain the same unless you want to adjust the rectangles for the various overlays, though. SlotDataAssets can be large also. They hold all the mesh data. If you delete slots/overlays/textures, be sure to delete any wardrobe recipes that use them so you don't get an error.


     
    hopeful likes this.
  2. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Hello, can you please tell me what you mean by "I had to do the regular web.config change...." what do you mean by web.config change? what change is that? where?

    Thanks
     
  3. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    In the race data, whats the difference between "Human Male" and "Human Male DCS", i just want the user to be able to design their avatar (male or female) using the UI controls, then be able to get a recipie string so i can save it, and use that string to recreate the character later? So which one do i need "Human Male" or "Human Male DCS", or "Human Male high Poly"

    Im also trying to make the build size smaller, so im trying ti include as little as possible since its 200 meg build now.

    Thanks
     
  4. HighKeys

    HighKeys

    Joined:
    Jan 6, 2016
    Posts:
    29
    Hi,

    i try to save my char dna to a text recipe to save it to my online DB, i call "GetCurrentRecipe" for this, but i got a error at line 1851.

    Code (CSharp):
    1.         /// <summary>
    2.         /// Returns the UMATextRecipe string with the addition of the Avatars current WardrobeSet.
    3.         /// </summary>
    4.         /// <param name="backwardsCompatible">If true, slot and overlay data is included and you can load the recipe into a non-dynamicCharacterAvatar.</param>
    5.         /// <returns></returns>
    6.         public string GetCurrentRecipe(bool backwardsCompatible = false)
    7.         {
    8.             Dictionary<string, UMATextRecipe> wardrobeCache = new Dictionary<string, UMATextRecipe>(_wardrobeRecipes);
    9.             Dictionary<string, UMAWardrobeCollection> wcCache = new Dictionary<string, UMAWardrobeCollection>(_wardrobeCollections);
    10.             var prevSharedColors = umaData.umaRecipe.sharedColors;//not sure if this is gonna work
    11.             if (ensureSharedColors)//we dont want to keep the colors in the recipe though (otherwise effectively ensureSharedColors is going to be true hereafter)
    12.                 EnsureSharedColors();
    13.             ClearWardrobeCollectionsRecipes(true);
    14.             //if backwards compatible we want a DCSUniversalPackRecipe
    15.             //otherwise we want a DCSPackRecipe
    16.             string currentRecipeString = "";
    17.             if (backwardsCompatible)
    18.             {
    19.                 //If we are going to use a seperate type for a DCSSave then this shouldn't save the wardrobe set? Or if it does the Inspector should atleast offer a means of editing it...
    20.                 currentRecipeString = JsonUtility.ToJson(new UMATextRecipe.DCSUniversalPackRecipe(umaData.umaRecipe, WardrobeRecipes));
    21.             }
    22.             else
    i got the error at:

    Code (CSharp):
    1.             var prevSharedColors = umaData.umaRecipe.sharedColors;//not sure if this is gonna work
    2.  

    this is the error:

    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. UMA.CharacterSystem.DynamicCharacterAvatar.GetCurrentRecipe (System.Boolean backwardsCompatible) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterAvatar.cs:1851)
    3. Database.CharacterSave (UnityEngine.GameObject player, System.Boolean online, System.Boolean useTransaction) (at Assets/uSurvival/Scripts/Database.cs:521)
    4. NetworkManagerSurvival.OnServerCharacterCreate (Mirror.NetworkMessage netMsg) (at Assets/uSurvival/Scripts/NetworkManagerSurvival.cs:410)
    5. Mirror.NetworkConnection.InvokeHandler (System.Int16 msgType, Mirror.NetworkReader reader) (at Assets/uSurvival/Plugins/Mirror/Runtime/NetworkConnection.cs:115)
    6. Mirror.NetworkServer.InvokeBytes (Mirror.ULocalConnectionToServer conn, System.Byte[] buffer) (at Assets/uSurvival/Plugins/Mirror/Runtime/NetworkServer.cs:1102)
    7. Mirror.ULocalConnectionToServer.SendBytes (System.Byte[] bytes, System.Int32 channelId) (at Assets/uSurvival/Plugins/Mirror/Runtime/LocalConnections.cs:41)
    8. Mirror.NetworkConnection.Send (System.Int16 msgType, Mirror.MessageBase msg, System.Int32 channelId) (at Assets/uSurvival/Plugins/Mirror/Runtime/NetworkConnection.cs:164)
    9. Mirror.NetworkClient.Send (System.Int16 msgType, Mirror.MessageBase msg) (at Assets/uSurvival/Plugins/Mirror/Runtime/NetworkClient.cs:163)
    10. UmaCharacterEditor.<Update>m__1 () (at Assets/InfinityCube-Interactive/Addons/Usurvival/UMA Integration/Scripts/UI/UmaCharacterEditor.cs:59)
    11. UnityEngine.Events.InvokableCall.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:166)
    12. UnityEngine.Events.UnityEvent.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_0.cs:58)
    13. UnityEngine.UI.Button.Press () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:36)
    14. UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:45)
    15. UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:50)
    16. UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:261)
    17. UnityEngine.EventSystems.EventSystem:Update()
    18.  

    any idea?
     
  5. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
  6. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    In 2.8, You should use "Human Male" as the default. Human Male DCS was kept for compatibility reasons.

    Human Male High Poly is the same as Human Male, but uses a higher poly mesh.
     
  7. Mad_Mark

    Mad_Mark

    Joined:
    Oct 30, 2014
    Posts:
    484
    I guess I am a little thick. This past week I've worked through all of the videos on YouTube. Even the old ones. I am a hobbyist, but I've been using Unity, Blender, and other packages for 10 years. I just don't get it. I thought that UMA was an app for creating unique models that could share wardrobe and equippable items. It seems that it is an app that contains some base models that can share items.

    Here is the problem I am trying to solve. If UMA is not an appropriate solution, please let me know and save me another few weeks of fruitless experimentation:

    I have about 50 NPC/Player models, all with different heads, faces, bodies, clothes, etc. They were constructed from a few base meshes using ccFuse, PoserGameDev (with poly reduction), and Blender, as well as some Asset Store purchased characters. I would like to reduce the number of models while still retaining some of the uniqueness of the assets by allowing them to share outfits, change base colors and texture patterns, and change equippables such as hairstyles and colors, eye color, heights, etc.

    I also have about 100 zombie models, some 100% unique, others are the above 50 that have altered materials/textures and animations. Each NPC has at least 4 materials. They have been auto-rigged with Mixamo, and use Mixamo humanoid animations.

    1) Can UMA be used to reduce the number of assets (cop1 and cop1Zombie using different materials/controllers), and perhaps the drawcalls down per asset by having only 2 materials (Normal and Zombie)?
    2) If so, do I need to create a race, base recipes, wardrobe recipes, slots, etc. for EACH of these assets one by one?
    3) Is there a better, faster, or more intuitive way to go about this?
    4) Can UMA still make use of the Mixamo animations?
    5) Right now, I have managed to bring one model into UMA, but following the available tutorials, she has no hair, no eyebrows, and no clothing. Adding the FemaleHair wardrobe items put hair in the center of her head. I know I'm doing something wrong, but don't know what exactly. Is there a cradle to grave model import tutorial somewhere that I can follow to properly slice my models in Blender, and relate the "slots" to the correct geometric locations?

    Also, I have seen a couple of posts asking about the error "Exception in UMAGeneratorBuiltin.OnDirtyUpdate:
    System.NullReferenceException: Object reference not set to an instance of an object at UMAMoodSlider.OnCreated …" This appears to be related to the Mood Slider code from one of the Secret Anorak tutorials. Just disable the script on your UMA, and it goes away. Hope this tutorial and the Character Creator tutorial are update soon. Bone and Blendshapes now appear to be handled differently.

    Thanks,
    Mark
     
  8. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The purpose of UMA is to do exactly what you suggest. And to combine all the meshes and textures to get the highest performance possible. Exactly.

    You don't have to use the included human meshes and races. You can make your own.

    SecretAnorak has a video that shows how to do this with FUSE models:



    1. Yes.
    2. Yes and No. You need to create a slot (or slots) of your base mesh. And then you need to create overlays for the base mesh. Then a base race recipe that describes the parts of the mesh that make your race. Then you need to make slots, overlays and wardrobe recipes for all the equipable items. This is so UMA knows how to construct them in the most efficient manner possible - reducing the number of drawcalls, the number of bones that need to be transformed, etc. (If you simply have separate skinned meshes, then each one has it's own skeleton).
    3. It really only takes a few minutes to make an equipable item once you get the workflow down. There is no automated way currently to fit random things to random meshes and make it work right.
    4. Yes. In the end, a standard skinnedmesh is created with a humanoid (or generic, your choice) skeleton. It can use Mecanim like everything else.
    5. When creating your race, you will need to create new hair (etc). Or fit the existing models (from the repository on github) to your new race in blender and make new slots. SA's video series above takes you through the whole process of making a new race.

    Each separate material in a model results in separate submeshes. Since a slot is an instance of a single mesh, your zombie with 4 materials will make 4 slots. Assuming the Material settings are the same (same shader, etc), they will be combined into as few meshes as possible and texture atlases will be created.

     
    TeagansDad likes this.
  9. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Your 1851 doesn't look like mine. I'm guessing you're on an earlier version of UMA? I would recommend to update to get all the latest code and fixes.

    Anyway, the object throwing the error: umaData.umaRecipe.sharedColors

    could only throw that error if the umaRecipe is null. It sounds like the character hasn't been built yet.

     
  10. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    Mad_Mark, Wow, there is someone else who has lots of asset like ours. Uma would be perfect of all your character customization needs and I'm very happy so far.

    However, there is one biggest limiting factor, that is preparing MeshHideAsset for all your cloths beforehand.
    FYI, MeshHideAsset let you hide underneath mesh so that it doesn't poke through.

    The issue is that I have many layers of cloths(all different shapes) and it's impossible to create a full permutation of MHA.
    What I would like to do is to create MHA on the fly, perferably in the background thread.
    Does anyone agree it's a good thing?
    I'm not sure if it's possible to UMA. I guess anything is possible but I'm not sure how difficult it is to implement it.

    Has anyone given a thought?

    Cheers!
     
  11. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    If you're desperate for dropping polys, you might check out SimpleLOD. I haven't tested it, especially not the updated version, to see how well it handles removing concealed polygons. SimpleLOD was written early on with the idea of working with UMA, and can do its work during runtime, not just edit mode.

    From the SimpleLOD asset description:
    Merge meshes
    Bake atlases
    Remove hidden triangles
    Generate LOD levels
    Reduce triangles
    Reduce draw calls


    Supports skinned meshes
    Can run in background thread
     
  12. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Hello,

    I have UMA finally working in WebGL, however with the new UMA system, the WebGL build is almost 250 Megabytes, where it was only 50 Megabytes using the old UMA system i had before.

    Im I only want the most basic UMA system for Male and Female, and the most basic clothes for both, but i dont really understand some of the things that are in there and what i can delete to reduce the size.

    1. For example In the UMA Global window there is a section called DymanicUMADnaAsset, that has 5 items listed, BlendNamesDynamicDNA, ExampleDNAAsset, EyeSpacing, HumanFemaleDNA, HumanMaleDynamicDnaAsset. Are all those needed, i have no idea what they are, which ones can i remote so that i just have a basic make and female avatar?

    2. RunTimeAnimatorController Section of the UMA Global Window has Locomotion, Locomotion with head, UMA_APOSE Controller, and UMA TPOSE Controller. Which of these a i delete to reduce the size of the build?
     
  13. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Those things will take very little space. If you want to conserve as much space as possible, you should concentrate on removing the large items: SlotDataAssets, OverlayDataAssets and their Textures.

    Here are some tools that can be very helpful:

    https://github.com/aschearer/unitysizeexplorer

    https://assetstore.unity.com/packages/tools/utilities/a-assets-explorer-57335
     
  14. Bartek_Gudowski_Friend_Factory

    Bartek_Gudowski_Friend_Factory

    Joined:
    Feb 18, 2019
    Posts:
    54
    Hi Jaimi!

    What is the status of the SRP (Lighweight) support for UMA? Is there an alpha or beta to test, or some kind of work around? We are so much in need for this support as SRP is getting out of preview mode in the coming month. Many thanks! / Bartek
     
  15. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Kenamis has a branch working with SRP here:

    https://github.com/umasteeringgroup/UMA/tree/feature-HDRP

    As you can see from the name, he has it setup for HDRP. In theory this should work with LWRP also if one does the conversions. I'm not familiar with any of this at the moment though, probably need to discuss directly with him if you need more information.
     
  16. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Oh thanks, im looking in the slot data, i see stuff like UMA_Toon_TORSO-female_guide, and many other items with "guide" at the end, are those needed? There is even "locomotion" in the slots, and many things starting with "FR_" are those needed?

    Also there is a car in there for some reason, shouldnt that be in a different folder so that its not in the build by default?

    There doesnt seem to be any consistency in the naming, so its hard to know what everything does, i been doing this for over a week, it takes so much time to sort all this out.

    Seems there is no concern for the amount of space all this is consuming in the build, things are just thrown in there and new people dont know what is needed and whats not.

    Shouldnt there be a button in the global UMA window to just include the core stuff only in the build? Also folders where the core stuff is located, and a separate folder where third party or extra fancy slots and overlays and etc can be placed? How can we know what each slot does, it would take literally for ever to experiment adding and removing random slots manually and then rebuilding to see what that slot did to see if that was needed or not.

    Maybe the UMA designers forgot that it could be used for web games also? Size is critical for the WebGL builds, there is no way anybody can release a WebGL game for the browser that is 250 megabyte download, and that just for the UMA stuff only, the game itself is not included yet. I feel i have to abandon this and go back to using my old UMA as its going on 2 weeks now and the size is still almost 100 meg still without my game being in there.
    My game + old UMA was only 50 meg.
     
    Last edited: Feb 18, 2019
  17. Bartek_Gudowski_Friend_Factory

    Bartek_Gudowski_Friend_Factory

    Joined:
    Feb 18, 2019
    Posts:
    54
    Many thanks, that's awesome. Will there be long term support for SRP with inclusion in the master branch? SRP is getting so important for the future.

    @kenamis , have you tested with LWRP? Or do you know what you be required to modify your code? We are on 2018.3.3 and LWRP 4.8.0. Thanks!!
     
  18. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    We haven't "forgotten" anything. We're just a group of volunteers working on open source code. We don't have a full QA team, a BA or anything like that. Of course you can go back to the old UMA if that works for you.

    All of the example scenes have to work. That means all of the scenes have to have all of the assets referenced. That means by default they are in the build. UMA 2.5 (and above) introduced new higher resolution textures for everything, and new models. That's why it's all larger than before.

    The easiest thing to do to cleanup is:

    • delete all the examples scenes and content.
    • delete all the slots/overlays/wardrobe recipes from the Global Library.
    • Find the races you want to keep, and delete the others.
    • Find the base race recipes for those races, and add the slots and overlay for it into the library.
    • Find the wardrobe recipes you want, and add them to the library, and add the slots and overlays for it to the library also.
    I'll try to make this nicer in the next release (when adding a race or wardrobe item to the global library, add the slots/overlay for them also).
     
    TeagansDad and hopeful like this.
  19. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    I will try that, remember we are not all UMA experts, we dont all know which slots and overlays are needed and which supposed to go where, right now there are 111 items in the SlotDataAssets, 100 items in the overlayDataAsset, and 60 wardrobeRecipie. This is after i removed some obvious things like cars from there, i cant imagine me not knowing much about it how can go in and sorting all that out. The amount of combinations are astronomical, each combinations i would have to run it and see if it works, if it dont work somehow go back and put it back to how it was before. It would take months to do all that for someone who dont know all the details.

    Having button on there that would delete everything and include only the most basic core stuff would be awesome since you guys know all the details

    Anyway I really appreciate all your work, thank you, UMA is really awesome thats why im using it.

    Just giving some hints on how to make it more friendly and easier to use.
     
    hopeful likes this.
  20. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    @hopeful, I've looked at the SimpleLOD, they have nice runtime feature and the feature I particularly interested was the HiddenMeshRemoval.

    If you think about what MHA is supposed to do is to remove PokeThrough meshes.
    Currently, you will have to prepare MHA offline for all possible cloth combinations so that you don't see PokeThrough meshes. There will be combinatorial explosions very soon.
    And you will need layer information to figure out what's on the top.
    If you are given just polygon soups, there is no way of knowing what's poking through, therefore SimpleLOD cannot do a proper job removing PokeThrough meshes.

    What I'm really interested is to remove the PokeThrough meshes in runtime in UMA

    The current MHA that can remove PokeThrough meshes in basic form. It will probably work for most of the case but it won't work for all cases.

    To make it work, first of all, we need to make it work in Runtime in a background thread. Then, we can work on improving the algorithm to remove PokeThrough meshes.
    It will take a while to make the algorithm to work on many special cases but I'm not sure if someone can help MHA to work in Runtime.
    Algorithm itself is independent of Uma but I'm not so certain how the Runtime MHA should work in UMA context and that's where I need help.

    Cheers!
     
  21. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    I've wondered about how to handle this for a long time. And I agree that mesh hide and poly removal methods are more like your last line of defense, rather than ways to go about solving every situation.

    The first step, of course, is to remove slots underneath that are unnecessary.

    After that, I think there's still some value in the old school approach. It might help if a lot of similar clothing items are actually overlays ... where heightmap / normals are used in place of meshes to deform the clothing. So, using this method, it appears as if the clothing is hemmed and wrinkled, for instance, but the mesh is actually flat. Thus you can begin covering the torso with a tshirt, which has a slightly raised collar, then adding a shirt with raised buttons, and then a v-neck sweater, and then with a vest, and it should all work, because the overlays will write over lower levels of heightmap and normal textures. You won't get poke through, because there is no additional mesh.

    Like, a wrist watch could be a metallic overlay on the wrist, and not a slot. This way, if the character switches to a long sleeved shirt or cultist's robe, the watch is not poking through.
     
    arteria likes this.
  22. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    Hello,

    I have a very strange Problem, I do not find it's source. Before I had only overlay eyebrows:
    But after Jaimi gave me a very good help how to create new uma materials I made a new one for hair and decided to use Slot and overlay eyebrows with my new umahair (material).

    All eyebrow Slots and overlays have the new umahair material. I am using Slots and overlays, no wardrobes or receipes.

    I Keep getting this error Messages (see below).
    So I searched my whole Code for 'MaleEyebrow' but there is no single place anymore.

    I am using this for eyebrows:

    umaData.umaRecipe.slotDataList[20] = slotLibrary.InstantiateSlot("M_Eyebrow");
    umaData.umaRecipe.slotDataList[20].AddOverlay(overlayLibrary.InstantiateOverlay("M_Eyebrow", Color.gray));

    Any idea what's wrong? Could it be some Default behaviour with the eyebrow overlays?


    Thanks! :)

    Overlay 'MaleEyebrow01' doesn't have the expected UMA Material: 'UMASkin'!
    Currently it has 'UMAHair (UMA.UMAMaterial)' at 'Assets/UMA/Content/UMA_Examples/HumanMale/Overlays/Hair/MaleEyebrow01.asset'
    0x0000000141416668 (Unity) StackWalker::GetCurrentCallstack
    0x000000014141CB16 (Unity) StackWalker::ShowCallstack
    0x000000014130039B (Unity) GetStacktrace
    0x00000001401432EE (Unity) DebugStringToFile
    0x000000014178855D (Unity) DebugLogHandler_CUSTOM_Internal_Log
    0x000000001F241C10 (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,string,UnityEngine.Object)
    0x000000001F241863 (Mono JIT Code) [DebugLogHandler.cs:10] UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
    0x000000001F2410DD (Mono JIT Code) [Logger.cs:48] UnityEngine.Logger:Log (UnityEngine.LogType,object)
    0x00000000467A4E09 (Mono JIT Code) [Debug.bindings.cs:117] UnityEngine.Debug:LogError (object)
    0x0000000046BBB523 (Mono JIT Code) [OverlayData.cs:198] UMA.OverlayData:Validate (UMA.UMAMaterial,bool)
    0x0000000046BB9E43 (Mono JIT Code) [SlotData.cs:276] UMA.SlotData:Validate ()
    0x0000000046BB8A7B (Mono JIT Code) [UMAData.cs:449] UMA.UMAData/UMARecipe:Validate ()
    0x0000000046BB8033 (Mono JIT Code) [UMAData.cs:236] UMA.UMAData:Validate ()
    0x0000000046BB6F73 (Mono JIT Code) [UMAGeneratorBuiltin.cs:189] UMA.UMAGeneratorBuiltin:HandleDirtyUpdate (UMA.UMAData)
    0x0000000046BB6856 (Mono JIT Code) [UMAGeneratorBuiltin.cs:272] UMA.UMAGeneratorBuiltin:OnDirtyUpdate ()
    0x0000000046BB6368 (Mono JIT Code) [UMAGeneratorBuiltin.cs:132] UMA.UMAGeneratorBuiltin:Work ()
    0x0000000046BB5B3F (Mono JIT Code) [UMAGeneratorBuiltin.cs:97] UMA.UMAGeneratorBuiltin:Update ()
    0x000000001F236B18 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
    0x00007FFE1E12BE4B (mono-2.0-bdwgc) [mini-runtime.c:2809] mono_jit_runtime_invoke
    0x00007FFE1E0B1E32 (mono-2.0-bdwgc) [object.c:2919] do_runtime_invoke
    0x00007FFE1E0BAE3F (mono-2.0-bdwgc) [object.c:2966] mono_runtime_invoke
    0x0000000140C0341A (Unity) scripting_method_invoke
    0x0000000140BF3A2A (Unity) ScriptingInvocation::Invoke
    0x0000000140BBCB47 (Unity) MonoBehaviour::CallMethodIfAvailable
    0x0000000140BBD261 (Unity) MonoBehaviour::CallUpdateMethod
    0x00000001406EE84C (Unity) BaseBehaviourManager::CommonUpdate<BehaviourManager>
    0x00000001406F4F36 (Unity) BehaviourManager::Update
    0x00000001409617F3 (Unity) `InitPlayerLoopCallbacks'::`2'::UpdateScriptRunBehaviourUpdateRegistrator::Forward
    0x0000000140960447 (Unity) ExecutePlayerLoop
    0x0000000140960513 (Unity) ExecutePlayerLoop
    0x00000001409637C1 (Unity) PlayerLoop
    0x000000014133EB8F (Unity) PlayerLoopController::UpdateScene
    0x000000014133D140 (Unity) Application::TickTimer
    0x000000014149919B (Unity) MainMessageLoop
    0x000000014149AE36 (Unity) WinMain
    0x0000000142484BDA (Unity) __scrt_common_main_seh
    0x00007FFE64F33DC4 (KERNEL32) BaseThreadInitThunk
    0x00007FFE672F3691 (ntdll) RtlUserThreadStart




    and



    Invalid Overlay 'MaleEyebrow01' on Slot 'MaleFace'.
    0x0000000141416668 (Unity) StackWalker::GetCurrentCallstack
    0x000000014141CB16 (Unity) StackWalker::ShowCallstack
    0x000000014130039B (Unity) GetStacktrace
    0x00000001401432EE (Unity) DebugStringToFile
    0x000000014178855D (Unity) DebugLogHandler_CUSTOM_Internal_Log
    0x000000001F241C10 (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,string,UnityEngine.Object)
    0x000000001F241863 (Mono JIT Code) [DebugLogHandler.cs:10] UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
    0x000000001F2410DD (Mono JIT Code) [Logger.cs:48] UnityEngine.Logger:Log (UnityEngine.LogType,object)
    0x00000000467A4E09 (Mono JIT Code) [Debug.bindings.cs:117] UnityEngine.Debug:LogError (object)
    0x0000000046BB9FF3 (Mono JIT Code) [SlotData.cs:280] UMA.SlotData:Validate ()
    0x0000000046BB8A7B (Mono JIT Code) [UMAData.cs:449] UMA.UMAData/UMARecipe:Validate ()
    0x0000000046BB8033 (Mono JIT Code) [UMAData.cs:236] UMA.UMAData:Validate ()
    0x0000000046BB6F73 (Mono JIT Code) [UMAGeneratorBuiltin.cs:189] UMA.UMAGeneratorBuiltin:HandleDirtyUpdate (UMA.UMAData)
    0x0000000046BB6856 (Mono JIT Code) [UMAGeneratorBuiltin.cs:272] UMA.UMAGeneratorBuiltin:OnDirtyUpdate ()
    0x0000000046BB6368 (Mono JIT Code) [UMAGeneratorBuiltin.cs:132] UMA.UMAGeneratorBuiltin:Work ()
    0x0000000046BB5B3F (Mono JIT Code) [UMAGeneratorBuiltin.cs:97] UMA.UMAGeneratorBuiltin:Update ()
    0x000000001F236B18 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
    0x00007FFE1E12BE4B (mono-2.0-bdwgc) [mini-runtime.c:2809] mono_jit_runtime_invoke
    0x00007FFE1E0B1E32 (mono-2.0-bdwgc) [object.c:2919] do_runtime_invoke
    0x00007FFE1E0BAE3F (mono-2.0-bdwgc) [object.c:2966] mono_runtime_invoke
    0x0000000140C0341A (Unity) scripting_method_invoke
    0x0000000140BF3A2A (Unity) ScriptingInvocation::Invoke
    0x0000000140BBCB47 (Unity) MonoBehaviour::CallMethodIfAvailable
    0x0000000140BBD261 (Unity) MonoBehaviour::CallUpdateMethod
    0x00000001406EE84C (Unity) BaseBehaviourManager::CommonUpdate<BehaviourManager>
    0x00000001406F4F36 (Unity) BehaviourManager::Update
    0x00000001409617F3 (Unity) `InitPlayerLoopCallbacks'::`2'::UpdateScriptRunBehaviourUpdateRegistrator::Forward
    0x0000000140960447 (Unity) ExecutePlayerLoop
    0x0000000140960513 (Unity) ExecutePlayerLoop
    0x00000001409637C1 (Unity) PlayerLoop
    0x000000014133EB8F (Unity) PlayerLoopController::UpdateScene
    0x000000014133D140 (Unity) Application::TickTimer
    0x000000014149919B (Unity) MainMessageLoop
    0x000000014149AE36 (Unity) WinMain
    0x0000000142484BDA (Unity) __scrt_common_main_seh
    0x00007FFE64F33DC4 (KERNEL32) BaseThreadInitThunk
    0x00007FFE672F3691 (ntdll) RtlUserThreadStart
     
  23. Bartek_Gudowski_Friend_Factory

    Bartek_Gudowski_Friend_Factory

    Joined:
    Feb 18, 2019
    Posts:
    54
    Hi again!

    The HDRP branch works for LWRP. Many many thanks!

    But I have problem of hair and cloths that are still not properly rendered (please see attached). @kenamis @Jaimi , any suggestion on how to fix?

    Best

    Bartek
     

    Attached Files:

  24. Bartek_Gudowski_Friend_Factory

    Bartek_Gudowski_Friend_Factory

    Joined:
    Feb 18, 2019
    Posts:
    54
    @kenamis @Jaimi what are the tested versions of Unity on the UMA HDRP branch? And the tested version of HDRP? I am on 2018.3.3 and LWRP 4.9.0. (that's where I have the problems with hair and clothes textures). Many thanks!
     
  25. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I honestly don't think anyone really knows exactly what is required everywhere. Especially since everyone has a different idea of what they want in their project. You'll need to pop them open and take a look and see what is in them.

    Simplest thing to do is to go into a new scene, and drop in a UMA_DCS prefab.
    Open the "DynamicSlotLibrary" and drop every SlotDataAsset into it.
    Open the DynamicOverlayLibrary" and drop every OverlayDataAsset into it.

    This gives you a local index of every slot and overlay - freeing us up to wreck the global library for a short bit.

    Now you can fix your Global Library - Delete every Slot and Overlay out of it.
    Delete every race you don't want to keep out of it. (You probably want to keep "Human Male" and "Human Female".)

    Next to the races you want to keep (in the global library) hit the "I" button to inspect it. Then click on the Base Race Recipe to open it up in the inspector. You'll see a list of slots underneath the "slots" button.
    You can click on the "inspect" to highlight the slot (and inspect it). Drop that slot onto the Global Library.
    Do the same for the overlays under each slot.

    Next, go into the wardrobe recipes in the global library, and delete the ones you don't want. Then inspect every wardrobe asset you want to keep, and drop the slots and overlays into the global library like you did for the base race.

    Yes it's tedious. But it should only take a few minutes.
     
  26. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I believe it is 2018.3. I don't know much about the branch, except Kenamis is working on it and has reported some success.
     
  27. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The material definitions on the slots and overlays have to match. Be sure you have edited both, and set it to the same material.

     
  28. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    Yes, I am aware of that. I just wonder where the 'MaleEyebrow' Comes from since I do not have it in Code anymore. And it should not be on the face, but on the eyebrow Slot. Very strange...
     
  29. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Oh - sorry. Honestly, I don't know - because MaleEyebrow01 is not in any base race recipe. You might check your DynamicAvatar component, and make sure there isn't a recipe on it (in "UMA Recipe" or "UMA Additional Recipes").
     
    Firlefanz73 likes this.
  30. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Another user had a similar issue (on the slack channel) and solved it by deleting the base race recipes from his races. I'm still not sure how those are getting added into the mix, though. I'll file it as a bug.
     
    Firlefanz73 likes this.
  31. Creiz

    Creiz

    Joined:
    Jun 6, 2017
    Posts:
    130
    Hello @Jaimi. I'm wondering if there's a way to rebuild the seams on an UMA? I transfered my whole stock from Unity 2017 which I used to make the clothes, etc (Remember I had a problem with it?) to Unity 2018 and the latest UMA 2.8, and it effed up my characters body seams. Do I have to rebuild everything again?
     
  32. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    Did you set up an uma material that uses the LWRP shaders?
     
  33. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    You mean like the examples folder? *gasp*
    What? why are you testing "combinations"?
    You'll be able to delete the "Examples" folder. Unfortunately, there are a couple minor dependencies that sneaked into the example folder but we've fixed them and will be pushing an update within the next couple weeks.
    There's a lot of examples for new people so that they can learn about all the things UMA can do...
     
    hopeful likes this.
  34. niflying

    niflying

    Joined:
    Jul 11, 2012
    Posts:
    108
    Hi,
    It looks like the feature-HDRP can't works fine on unity 2018.3.6. with HDRP.
    upload_2019-2-19_18-42-8.png

    I was wondering how to make it work. Does anyone know?
    Many thanks.
     
  35. Tomza

    Tomza

    Joined:
    Aug 27, 2013
    Posts:
    596
    Hi,

    I wish to prevent an avatar from getting the additional components like a capsule collider and a rigidbody. I myself want do that later on. Which script is responsible for adding those components in UMA?
     
  36. Bartek_Gudowski_Friend_Factory

    Bartek_Gudowski_Friend_Factory

    Joined:
    Feb 18, 2019
    Posts:
    54
    Hi!

    Not specifically but all project material have been converted to LWRP. So usually it get resolved there.
    Though, I also see that HDPR brahnch has other errors before converted to LWRP. Hence no texture on clothes etc. See error below.

    What version of Unity have you ported the UMA HDRP branch to?

    Thanks!
     

    Attached Files:

  37. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    No, the slots/overlays don't need to change. You might go back and make sure your normal maps imported correctly. I upgrade UMA from 2017.1 to 2017.4 and 2017.1 to 2018.3 several times a week without issue. So my guess is something in the way the textures are imported.
     
  38. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    That is an experimental branch, and may or may not work. You might try making sure all your umamaterials are setup with the correct materials and shaders. Beyond that, I have no idea.
     
  39. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    If you're using the included prefab, it has a "Capsule Collider" recipe on it under the "Additional Utility Recipes" that can be removed.
     
  40. Tomza

    Tomza

    Joined:
    Aug 27, 2013
    Posts:
    596
    Great! Thank you very much.
     
  41. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    It does, you just need to set up uma materials for the new shaders. There are no uma examples for that yet because that branch is still a work in progress...

    You're talking about the Unity provided material upgrader right? That won't fix the shader property keywords on the uma material.
    You have an error about no texture merge asset set. That branch changes the texture merge from a prefab to a scriptable object. Did you remove any previous uma folder in the test project? otherwise there might be a conflict with the old one.

    I was using 2018.3.5
     
  42. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Anybody knows why compression has to be disabled in order to use UMA 2.8 with WebGL?
     
  43. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I've been unable to get any WebGL to work correctly with compression. In theory, you just need to update the web.config. However, this crashes my hosted website.
     
  44. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    I have been using gzip compression with my old UMA version with WebGL for more than a year, but i upgraded to 2.8 and you said compression dont work with WebGL?
     
  45. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I said this:

    I've been unable to get any WebGL to work correctly with compression. In theory, you just need to update the web.config. However, this crashes my hosted website.

    It doesn't work for me. It crashed my hosted website. Your host may not have a problem with it.
     
  46. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Sorry to hear it crashed your site,, im just using a free amazon ec2 server, running apache2 on windows, it seemed to work for that, but i havnt tried the new UMA 2.8 yet tho....

    Thanks for your suggestions earlier, following it plus compressing the textures has reduced the UMA 2.8 WebGL build from 250 megabytes to 33 megabytes, still too big though, but im still working on reducing it more!

    Some of the textures if compressed dont work anymore like the male and female shirts, if compressed then they dont appear on the character anymore.

    Thanks!
     
  47. LoekvanKooten

    LoekvanKooten

    Joined:
    Apr 3, 2017
    Posts:
    120
    Thank you, Jami!

    I ran into a new issue. I'm loading the avatars from Resources, but resources.assets.resS has exceeded the dreaded 4 GB limit, so that my build gets all kinds of issues with textures that are not loaded. This while Resources only contains eight characters or so.

    That said, I want them in another folder, not Assets/Resources, but Assets/UMAResources, so that I can avoid them being stored in resources.assets.resS, and instead store them in another resS by adding them as a prefab in a new scene that is loaded on the start (this is a famous trick to work around the 4 GB issue).

    File System, Character System... nothing seems to work. What do I set exactly under Load in the DCS?

    EDIT: The memory issues were caused by a bug in Unity, that inflated all textures to gigantic proportions after an upgrade. The question still stands though!
     
    Last edited: Feb 20, 2019
  48. Bartek_Gudowski_Friend_Factory

    Bartek_Gudowski_Friend_Factory

    Joined:
    Feb 18, 2019
    Posts:
    54
    Many thanks, I will test all your tips and see if it resolves.
     
  49. LoekvanKooten

    LoekvanKooten

    Joined:
    Apr 3, 2017
    Posts:
    120
    That sounds like a much more beautiful solution! Thank you very much.
     
    hopeful likes this.
  50. LoekvanKooten

    LoekvanKooten

    Joined:
    Apr 3, 2017
    Posts:
    120
    Unfortunately, this doesn't change anything. I'm also not adding bones. I really think this is caused by UMA trying to animate characters that are still being built during the initialization phase (by now I have dozens of UMA characters that are being generated on the fly), because it doesn't check whether the bones are actually there.