Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Unfortunately the answer is probably "it depends". We attempted to keep everything in a sane state but there were a lot of code changes and you could get unlucky about when you got your 2.x code. I'd recommend just following the update instructions including the all important make a backup step, and see if it breaks anything. It should manage to keep your slots and overlays working, but it's not 100% guaranteed.
     
  2. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    Yay. Congratulations on the release! I can't wait to dig in. Luckily my project is a brand spanking new one using Unity 5, so hopefully I can avoid some of the upgrade issues. Just have to deal with 3rd party integration, e.g. DK Editors, etc. :)

    I imagine a lot of people are going to be really happy to be able to start working with the new UMA 2 features.

    Thank you all for your hard work!
     
  3. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    So I installed UMA 2 with no un-clear-able errors. I am not able to get DK UMA working though.

    I am getting this as an error:
    Assets/DK Editors/DK_UMA_Editor/DKScripts/DKUMACustomization.cs(26,28): error CS0246: The type or namespace name `SliderControl' could not be found. Are you missing a using directive or an assembly reference?

    Using Unity 5.0.1f Personal, DK UMA 1650 and UMA 2.0.0

    Am I going to have to wait on a DK UMA update for a fix, or is this something I can fix myself?
     
  4. Dreamaster

    Dreamaster

    Joined:
    Aug 4, 2014
    Posts:
    148
    Fernando I'm really looking forward to getting the full release with all the new textures and goodies! (hint hint). :) And congrats on your imminent new family member!
     
    Last edited: Apr 28, 2015
  5. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    It was a utility file from the old UMA 1 examples: https://github.com/huika/UMA/blob/1...t/Assets/UMA/Example/Scripts/SliderControl.cs
     
    boysenberry likes this.
  6. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    It has the same example scenes UMA 1 had and a few new ones, search by type or look in: UMA/Example/Scenes
     
  7. Dreamaster

    Dreamaster

    Joined:
    Aug 4, 2014
    Posts:
    148
    OMG... somehow I totally missed that, so sorry!
     
    Last edited: Apr 28, 2015
  8. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    That fixed the first set of errors for me, now I am getting some related to UMA.OverlayData, with I imagine more being hidden behind it.

    Assets/DK Editors/DK_UMA_Editor/DKScripts/DKUMA_Variables.cs(184,85): error CS0039: Cannot convert type `UnityEngine.Object' to `UMA.OverlayData' via a built-in conversion

    Assets/DK Editors/DK_UMA_Editor/DKScripts/DKUMA_Variables.cs(184,73): error CS1502: The best overloaded method match for `System.Collections.Generic.List<UMA.OverlayData>.Add(UMA.OverlayData)' has some invalid arguments

    Assets/DK Editors/DK_UMA_Editor/DKScripts/DKUMA_Variables.cs(184,73): error CS1503: Argument `#1' cannot convert `object' expression to type `UMA.OverlayData'

    My guess is OverlayData changed. :)

    Should I wait until the authors of these 3rd party plugins update their assets, or can I continue to debug them in this thread? I don't want to pollute the thread, but many of them don't have their own threads and while I've emailed their respective support contacts, I can imagine other users of those plugins might benefit from answers allowing them to keep developing.
     
  9. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    OverlayData and SlotData have both been split in half so the static ScriptableObject bits are in "_DataAsset" classes.

    It's fine to discuss issues related to updating here, but you may have reached the point where only the author or other people who own the asset will be able to help.
     
  10. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    Well that's going to be good enough to start with. UMA 2 installed without any issue so far, including the human high poly slots and the Dionysus and Athena scans.
    I can not however use the following with UMA 2 (at least right now, which considering UMA 2 was officially release today doesn't necessarily mean anything):
    Dynamic Kit Editor Premium
    UMA Power Tools (known issue already a work in progress)
    UMAzing In-Game Character Creator
    UMA Helper Pack

    These were the only 3rd party assets I had to test with. I still have plenty to do so waiting a bit isn't a problem really.
     
  11. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    I can't start guessing on which version you have. Try it, try running the Find Missing References, or select the folders with your Slots/Overlays and run the "UMA | Update ...something..." if that doesn't work grab your uma 1 backup and import that or recreate based on what you think is easier.
     
  12. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Can't explain how happy I am with UMA 2. I'm getting a huge improvement in frame rates. However there is still one annoyance that has not been fixed:

    Eye rotation does nothing..!

    I do seem to remember finding a fix once (a simple mis-spelling somewhere IIRC). But I'll be damned if I can find it again.

    If anyone can point me in the right direction I'd be over the moon.

    Cheers ;)
     
  13. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Pushed a fix to git. You might wanna apply the change manually rather than wait for a new release.

    https://github.com/huika/UMA/commit/aa61a2a07530531765e68f0e94d4f659ad22b872

    Cheers
     
  14. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Thanks a million UnLogick, that works like a charm. :D
     
    boysenberry likes this.
  15. Plutoman

    Plutoman

    Joined:
    May 24, 2013
    Posts:
    257
    I've upgraded to the asset store version, but my character is slack-jawed.

    https://www.dropbox.com/s/cvgdwac1fzcuryx/Screenshot 2015-04-27 21.49.18.png?dl=0

    This did not happen before, and I am not sure where to look. When I installed, I did a 'Find missing references' and it 'optimized' bone hierarchy from 120 bones => some X number between 2 and 30, depending on object. Using the HD meshes, but the problem persists with both the normal and the HD mesh.
     
  16. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Same old Mecanim JawClosed vs JawOpen "Feature". If you aren't using animations with jaw data you can change the TPoses of the RaceData in UMA/Content/UMA/Humanoid/Races to the _NoJaw versions.
     
  17. Plutoman

    Plutoman

    Joined:
    May 24, 2013
    Posts:
    257
    Thanks. That is an easy fix. I see lots of data on expressions, how are those handled? I initially assumed it was a script placed (since it inherits monobehaviour) on the object, but then I see notes of saving to animation. Are those pose tools to create a facial animation, and then use mecanim additive layers to apply it? Or is it possible to do it via code?

    (hoping code.. the more I work with assets the more I want to run away. I'd rather have a script that applies bones to a variable.)
     
  18. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    It's set up to use animation clips in Mecanim, but it doesn't have to be. If you open the ExpressionClipEditor scene you can see that all it's doing is setting values on the Expression Player component. You can access those all from script or use the Values property to get or set the entire array at once.
     
  19. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    How to fix your UMA1 Slots and Overlays for UMA2

    I've been struggling to get my UMA 1 Will B assets working with UMA 2 but finally found out what the problem was. I thought I'd share the solution to save everyone else the headache. The first few steps are from the upgrade guide, but you need to follow steps 5-7 to finalise the conversion.

    1. Install UMA 2.0
    2. Set "Asset Serialization" to force text (Edit - Project Settings - Editor)
    3. Import your V1 Slots and Overlays (They will have broken refs)
    4. Run the "Find missing referances" script from the UMA menu.
    5. Correct each slot data file by ensuring its "Material" property is set to either "UMALegacy" or "UMALegacyTransparent". (Usually UMALegacy)
    6. Correct each overlay data file by setting its "Material" property is set to either "UMALegacy" or "UMALegacyTransparent". (Usually UMALegacy)
    Et Voila..! You can now use your slots and Overlays just like before.

    Hope that helps. :D
     
    Last edited: Apr 29, 2015
  20. Richardm1985

    Richardm1985

    Joined:
    Dec 22, 2014
    Posts:
    73
    Hi Guys,

    I'm just starting in making content for UMA 2.0. I've watched both the old and new videos for the slots/overlays but I can't seem to understand where I actually attach a slot...how do I tell UMA to place the new legs I've created on the UMA legs? Or how do I tell it to place the forearm armour on the forearm?

    Is this accomplished via script? Or via the "Random Sets" folder?
     
  21. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Hi Richardm1985,

    I started by having a good old study of UMACrowd.cs. Around line 83 is where the actual generation starts. Male and female versions show 2 different ways of generating a UMA with either a list or an array of slots. (I would start with the male version)

    If you make a copy of this script and start tearing the random range stuff out you end up with a script that produces a fixed UMA, you should then be able to work out how to change slot and overlay values with a lines like this:

    umaData.umaRecipe.slotDataList[1] = slotLibrary.InstantiateSlot("MyNewSlot");
    umaData.umaRecipe.slotDataList[1].AddOverlay(overlayLibrary.InstantiateOverlay("MyNewOverlay"));

    In terms of where placement is made, it's up to you: You can either replace an existing slot or add a new entry to the array to add your armor on top of the existing model.

    Reverse engineering is the way forward. Trust me, the tutorials, although good, don't show you enough of the nitty gritty.

    Hope that helps.
     
    Last edited: Apr 29, 2015
    hopeful, boysenberry and Richardm1985 like this.
  22. Richardm1985

    Richardm1985

    Joined:
    Dec 22, 2014
    Posts:
    73
    Thanks SecretAnorack,

    That's great advice...if you don't mind, can I please confirm some things with you regarding what each statement could mean and refer to?

    umaData.umaRecipe.slotDataList[11] = slotLibrary.InstantiateSlot("Wrist_Right_Armour");

    Here is an example of what I am trying to create....on the male list the "slotDataList[]" looks to go up to 10....can I add 11 here? or is it preset in a separate script somewhere? My UMA does not generate with them wearing the wrist armour.

    edit:

    I've created a copy of the UMA crowd and even worked with the original file...in both instances, I've deleted all the HumanMale stuff with umaData.umaRecipe.slotDataList and when I play the game, it still generates UMA males along with every body part even though I deleted it.

    I once went into the "RandomSets" HumanMale and added the wrist armour there, and the armour appeared but it was overriding the torso, so all the UMA's had hands...wrist armour and everything else but a torso.
     
    Last edited: Apr 29, 2015
  23. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Hi Richardm1985,

    It would appear that you can make the array as big as you like, and you don't have to use every slot in it. Personally I set mine to 20. that way I can have 1-10 for body parts 11-20 for corresponding accessories. But it is entirely up to you. Just remember, more slots = slower generation.

    The actual size of the array is defined on line 98: umaData.umaRecipe.slotDataList = new SlotData[15];

    Keep digging, it's not as complicated as it looks. ;)
     
  24. Richardm1985

    Richardm1985

    Joined:
    Dec 22, 2014
    Posts:
    73
    generated UMA.png crowd script.png generated UMA.png

    Haha, I know it must be simple, but I seriously can't figure out why it produces any male UMA after I delete everything in the "UmaCrowd.cs" file.

    Edit 1:

    added two photos, which shows there is nothing for a male UMA to generate with and the other photo to show that 20 male UMAs still generate. Are you certain UMA 2.0 requires me to add my wrists in the UmaCrowd.cs file?

    Edit 2:

    Here is an example of me making changes to the "Random Sets" HumanMale and adding a slot as a copy of the MaleTorso. As you can see in the photo, the wrist armour works....but the torso disappears lol.

    Do I need to do a combination? Like make changes to the crowd.cs file AND to the HumanMale random set? Still not sure how I can implement it so that the wrist armour is fused to the forearm though. What step is that done in?

    I appreciate your help,
     

    Attached Files:

    Last edited: Apr 29, 2015
    boysenberry likes this.
  25. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Because this is the legacy fallback code, if you specify a RandomSet this code is never executed. We left it in there mostly because it's a no-nonsense fully script based way to generate chars, so we didn't want to delete it.
     
    Richardm1985 likes this.
  26. Richardm1985

    Richardm1985

    Joined:
    Dec 22, 2014
    Posts:
    73
    Ahhh Joen, thanks bro.

    I downloaded UMA 2.0 yesterday from the asset store and using Lane Fox's 3ds Max tutorial I made a copy of the model, changed the copy to an editable poly, deleted everything from the torso except the forearm (6 x 8 quads), attached them to the rig and exported.

    Can you please tell me (I seriously must have overlooked this whenever it was explained), how UMA knows that my wrist armour belongs onto the "Right Hand" (its currently set that way)? How do I change it to the "Right Wrist" bone? Is this done in 3ds Max when I first created it?

    Also as the torso's on all the males disappear if they generate with the armour, is this because I deleted the torso geometry in 3ds Max? Should I have done what I did, but when exporting, select the wrist armour, the copied torso, the full rig and export them all together?

    Thanks again,

    Edit:

    Okay I've got it working, by updating the random set, creating a requirement a new slot as "Wrist_Armour_Right". Currently EVERY UMA is being generated with wrist armour.

    Joen, is this where I would create a slot known as "Wrist", using the previous steps with 3ds Max and then create wrist armour to attach to this slot as "possible overlays"?
     
    Last edited: Apr 29, 2015
    boysenberry likes this.
  27. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    UMA doesn't know where your slots belong!

    And it doesn't need to know either. The skinned meshes carries that information!

    All uma does is look at the slots on the uma data and merge those meshes while respecting their particular skinning. There is no occlusion culling or other magic built in.

    If you want such magic all you need to do is build the occluded slots and use those instead.
     
  28. Richardm1985

    Richardm1985

    Joined:
    Dec 22, 2014
    Posts:
    73
    I see, thanks but I wasn't asking for anything magical lol just didn't understand how UMA worked out where what item goes where as I never took any part in creating UMA. Judging by your response it seems you probably have answered this a hundred times.

    Joen, try to understand that the biggest obstacle in UMA is this forum. Its boring and so disorganised that everyone overlooks the simple answers. Why not have an external forum like most of the top/serious assets where everything is organised in its own separate thread and easily searchable?? You're only making it harder on yourselves as everyone is forced to repeatedly ask/answer the same questions.
     
    Last edited: Apr 29, 2015
    Teila and Dreamaster like this.
  29. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I have to agree. And the lack of a search function within a thread really hurts. It is almost impossible to look for information. A nicely organized separate forum would be nice.
     
    Richardm1985 and boysenberry like this.
  30. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    I think Joen was trying to emphasize the fact not scold you. There is no extra information in UMA about "where" your slot goes, it's just like any other skinned mesh, it goes on the bones that the vertices are skinned to. There aren't even hard coded indices where certain slots are supposed to go. It will work if you have a fixed length array and always put the left leg armor into index 32, but that's only if you want that for convenience, UMA doesn't care.

    As for why there's no external forum - just as with the poor documentation, the people who have volunteered up to this point either don't have the time or it hasn't been a priority for them. It might be a good start if people would add to a FAQ area on the wiki when they had issues they were able to solve.
     
    Richardm1985 likes this.
  31. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Eli is right, I only wanted to emphasise it because it's one of the most common misconceptions, it was in no way targeting you. I made it big hoping someone would read it while scrolling down to the bottom.

    I know the forum is terrible... but when we set up our own forums where we could pin stuff nobody used it except the spammer bots. No matter how many times I link to the wiki only the most dedicated 5% ever takes a look. And less than 10 people set up their own account so they can edit it. So we're stuck with the forum for better or worse. I'd rather be repeating myself in here than by writing stuff on the wiki nobody reads. (I mean outside the five pages we've deep linked)
     
  32. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    I think you're a little confused by the terminology here. Although it's a bit more complex in reality, basically slots are meshes and overlays are textures. So if you're creating a piece of wrist armor that has any geometry of its own you'll be making a slot for that. You'll need an overlay to texture that slot, or if it was purely a texture with no geometry at all you could use an overlay to add that texture to the existing arm (the bare arms are part of the MaleTorso/FemaleTorso slots, so that overlay would be designed to go with those.)

    When the character is built UMA just takes all of those slots and puts them into the final mesh. UMA doesn't care if you have 8 sets of boots on your character in different "boot slots", it just sees the array. It's up to the user to decide how to handle exclusive slots. The crowd demo (and several of the third party tools) do that by putting them in a certain index so they'll be overwritten if something else uses the same index, but that's not required.

    You can also define an entire character, or just part of a character, using a recipe. Example scene 6 is an alternate crowd scene that does this. It isn't as fancy but the logic is much simpler. Rather than adding every slot to the array by hand it has predefined recipes for each of the naked base characters, a set of possible recipes for outfits, and a set of possible recipes for hair. Then it simply chooses one recipe from each set and combines them into a character.
     
    Last edited: Apr 29, 2015
  33. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Great guide, thanks!

    Just wanted to add that it shouldn't be necessary to change the Rect values if they are {0, 0, 0, 0} as this is a special case which means the entire texture is used.
     
  34. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Thanks for the feedback ecurtz. I'll edit that out.
     
  35. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    I've come across a little problem with a helmet slot if someone could help.

    I'm trying to swap out the head slot for a full face helmet. If I simply add it as another slot the ears stick out so I thought I could just replace the "MaleFace" Slot with the Helmet.

    However with the head slot, if I try to remove it (by setting to null) or try replacing it I get:
    Removing or replacing works with every other body part.

    I'm guessing this has something to do with redundant bones being baked out of the helmet. If I could just make the head slot invisible I'd be laughing. Any help would be appreciated.
     
  36. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    It's assuming that all of the adjustment bones used by the DNA are part of the final rig, and some of them are apparently only defined in the face slot. The easiest fix is probably to change UMASkeleton.SetRotation() (and SetPosition(), SetScale() and Set() as well) to just ignore it if you try to set a missing bone rather than throwing an exception.

    Alternately you could try duplicating the head slot and editing the copy to not have any actual vertices in the Mesh Data. I think that would work, but I'm not 100% certain. That slot could be used add all the bones into the rig without adding the actual face mesh.
     
    Last edited: Apr 29, 2015
  37. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Nah, Eli I'm afraid our mesh optimizations wont be fooled. If his helmet isn't skinned to the ear bone, eye bone and other facial adjusts it doesn't matter what he does, our optimization will notice and discard the bones anyway. Only correct fix is to have the Skeleton Get/Set methods fail silently, this will be especially useful in LOD scenarios. And probably wreak havoc if anyone attempts to do facial expression on lod slots.
     
  38. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Hmm, thanks Guys. I think I'll screw the cap nice and tight back onto this particular can of worms

    It's probably easier if I move a few verts in max to make the helmet fit correctly then reprocess the slot. Luckily the asset creator provided the original FBX files.

    Cheers
     
  39. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Nah, we'll fix this one, it's a quite trivial fix tbh. As I mentioned it's related to a particular performance optimization we added in UMA 2. This bug will affect both occlusions like you noticed as well as LOD, so there really is no way around the need for a fix.
     
    hopeful likes this.
  40. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Occlusion between slots is one of the things on the "Big List of Features I'd Like to Add" but that doesn't help you right now. It would be mainly an educational exercise rather than the recommended way to do this, but instead of adjusting the helmet mesh you could also try giving the helmet a special DNAConverter that would push the ears against the head more when the helmet slot was used. Or you could use the multipart head and just leave off the ears, there are a lot of ways you could approach this (including just waiting for the exceptions to get removed - I'm honestly surprised they are still there, I thought they had gone away previously.)
     
  41. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Hi again guys, last one for today I promise.

    I've had tons of fun today trying to break UMA2 and I think I've found another issue.

    It would appear that the upper muscle adjustment no longer works the way it used to. Although it adds mass to the torso, it no longer increases or decreases shoulder width.

    Thanks
     
  42. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    We just checked the code and this one might be worse... We suspect we're looking at a bug in the Avatar generation. Could you please file both in the git bug tracker so we don't forget?
     
  43. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Found the Upper Muscle Adjustment (And Leg Spacing, maybe other stuff) bug, but I want to sanity check with Joen before I push a fix to github. I guess we're starting to collect stuff for 2.0.1...
     
    hopeful and boysenberry like this.
  44. mar0x

    mar0x

    Joined:
    Sep 22, 2012
    Posts:
    8
    Performance is fantastic. Here are two bugs I've found and workarounds:

    If you combine atlassed and non-atlassed slots in the same UMA character, the atlassed slots must be specified first in the slot data list, after which the non-atlassed slots can be specified (I could only fix this partially, there's a strange return statement in UMAGeneratorCoroutine.cs OptimizeAtlas() which I think should be a continue, but the code breaks in other places too).

    UMA.FileUtils.WriteAllBytes in UMATextureImporterUtil fails for me with a "file could not be read", but reverting to System.IO.File.WriteAllBytes works fine.

    Not a bug, but no support for atlassing (well technically combining) slots that use a non-atlassed texture (body comes to mind) :(
     
  45. Sphelps

    Sphelps

    Joined:
    Jun 9, 2013
    Posts:
    243
    Hey just thought I would ask if you uploaded them yet?
     
  46. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    We'll probably publish a pbr pack during the weekend, then it will make sense for Fernando to update.
     
    Dreamaster and hopeful like this.
  47. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    I'll try to take a look on that loop, I remember the code as a bit odd and hackish to begin with.

    WriteAllBytes is not available on some target platforms, which is why we implemented the new one. If it's not working for you, please experiament with how the file is opened to create and overwrite, that is a much better solution for all of us.
     
  48. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    I'm not quite sure what you're saying here. You can't share overlays between slots if the material is set to No Atlas?
     
  49. mar0x

    mar0x

    Joined:
    Sep 22, 2012
    Posts:
    8
    Say I were to instantiate a bunch of body slots (hands, torso, etc), all using the same UMAMaterial, and sharing the same overlay (like the UMA bodies already do). Now if I don't want this atlassed, I end up with X drawcalls rather than just 1. If I want this atlassed, I get 1 drawcall, but now have to use an atlassed run-time generated texture.
     
  50. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    They should be 1 drawcall if you just used a shared overlay list for all your slots. Even if the UMAMaterial says no atlas.