Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. klarkitgames

    klarkitgames

    Joined:
    Jul 28, 2018
    Posts:
    15
    I am having an issue with bone builder. It puts the rig at -90 on the X axis which messes up mu Equipment and spells. If I correct this to 0,0,0, the avatar is face down so that does not work. Any idea on how to get the rig at 0,0,0 through bone builder?
     
  2. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The bone builder builds the rig so it works with the UMA. You should be able to pull the "position" and "orientation" of the bone off the transform and it should be correct for whatever purposes you need. Bones are going to have offsets and rotations no matter what you do, as they are positioned and animated. What problem are you seeing?
     
  3. klarkitgames

    klarkitgames

    Joined:
    Jul 28, 2018
    Posts:
    15
    The issue is I am using the MMORPGKIT and it requires equipment and effect containers for weapons and spells. The weapons are facing the along the wrong axis and spell effects are going along the wrong axis.I create these containers buy adding Empty GameObjects to the rig and name them appropriately and the kit then knows where to place weapons and where to have effects show. So with a -90 X axis everything is off. If this makes any sense at all.
     
  4. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Their kit is not correctly getting the transform then. I have no way to help with that. But this addon seems to use UMA:
    https://github.com/insthync/UnityMultiplayerARPG_UMA

    Not sure if that is helpful.
     
  5. klarkitgames

    klarkitgames

    Joined:
    Jul 28, 2018
    Posts:
    15
    That is what I am using. I will look into that thank you.
     
  6. robybaggi

    robybaggi

    Joined:
    Mar 27, 2020
    Posts:
    8
    Hey there,

    I have a problem where UMA messes up when I add wardrobe recipes at runtime. If I add all my wardrobe recipes beforehand and then enter play mode, the generated UMA looks correct. Any idea why that is?

    The wardrobe recipes use the same material as my base slots for the most part (just the standard Unity HDRP material with 3 texture channels: diffuse, mask map and normal map). Is that the cause? Should I create a separate material for wardrobe recipes?

    Any help is appreciated

    EDIT:
    Ok, so it seems the cause for all this are the blendshapes. If I untick Load Blendshapes, I can drag whatever wardrobe recipe I have on my character and it won't glitch out. Why is that?
     
    Last edited: Jul 6, 2020
  7. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Make sure to turn off "GPU Skinning" in your player settings. That messes things up all the time.
     
    hopeful and robybaggi like this.
  8. Serhii-Horun

    Serhii-Horun

    Joined:
    Apr 12, 2015
    Posts:
    151
    Hello guys!

    We need your help. Short story: we have a texture for head skin(2048x2048). And we have a couple of textures responsible for adding overlays(like, tattoo, make up etc). After we have tried to reduce 2048 skin to 1024, all other textures becomes also impacted. Looks like UMA use first texture as a base(2048x2048) and then adds other textures on top. So, looks like we can't use low resolution skin with big resolution overlays. Probably we missed something.

    Please help! Thanks a lot!
     
  9. robybaggi

    robybaggi

    Joined:
    Mar 27, 2020
    Posts:
    8
    Nice! It works flawlessly now. Thanks for the help yet again!
     
  10. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    When you add overlays on top of each other, there is a "rect" that you can specify with the coordinates of the textures. This is the coordinates on the first overlay where you want the item placed. This value is copied into the recipe when you add the overlay.

    If you enter this rect in absolute coordinates (pixel values), then it can break when you resize the base textures. The solution is: Go into the overlays, and update the RECT values to the new positions. Do the same in the recipes that use those (they're copied, not referenced).

    I recommend to NOT use absolute coordinates. Instead, use UV coordinates for this, and then you can resize textures without issue. There is a scene included to help do this - "OverlayAligner". It will let you add a base texture, then add then additional overlays, and you can move them around to the position they need. It works at edit time (there's a big warning).
     
    hopeful and Serhii-Horun like this.
  11. Serhii-Horun

    Serhii-Horun

    Joined:
    Apr 12, 2015
    Posts:
    151
    Thank you man a lot!!!
     
  12. xeye

    xeye

    Joined:
    Jun 25, 2013
    Posts:
    37
    is there a limit to unique UMAs being used in the scene? I have many being used as animated icons and they are simply not drawing - might be a bunch of other reasons, but I feel like they used to work before I had to add more buttons..
     
  13. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Only limited by your CPU, GPU and Memory.

    In more detail: Every UMA, by default, creates it's atlas textures in GPU memory as render textures. This consumes video memory.The more you have, the more video memory is used. There is no internal limit, but it is limited by the size of your video memory.

    On items that will be icons, you might consider setting the "atlas resolution scale" field on the DynamicCharacterAvatar to 0.25, or maybe 0.125 to significantly lower the size of the Render Texture.
     
    Last edited: Jul 7, 2020
    xeye likes this.
  14. XMaster96

    XMaster96

    Joined:
    Jun 28, 2017
    Posts:
    5
    I have another exotic problem.
    I would like to completely randomize the pose of the UMA. My current approach is to randomly set the angle of each body component individually. Unfortunately it doesn’t really work that well. It is firstly a total pain to program and secondly the joint angle is sometimes completely different from what I have set it to be.
    Is there a better way to do that?

    NOTE: I only want to set the pose ones at the beginning.

    Thanks.
     
  15. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I'm not an expert, but I recommend looking into IK solutions like AnyIK or FinalIK. but, if it were me, I'd probably just create a blendtree in the animator, and fade between several different animations.

     
  16. CryptoJanne

    CryptoJanne

    Joined:
    Jul 7, 2019
    Posts:
    12
    Hello fellow game developers.

    I've watched Anoraks videos, and i tried to create my own race(not with fuse as he did) and ive managed to come pretty far with a lot of errors that has taken TIME to figure out. I'm pretty close now i feel like, but one error happens when i press play with my new race set.

    AvatarBuilder 'Gameobject': Transform 'Skeleton:Hips' for human bone 'Hips' not found

    That error happens because my uma gameobject does not spawn a skeleton, or atleast it spawns the first two, Global then Position, but not the "real" rig. I cannot figure that one out as i have very little information to go on.
    I have created a T-Pose and the bone structure seems to be correct.

    Any help in the matter is greatly appreciated.
     
  17. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    This sounds like it's coming from Unity when it's building the Avatar. This is typically a problem when the avatar is not configured correctly, or when you are using a Generic avatar on a race that is configured to be a human avatar.

    Did you import your model, and generate a TPose from a humanoid rig? (ie - the rig is marked Humanoid in the import parameters). If not (if you used Generic) on your race, did you mark it as "Generic" in the "UMA Target" field?
     
  18. CryptoJanne

    CryptoJanne

    Joined:
    Jul 7, 2019
    Posts:
    12
    That removed the error at least! But still only "Root" -> "Global" as skeleton. The UMA Renderer works, i see my character, but no rig.

    So no errors, clean console. Any idea where i might have screwed up? Now i set it to Generic btw, to remove the error. Maybe Generic Characters have no bone structure?

    EDIT: Even after making sure that the FBX is set to humanoid, and re extracting T-Pose, i get that same error with creating UnityAvatar, and no skeleton structure.

    EDIT2: I fixed the underlying issue with the errors and humanoid rig. It was a mistake made in blender with the meshes having weird parents.

    Now my UMA is ALIVE, but he is deformed. Very much so. This only happens when i use an animator controller(Mixamo), the T-pose seems to work. And if i dont turn him into an UMA it also works with animations.
    Any ideas?

    Picture related:
     
    Last edited: Jul 9, 2020
  19. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    1. The arm / leg pose issues are usually the cause of the armature being exported incorrectly (wrong axis). Did you use the values in the guide?
    2. The texture misalignment is typically an issue with UV coordinates. All UV coordinates must be in the 0..1 range (not tiled). If you're viewing it in Blender, they need to be completely contained inside the texture in UV edit mode.

     
    hopeful likes this.
  20. xeye

    xeye

    Joined:
    Jun 25, 2013
    Posts:
    37
    thanks for this info - I am not seeing "atlas resolution scale" in the options, is it somewhere else perhaps?



     
  21. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I thought it was in 2.10 - Maybe in 2.10.1. I'll be releasing that very soon.

    AtlasResolutionScale.png


     
  22. xeye

    xeye

    Joined:
    Jun 25, 2013
    Posts:
    37
    Ah ok. I will keep my eyes peeled! I suspect you would make an announcement in this thread hopefully?
     
  23. XMaster96

    XMaster96

    Joined:
    Jun 28, 2017
    Posts:
    5
    This Time I feel like this is a more normal question. ;)

    I have created a Prefab that contains the UMA scripts and a custom generator script that randomizes my UMA and bakes the mash. When I spawn the Prefab before Runtime everything works normally and the UMA gets a random DNA, gets dressed, gets random limbs positions and the Mash gets baked. If I spawn the UMA at runtime the DNA randomization and the dressing fails.

    Thanks for the Help.
     
  24. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Please look at the scene "UMA DCS Demo - Random Characters" to see how to use the Randomizer to spawn at runtime.
    If you want to fill out everything yourself instead, please take a look at the "How to construct a DCA from Scratch" scene.
     
  25. Gensutaaa

    Gensutaaa

    Joined:
    Sep 10, 2017
    Posts:
    5
    Hey there!
    We’re having a bit of a problem with the materials where the textures of materials are being set to these empty images? This is only happening to slots that aren’t the main body which is the weirdest part.


    When dragging in the clothes material from the assets folder into the materials list, the model ends up looking fine until the avatar gets rebuilt ( specifically when a wardrobe recipe is removed or added )






    We’ve tried putting the clothes material on the body and it displays the clothes colors just fine. Putting the skin material on the clothes however, makes it look how it does in the first image. We’re unsure of where in the process this is happening because these aren’t null textures. The UMARenderer says the textures are there, however these textures aren’t the same as the ones in the original material we set.


    All the overlays, UMA materials, and Unity materials are practically the same except one of the texture channels has a different texture.



    We’ve tried having the material type set to atlas, we’ve tried using a completely different material, and we’ve even tried seeing if adding the other slots to the text recipe would fix it, but none of these did anything.

    Double clicking on the weird texture that’s put into the material doesn’t point to a file into the project and shows this instead




    We also tried using the most up to date version ( we were on 2.9 before), but nothing changed, so all the screenshots I'm showing here are all still with ver. 2.9.

    My team and I have tried going through the code to see where this could be happening since we suspect it’s probably happening when the material is being copied, but even there it still has the same texture name/details as the original texture we set. Any help with this is greatly appreciated!
     
  26. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    Those aren't empty images. They are render textures.
    https://docs.unity3d.com/ScriptReference/RenderTexture.html
     
  27. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    In that first shot, what do the rendertextures look like (double click, and look in the inspector) - in the visualizer at the bottom.

     
  28. Gensutaaa

    Gensutaaa

    Joined:
    Sep 10, 2017
    Posts:
    5
    Thanks for responding! It looks like this.
     
  29. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    It looks like nothing is getting copied to your render textures. Are you sure "_ToonRamp" and "_Diffuse" are the shader properties in your shader graph? There's two different "names". You want "Reference" names to match.
    upload_2020-7-15_12-36-32.png
     
  30. Raziid

    Raziid

    Joined:
    Jun 13, 2017
    Posts:
    8
    I'm having an issue where the avatar seems to be calculating a foot placement and its interfering with the animations I'm using. There is some red gizmo where the foot placement is and the mesh hangs below that. I can't find any information on this.

    Here is the UMA avatar with the sunken feet: UMAfootissue.png

    And here is a placeholder model with the same animator controller, foot placement is just fine: RPGcharacterNoIssue.png
     

    Attached Files:

  31. shadowx311

    shadowx311

    Joined:
    Jul 12, 2016
    Posts:
    4
    I'm using unity 2019.3.12f1 trying to make a slot for a clothing model, with the slot builder, but throws this error: NullReferenceException: Object reference not set to an instance of an object.
     
  32. Gensutaaa

    Gensutaaa

    Joined:
    Sep 10, 2017
    Posts:
    5
    Yeah, those are the right names. I tested to see if putting just "ToonRamp" and "Diffuse" would fix anything just in case, but the version of it with the underscores was the correct one.
     
  33. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    What do the colors look like in the recipe? Are you using Shared Colors? If so, what are the colors set to? On the multiplier, If you specify 0 alpha, you will get black textures. If you specify black color, everything will be black.
     
  34. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    What is the call stack?
     
  35. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You should adjust the capsule collider size
     
  36. shadowx311

    shadowx311

    Joined:
    Jul 12, 2016
    Posts:
    4
    where do I find the call stack?
     
  37. Raziid

    Raziid

    Joined:
    Jun 13, 2017
    Posts:
    8
    Solved the foot height issue, thanks! The other related issue is that the feet bob up and down a bit instead of staying planted. On the other avatar, the feet stay put and the hips bob up and down. Is there a way I can adjust that?
     
  38. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Maybe your animator settings are different? Is one root motion, and the other not? Generally, you will want root motion, but if your animations aren't set for that it will cause issues like this.
     
  39. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The console has two panes - the top one is the running list of messages/errors/etc. When you click on an item, the call stack for the selected item is in the bottom pane.
     
  40. shadowx311

    shadowx311

    Joined:
    Jul 12, 2016
    Posts:
    4
    Warning, pretty long:
    NullReferenceException: Object reference not set to an instance of an object
    UMA.Editors.UMASlotProcessingUtil.CreateSlotData (System.String slotFolder, System.String assetFolder, System.String assetName, UnityEngine.SkinnedMeshRenderer mesh, UMA.UMAMaterial material, UnityEngine.SkinnedMeshRenderer prefabMesh, System.String rootBone, System.Boolean binarySerialization) (at Assets/UMA/Core/Editor/Scripts/UMASlotProcessingUtil.cs:127)
    UMA.Editors.UmaSlotBuilderWindow.CreateSlot_Internal () (at Assets/UMA/Core/Editor/Scripts/UmaSlotBuilderWindow.cs:283)
    UMA.Editors.UmaSlotBuilderWindow.CreateSlot () (at Assets/UMA/Core/Editor/Scripts/UmaSlotBuilderWindow.cs:231)
    UMA.Editors.UmaSlotBuilderWindow.OnGUI () (at Assets/UMA/Core/Editor/Scripts/UmaSlotBuilderWindow.cs:174)
    System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <437ba245d8404784b9fbab9b439ac908>: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 <437ba245d8404784b9fbab9b439ac908>:0)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <437ba245d8404784b9fbab9b439ac908>:0)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at <ffcf2f9855fe46038192299154f37a45>:0)
    UnityEditor.HostView.Invoke (System.String methodName) (at <ffcf2f9855fe46038192299154f37a45>:0)
    UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at <ffcf2f9855fe46038192299154f37a45>:0)
    UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect) (at <ffcf2f9855fe46038192299154f37a45>:0)
    UnityEditor.DockArea.OldOnGUI () (at <ffcf2f9855fe46038192299154f37a45>:0)
    UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.EventDispatcher.OpenGate () (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.EventDispatcherGate.Dispose () (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)
    UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <35bab3c7b0dc4999845bcfccc7758d96>:0)
     
  41. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
  42. Raziid

    Raziid

    Joined:
    Jun 13, 2017
    Posts:
    8
    Using the exact same animator settings. I even copied the other unit's movement code into my OnAnimatorUpdate to ensure that no root motion differences were occurring.

    The rig is slightly different as the UMA rig has a "global" transform built into the hierarchy at the second level, then the position, then the hips, whereas the placeholder characters just have their motion at the 2nd level and pelvis at the third level. Do I need to import animations in a specific way to make them work with the UMA avatar?
     
  43. Raziid

    Raziid

    Joined:
    Jun 13, 2017
    Posts:
    8
    Hopefully this helps someone in the future - turn on foot IK in your animation state in the animation controller. That will plant the feet on the ground as desired. I also have IK pass selected in the animation layer and IK is enabled on the rig and for any masks applied.
     
    Jaimi likes this.
  44. Gensutaaa

    Gensutaaa

    Joined:
    Sep 10, 2017
    Posts:
    5

    This is what the recipe looks like. I'm not using any shared colors and the alpha for the multipliers are set to 255. Also, during runtime the wardrobe recipe still looks like this on the UMAData component despite the UMARenderer not having the correct textures.
     
  45. shadowx311

    shadowx311

    Joined:
    Jul 12, 2016
    Posts:
    4
    Is there a discord server to discuss UMA on?
     
  46. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The only other thing to check is the alpha on the source textures, but having the Channel Type set to "Texture" should have ignored the alpha on the blit. It's possible I'm remembering it backward, so as a last resort, you might try setting the texture type to "diffuse" on the main texture.

     
  47. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yes. There is a link to the invite on the last page of the documentation.
     
  48. Gensutaaa

    Gensutaaa

    Joined:
    Sep 10, 2017
    Posts:
    5
    Changing the Channel Type to diffuse didn't work, but changing it to "Tinted Texture" or "Material Color" ended up working for some reason? Either way, thank you so much for your help!
     
    Jaimi likes this.
  49. LSPredator

    LSPredator

    Joined:
    Jun 23, 2014
    Posts:
    36
    Can I turn off generation texture atlases?
    I want to reduce memory consumption. Some times atlases have a lot of free space and consuming a lot of memory. I don't want to use texture atlases.
    upload_2020-7-19_15-24-18.png
     
  50. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    There is an option on the UMAMaterial to enable/disable this. Of course this will result in more drawcalls.
     
    LSPredator likes this.