Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    869
    The problem is i dont know which slots do what, and which are needed and which are not.

    Can you please help me determine which i can remove? I just want to keep basic male and female, and some clothes for each for now.

    Here are the main slots i have:

    M_xxxx
    UMA_xxxxxx
    F_xxxx
    Capsule collider
    Expressions
    Femalexxxxxx
    Malexxxxxxx
    PhysicsStandard
    PhysicsHD
    Locomotion
    ForearmTwist
    others....

    It would take me hours or days trial and error to find out which ones i can safely remove. last time i tried I worked on it for a week to reduce texture sizes, The WebGL build went from 250M to down to under 90 Meg, but loading the library still took over a minute

    So can you help me determine which slots i can remove, i just want to have basic male and female, with simple clothes for each.

    Thanks so much!
     
  2. id0

    id0

    Joined:
    Nov 23, 2012
    Posts:
    455
    Hello, Jaimi.
    What is better (for memory or else...), convert to texture, or not? I create HDRP character with some shaders, and make a stress test, create a hundred of them. FPS is fine, but the editor starts eating a lot of memory, 3.5 RAM before pressing Play and 7 or more after. And the processor also remains half or more of full memory. Is it an editor, or will it be the same in the build? And what is better to do with it? (except LOD, I'll do them later, of course)
     
  3. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Keeping the UMA atlas as a Render Texture is best for both performance and memory - except for Texture Memory, it's worse for that. As for what is taking up the most space, you will need to check in the profiler to see that. My guess is it's slots and source textures. Memory usage (and performance) will be better in a build than in the editor. But what that will mean to your project is something you will need to measure.

    The best way to control memory (and performance on loading) is to:

    1) Remove everything from the global library that is not needed.
    2) Lower texture sizes as much as possible. Always compress textures when possible (these can both be done in the import settings)
    3) Use the UMASimpleLOD component to better manage graphics memory.

    Always test performance and memory usage in actual build for your device. Memory usage and performance can vary dramatically from the editor.
     
    hopeful and id0 like this.
  4. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    I don't really know what your application is using or needs. Best thing to do is to:

    1. Concentrate ONLY on slots and overlays. Everything else is so tiny it won't matter too much.
    2. Look at the races you are using. They have a base race recipe. You will want to keep those slots and overlays.
    3. Look at any wardrobe items you are using. Keep those slots and overlays.
    4. Keep forearmtwist, locomotion, physics, expressions, capsule collider.
     
  5. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    869
    Thanks so much for your help, UMA is really amazing, but complicated!!
     
  6. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    869
    Im trying to reduce the size of the library so that it will load faster, so i delete a slot or a wardrobe item, then i get an error that its unable to find: M_High poly head.

    This is just one example. Is there a way i can know which component was looking for that, for example which wardrobe, or race, or slot, or recipe, etc was looking for that particular missing slot so i can go delete that, Instead of looking thru everything?
     
    Last edited: Oct 5, 2019
  7. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    869
    I deleted a bunch of stuff (slots and wardrobes), but it still freeze for around 65 seconds on android when the first avatar is created. Seems its unchanged from before i deleted anything, maybe something didnt get rebuilt after i deleted those items? Anybody have any ideas? 65 seconds is a long time for a player to wait on a frozen screen.

    Anybody knows the name of the UMA global library file and where its located?
     
    Last edited: Oct 5, 2019
  8. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    After deleting all the files, do a repair on the library.

    I think it's named Assetindexer or something really close to that. I'm not at my machine right now.
     
  9. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    869
    by "deleting a bunch of files", i meant removing them using the UMA global library window tool fro the Unity menu. Do I still need to do repair the library after that?
     
    Last edited: Oct 5, 2019
  10. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    869
    I have a file called assetindexer.asset located in UMA/InternalDataStore/InGame/Resources

    its only 55K, but its taking 65 seconds to load on Android. Unless thats the wrong file?
     
  11. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    869
    Can somebody try using UMA with android? maybe im doing something wrong? I'm using an actual android phone device.
     
  12. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    The file contains a reference to all the things in the library. So it has to load those also.
     
  13. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    No.

    I have tried UMA on Android. It did not take over a minute to load with the default items. What device are you using? Speed varies wildly by device.
     
  14. id0

    id0

    Joined:
    Nov 23, 2012
    Posts:
    455
    Blendshapes not work with clothes? If I add cloth recipe on character blendshapes are missing or broken. I use them for lipsync and much more. Any workaround?
     
  15. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Blendshapes do work on clothes, the process is exactly the same as for the race models.

    1. Did you create the blendshapes for the clothes?
    2. Did you mark them to import on the clothing FBX in the import settings?
    3. Did you name them the exact same as the blendshapes on the race slots?
    4. Do you have "load blendshapes" checked under advanced options on your DCA?

    Blendshapes are really cool, but they do require more work. They have to be on everything that is affected.
     
    id0 likes this.
  16. Tomi-Tukiainen

    Tomi-Tukiainen

    Joined:
    Jun 8, 2013
    Posts:
    26
    Hi, first I'd like to thank the creators of UMA! It's a super useful asset and has great potential.

    We have been working with it for a while now and the main hurdles seem to be related to the asynchronous nature of the system. As an example, we spawn a crowd of random avatars and they pop up during several frames. Next we want to make one of them to look like a pre-configured avatar using:

    Avatar.LoadDNAFromRecipeString
    Avatar.LoadWardrobeFromRecipeString
    Avatar.LoadColorsFromRecipeString
    Avatar.BuildCharacter

    The problem is that if we call these too early, the avatar either disappears or the changes don't get applied. UpdatePending method returns false during the frame when avatar is instantiated and has comment "You should probably not do this every frame" but if I first wait for 1 frame and then use this method, I can successfully wait until the character is ready for the Load calls above. It usually takes 3-4 frames.

    In my opinion it would be a great addition to have a "IsReady" read-only property that would:

    - be ok to run every frame, because it will be used for waiting in coroutines
    - return true only when the Avatar is ready for all practical intents and purposes

    That's simple enough I guess but this really is causing us biggest hassles at this point. Maybe there's already something like this?
     
  17. andrej-szontagh

    andrej-szontagh

    Joined:
    May 18, 2017
    Posts:
    20
    Hi Jaimi,

    I have started working on the client's project yesterday and since then I was not successful building newest UMA 2.9 for WebGL. I always get this error :

    upload_2019-10-8_19-6-14.png

    I am using default settings "HumanMale" I have also tried other races but I still get the same error.

    The versions I have tried so far
    2019.2.8f1
    2019.2.0f1
    2018.4.10f1

    At first I tried LWRP template and had to fix materials and I have added UMA successfuly to the project and everything seems just fine in the editor however I always get the above error.

    .. so I have decided to create completely new Unity Project. I only did this :
    1. Created "3D" project (no LWRP)
    2. Installed UMA 2.9 from the asset store
    3. Opened "UMA DCS Demo - Simple Setup"
    4. Switch Build Target to WebGL
    5. Build and Run

    also always got this error.

    I tried AssetBundleManager with the test server, again works no problem in editor doesn't work in browser.

    I tried newest Chrome, FireFox, Opera ..
    same error.

    I also tried to use Global Library rebuild the library and add "Add Build References" (many times)
    no change.

    I have read the PDF documentation and also some tutorial videos so far.

    Maybe I am doing something obviously terribly wrong but I am already trying for past 11 hours to get UMA work in the browser. The scene loads but the UMA character doesn't show up .. same thing every time.

    I would be very grateful if you could help me to move this in the right direction.

    Thanks
    Andrej
     
    Last edited: Oct 8, 2019
  18. dlshs

    dlshs

    Joined:
    Oct 20, 2018
    Posts:
    3
    Hi,

    yeah, the server is setup and the asset bundle in question seem to be loaded without problems. The crash seems to occur at some subsequent frame.

    I've tried running the asset bundles demo and everything there seems to be working fine. I also double checked to see that my settings were setup the same as within the asset bundle demo.

    Is there any chance I can send you a slice of my project so that you can take a look at it?

    /Leif
     
  19. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    humm I get :

    Calling Animator.GotoState on Synchronize layer
    UnityEngine.Animator:play(Int32, Int32, Single)
    UMA.AnimatorState:RestoreAnimatorState(Animator) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBase.cs:135)
    UMA.UMAGeneratorBase:UpdateAvatar(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBase.cs:204)
    UMA.UMAGeneratorBuiltin:UpdateUMABody(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:418)
    UMA.UMAGeneratorBuiltin:HandleDirtyUpdate(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:268)
    UMA.UMAGeneratorBuiltin:OnDirtyUpdate() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:291)
    UMA.UMAGeneratorBuiltin:Work() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:148)
    UMA.UMAGeneratorBuiltin:Update() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:101)

    On my custom race I am working on.. Is there something I am missing ?
     
  20. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    Also, I turned off "Build Character Enabled" on my Dynamic Character Avatar, so I can manually build using API, but when I call BuildCharacter, it doesn't do anything... toggling Build Character Enabled on does build avatar, so my settings should be ok. Am I missing something?
     
  21. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    You should be able to call Avatar.LoadFromRecipeString(), and get all of that in one call.
    To force the UMAS to generate on then next frame and not disappear, you can set "fast generation" and "Process all Pending" on in the Generator on the UMA_DCS component. This can introduce a pause depending on how many UMA are being generated.


     
  22. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    I have done this with WebGL 1, but I haven't tried it in the later version. I have seen a UMA webGL demo project just recently on an asset, so it should work. I'll try to put together a sample this weekend, but I'm currently out of town.

     
  23. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    I'm not the asset bundle expert - you might try getting on the discord or slack, and asking David (DOS). What is the line of code where it is crashing?
     
  24. andrej-szontagh

    andrej-szontagh

    Joined:
    May 18, 2017
    Posts:
    20
    Thank You.

    I am starting to run out of ideas at this point. Seems like UMA cannot find files from the library or asset bundles (tried asset bundle demo). I tried to completely turn off the windows firewall and different browsers, Unity versions, different demo scenes. Tired to fiddle around the player setting. Same error.

    I tried to download older UMA version from GitHub but for some reason downloading always stops at around 5% .. Can any of you guys be kind and share some older stable UMA version like 281 ?

    Best,
    Andrej
     
  25. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    I also need few extra bones preserved so I can add my weapons on them, but no matter what I do, those extra bones outside humanoid does not appear back when I generate the avatar...

    I have tried to use animated bones name array to see if it will preserve them, but no..
    I also tried to add those bone as part of DNA (even if I don't intend to modify them) but no..

    Have I missed something?
     
  26. andrej-szontagh

    andrej-szontagh

    Joined:
    May 18, 2017
    Posts:
    20
    I have managed to run one of the legacy examples with bunch of minor errors.

    upload_2019-10-9_17-16-26.png

    So this is the first time in last 3 days I see a UMA character in my browser.
    I was thinking about building the sources and debugging the issue since I have pretty much no other option except mindless random trial and error, but I am lucky enough to not be able to download any releases from the UMA repository, the downloading always stops with a networking error.

    Maybe I will be able to use legacy stuff, may not .. but maybe I will be able to isolate the issue.

    Wish me luck.

    Andrej
     
  27. GCatz

    GCatz

    Joined:
    Jul 31, 2012
    Posts:
    281
    Used to have this problem with UMA in WebGL on 2019.2.3f
    seems unity strips away UMA's library index

    to overcome this problem use this code:
    Code (CSharp):
    1. #if UNITY_EDITOR
    2. using UnityEditor;
    3. #endif
    4.  
    5. public class WebGLEditorScript {
    6. #if UNITY_EDITOR
    7.   [MenuItem("WebGL/Enable Embedded Resources")]
    8.   public static void EnableErrorMessageTesting() {
    9.     PlayerSettings.SetPropertyBool("useEmbeddedResources", true, BuildTargetGroup.WebGL);
    10.   }
    11. #endif
    12. }
    and click on the menu of "WebGL/Enable Embedded Resources"
    then build normally.
     
    ChickenHero likes this.
  28. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    After I read this thread more deeper, I found that those bones are not appearing because they have no weights on them.. apparently solution is to build own bones ( which I have to study again on how to use generated bones after I made them ) ... Is there no progress has been done on adding extra bones without having to add weight to them or manual bone creation? Manual bone creation sounded like fiddly and risky, because of they may get lost or something?

    Phew..
     
  29. andrej-szontagh

    andrej-szontagh

    Joined:
    May 18, 2017
    Posts:
    20
    Thank you! .. I am going to give it a try and I will be back with results.

    Best,
    Andrej
     
  30. andrej-szontagh

    andrej-szontagh

    Joined:
    May 18, 2017
    Posts:
    20
    This solved the problem but the fact is I am running this on 2018.4.10f1 LTS so this problem might be there for longer.
    That's really mind boggling, I didn't checked every post about WebGL in this thread but I didn't found anybody complaining that WebGL doesn't work so far.

    Also the fact that Unity have such hidden project attributes, why they didn't put it into Player Settings ?

    Nevermind, finally I can move on. THANK YOU!!

    Best,
    Andrej
     
    Jaimi likes this.
  31. andrej-szontagh

    andrej-szontagh

    Joined:
    May 18, 2017
    Posts:
    20
    Hi everybody,

    how do you guys go about optimizing UMA size for WebGL? I have created the most basic dummy scene using "UMA\Getting Started" prefabs.

    upload_2019-10-10_11-41-8.png

    I have managed to export and run release WebGL build with compression and pretty much all the settings that should reduce the build size.

    I didn't do anything aside of that and looked into "Editor.Log" to see what's in the build.

    upload_2019-10-10_11-42-56.png

    How do I remove the female content and all those unused textures? The app pretty much spawn naked UMA avatar and that's it. How all those references got in ?

    Thanks.

    Andrej
     
    Last edited: Oct 10, 2019
  32. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    For some reason I can't see any overlaying occlusion mesh preview when I edit mesh hide asset. I have ofcourse assigned the slot that is overlaying. Any ideas?
     
  33. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    upload_2019-10-10_19-12-58.png

    Here is my setting. I have occlusion slot assigned and raycasting works as well. Everything works except I can't see the occlusion mesh itself, so I can't fine tune this result...
     
  34. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    You need to do the following:

    • Go through the Global Library, and remove everything that you don't need. Pay particular attention to the slots and overlays. (The overlays contain references to the textures).
    • For textures you are going to keep, lower the texture sizes as much as possible and make sure they are compressed when possible.


     
  35. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    The mesh display can be off for various reasons, so the fields below the occlusion mesh let you adjust the transform for it. if you don't see it right off, you should try setting the rotation to 0,180,0 - and possibly setting the scale to 0.01, 0.01, 0.01.

     
  36. andrej-szontagh

    andrej-szontagh

    Joined:
    May 18, 2017
    Posts:
    20
    Thank you.

    I was expecting something like this. I was little confused about how "Rebuild From Project" works, now the info in the brackets makes more sense.

    Best,
    Andrej
     
  37. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    I have ofcourse, tried all of that too. No transform offset, rotation or scale seems to help at all. I would also like to mention that the default setting of 270 rotation does correct raycast hidden faces. It just doesn't show the occlusion mesh at all.
     
  38. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    LOL...feels a bit dumb.. but I had my gizmos button turned off. That was why it didn't display it. I understood this by looking at the Geometry Selector script itself and found it was using gizmo to draw the occlusion mesh. I think it may be best if this was mentioned somewhere..(if not already) to avoid potential dummy like me. Maybe a string added next to Occlusion Slot (Optional) like [ need to have gizmo button turned on ]
     
  39. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    I was trying to add pony tail to the character following the video tutorial.. All seems ok until suddenly I started to get this error when I use Character Completed event on slot to add jiggle effect :

    Exception in UMAGeneratorBuiltin.OnDirtyUpdate: System.ArgumentException: Object of type 'UnityEngine.Object' cannot be converted to type 'UMA.UMAData'.
    at System.RuntimeType.CheckValue (System.Object value, System.Reflection.Binder binder, System.Globalization.CultureInfo culture, System.Reflection.BindingFlags invokeAttr) [0x00071] in <599589bf4ce248909b8a14cbe4a2034e>:0
    at System.Reflection.MonoMethod.ConvertValues (System.Reflection.Binder binder, System.Object[] args, System.Reflection.ParameterInfo[] pinfo, System.Globalization.CultureInfo culture, System.Reflection.BindingFlags invokeAttr) [0x00069] in <599589bf4ce248909b8a14cbe4a2034e>:0
    at System.Reflection.MonoCMethod.DoInvoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00017] in <599589bf4ce248909b8a14cbe4a2034e>:0
    at System.Reflection.MonoCMethod.Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <599589bf4ce248909b8a14cbe4a2034e>:0
    at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000] in <599589bf4ce248909b8a14cbe4a2034e>:0
    at UnityEngine.Events.PersistentCall.GetObjectCall (UnityEngine.Object target, System.Reflection.MethodInfo method, UnityEngine.Events.ArgumentCache arguments) [0x000bf] in C:\buildslave\unity\build\Runtime\Export\UnityEvent\UnityEvent.cs:470
    at UnityEngine.Events.PersistentCall.GetRuntimeCall (UnityEngine.Events.UnityEventBase theEvent) [0x00099] in C:\buildslave\unity\build\Runtime\Export\UnityEvent\UnityEvent.cs:437
    at UnityEngine.Events.PersistentCallGroup.Initialize (UnityEngine.Events.InvokableCallList invokableList, UnityEngine.Events.UnityEventBase unityEventBase) [0x0002e] in C:\buildslave\unity\build\Runtime\Export\UnityEvent\UnityEvent.cs:610
    at UnityEngine.Events.UnityEventBase.RebuildPersistentCallsIfNeeded () [0x0001a] in C:\buildslave\unity\build\Runtime\Export\UnityEvent\UnityEvent.cs:771
    at UnityEngine.Events.UnityEventBase.PrepareInvoke () [0x00002] in C:\buildslave\unity\build\Runtime\Export\UnityEvent\UnityEvent.cs:807
    at UnityEngine.Events.UnityEvent`1[T0].Invoke (T0 arg0) [0x00002] in C:\buildslave\unity\build\Runtime\Export\UnityEvent\UnityEvent\UnityEvent_1.cs:53
    at UMA.UMAData.FireCharacterCompletedEvents () [0x00036] in C:\Project\Subterrain2\UnityTopDownProject\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAData.cs:1600
    at UMA.UMAGeneratorBuiltin.UMAReady () [0x0002a] in C:\Project\Subterrain2\UnityTopDownProject\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAGeneratorBuiltin.cs:393
    at UMA.UMAGeneratorBuiltin.HandleDirtyUpdate (UMA.UMAData data) [0x00284] in C:\Project\Subterrain2\UnityTopDownProject\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAGeneratorBuiltin.cs:277
    at UMA.UMAGeneratorBuiltin.OnDirtyUpdate () [0x00002] in C:\Project\Subterrain2\UnityTopDownProject\Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAGeneratorBuiltin.cs:291
    UnityEngine.Debug:LogWarning(Object)
    UMA.UMAGeneratorBuiltin:OnDirtyUpdate() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:307)
    UMA.UMAGeneratorBuiltin:Work() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:148)
    UMA.UMAGeneratorBuiltin:Update() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:101)

    The slot asset and everything else seems to be good because if I don't call the event, everything works fine. Bones were attached fine too.
     
  40. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Just from what the error says, it looks like you passed something to the event that wasn't the correct type.
     
  41. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    Well, I am not actually passing anything myself. When event is called , Uma should call my method with UMA.UMAData as parameter. I believe this is automatically done when I use Character Completed event from slot asset.
     
  42. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    That event is called directly from the UMAData, and passes a reference to itself. I don't see how it can be passing you anything except a UMAData:

    Code (CSharp):
    1.             foreach (var slotData in umaRecipe.slotDataList)
    2.             {
    3.                 if (slotData != null && slotData.asset.CharacterCompleted != null)
    4.                 {
    5.                     slotData.asset.CharacterCompleted.Invoke(this);
    6.                 }
    7.             }
    What does your function look like, and how are you wiring it up?
     
  43. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    Exactly. I am not sure how this error can even happen.

    I am using SecretAnorak's Jiggle script.

    https://pastebin.com/jd9JGUKn

    so function call is like :

    public void AddJiggle(UMAData umaData)
    {
    Transform rootBone = umaData.gameObject.transform.FindDeepChild(jiggleBoneName);
    UMABoneCleaner cleaner = umaData.gameObject.GetComponent<UMABoneCleaner>();

    ...

    upload_2019-10-12_0-15-29.png
     
  44. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    You passed the "static" version of the call in the inspector, giving it a null.
    You need to use the "dynamic" call at the top of the list, that will let the system pass the umadata parameter.


     
  45. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    Ohhhh.. darn. I didn't know that, there is difference. Learning new thing everyday. Thanks a lot for the help! It's all working now.
     
    Jaimi likes this.
  46. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    How does Uma handle the loading of the assets? I know there is global library, but does uma preloads all assets or on demand? For example will dca prefab will preload all the assets into memory? What other loading method does it support? Asset bundles? Addressable? When you build slots and overlays, do they actually contain model meshes and texture data within them? Or do they just reference the source asset? If referening is used, Does uma automatically shares textures if the overlays uses the same textures again? If preloading, can it do it by async so loading doesnt stop the main thread?
     
  47. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Assets can be referenced three different ways in UMA.
    • In a scene library (not the dynamic versions). In this case, the assets that are referenced in the scene libraries are loaded with the scene.
    • In the global library. In this case, all assets in the global library are loaded into memory when the library itself is first referenced.
    • In asset bundles. In this case, the assets are loaded by bundle, when an asset in the bundle is referenced.
    Addressables are not yet supported. That is the next big change coming in UMA.

    Each UMA generates and uses at least one set of texture atlases. By default, these are render textures (because that is the fastest). You can check a box in the generator to copy them to standard textures to alleviate video ram issues, but it does introduce a slowdown.

    When you build slots, the slots contain the mesh and skeleton data. When you create an overlay, it only contains a reference to the textures. UMA does not load a texture more than once.

    Because loading is handled by Unity itslef on the main thread, it will generate a pause.
     
  48. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    Thanks for the great explanation !
     
  49. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,624
    If I have it right, one of the great things about addressables is that if you have loaded an addressables resource for a character - like a slot or overlay - but now nobody is using it anymore, it will automatically remove itself from memory.
     
  50. MaorDany

    MaorDany

    Joined:
    Dec 31, 2017
    Posts:
    105
    One of the beautiful things I saw at Unity.
    Is there an example to do a lips move and NavMesh?