Search Unity

UMA Power Tools Support (v. 2.9)

Discussion in 'Assets and Asset Store' started by UnLogick, Jan 7, 2014.

  1. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Asset store: https://assetstore.unity.com/packages/tools/modeling/uma-power-tools-2-14249

    • Skeleton Reduction
      Bakes all the extra UMA bones away leaving you with a tight skeleton for that little extra bit of performance. The new UMABoneBakingMeshCombiner is so fast that it completely removes the need for a threaded generator. (Around half the time is spent on Unity API calls that needs to be main thread anyways.)
    • Save to prefabs
      You heard me, save your UMA generated characters directly to prefabs. Both in and out of play mode!
    • Show UMA characters in the editor has been temporarily removed
      The UMA 2 release was long overdue and That's right, see your characters directly in the editor while you edit your scenes! I even made them animate for you!
    • LOD !
      The old auto loader system have been completely overhauled into a full fledged LOD system!

    The five characters in the back are prefabs, the five in the front are UMA Characters inside the editor!

    Old Videos - highly inaccurate
    1 - Create Prefabs of UMA
    2 - Using Power Tools in 3rd party scenes


    Thanks
    Joen - UnLogick

     
    Last edited: Oct 8, 2020
  2. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,521
    Woohoo!
     
  3. Kirbyrawr

    Kirbyrawr

    Joined:
    Jul 23, 2012
    Posts:
    945
    Good news for the UMA developers and artists.
     
  4. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there! This is great!
    I highly recommend this package. I´ve managed to test it´s features, and this is something all developers using UMA might want.
    Cheers!
     
  5. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    Hi, really looking forward to the UMA tools. I assume it will make creating UMA avatars easy. Also creating controllers(different functions) and attaching them to various avatars will be very easy to do.
     
  6. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Added a video that show you how to create prefabs from UMA characters using the UMA Power Tools.


    Also added a video that show how easily the Reduce Bone Feature works. It also shows how to benefit from UMA Indie threaded atlas texturing!


    As the video shows the threaded generator can generate UMA crowd characters without Unity Pro license in less than a second on a normal pc without lag!
     
  7. dreamlarp

    dreamlarp

    Joined:
    Apr 22, 2011
    Posts:
    854
    Hurry up asset store!!
    A must get.
     
  8. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,521
    Looks really great, Joen!

    Are prefabs still usable for dynamic, editable avatars at runtime? For instance storing a prefab and editing it at runtime later would require storing the recipe, then rebaking down to the prefab when done or or the prefab not intended for use that way?

    Does removing the head bones remove the inherit ability to do facial animation out of the box? Could we even use the UMA rig for facial animation? If so, is there a way to preserve the head bones for this?

    Thanks
     
  9. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    I think storing the recipe next to the prefab is a really good idea. After all you may decide you want him to wear a new hat later on and then it's no good if you've lost the recipe!

    But actually editing him at run-time was never the intention of the prefab system, I'm aiming at light clean prefabs with no strings back to UMA. But it's not much work to delete the prefab and spawn a UMA character with the recipe first time you want to edit it at run-time.

    Good question! I only realized I didn't cover that after I was done recording the videos.

    The UMA prefabs contains a list of Animated Bones, add any facial bones to this list and they will not be baked away! On the same note you could remove bones from the list to bake away fingers and other optional bones if you're doing a rts game or similar where the smallest details doesn't matter.
     
    Deleted User likes this.
  10. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    Hi Joen,

    The 3 movies are great. Could you create a movie that allows UMA tools to have different controllers for different avatars. Does tools do this?
     
  11. gurayg

    gurayg

    Joined:
    Nov 28, 2013
    Posts:
    269
    Hello Joen,

    Just watched the videos, very informative. I'm sure Power tools will be popular at the Assets Store.

    I wanted to ask, If you have any plans to add LOD creation feature?
    User inputs multiple detail levels for its geometries for UMA and adjusts the bones list for any LOD levels as he/she wants and UMA Power Tools does the rest.
    Since you are already baking bones and UMA is capable of generating high/low rez texture atlasing on demand. I thought this might be a good addition.

    What do you think?
     
  12. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    As I mentioned in the main UMA thread this was broken. I just committed the fix to github, it's one line of code.

    As soon as you get the updated version you should be able to set the AnimationController field on the UMAData and trust it to work. I successfully tested it in scene 02 by setting the AnimationController on the UMADynamicAvatar.

    I also fixed the bug in my UMAGeneratorThreaded so you'll have no problem getting it to work with the Power Tools.
     
  13. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Interesting suggestion, I hadn't even considered it. We talked about doing LOD base meshes a while back and until now that had been the answer in my mind. But you're right we need a solution now and preferably not one that we have to wait on.

    Unfortunately simply cutting down on the number of bones will only help so much. Fernando did a fantastic job on the skinning, so I need to rig my tests with 20+ characters before my bone baking really matters. Once we see more content using more bone weights I'm sure it will pay off but right now the numbers I'm seeing is less than I hoped for. So for this LOD to be effective we also need to reduce the actual vertex count. I could attempt to reduce the vertex count but the problem would be the normal maps.
     
    twobob likes this.
  14. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    Hi Joen,

    I went to github to get the bug fix. It works even for a dummy like me. Have you submitted Tools to the asset store? I think I can afford the $10. lol.
    Great work.
     
  15. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Ahh Mikie you ruined the surprise!

    First week will be an early bird discount so it will only cost $10, after that week the price goes up to it's planned $15.

    Package is submitted to the Asset Store just waiting to be approved.
     
  16. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
  17. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I got it! Thank you. I love the surprise!
     
  18. CanthanSnow

    CanthanSnow

    Joined:
    Jan 6, 2014
    Posts:
    7
    I have been following this up to release and just got it from the store. The link on the YouTube videos bring me to here for support questions so if this is the wrong thread feel free to move it.

    I have been playing around with the prefab export but no matter how I try I keep getting this error:
    I made a new project with just UMA and Power Tools so there shouldn't be any conflicts with other addons, I am using the Indie version by the way. Hope somebody else ran into this issue and found a way to solve it or if you have any suggestions. Thanks for your great work with this, it looks like it will be a big time saver.
     
  19. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    I just tested with the free Unity License and I get exactly the same error message.
    I've sorted out the problem I was incorrectly assuming that if I had a Texture2D this character was already saved to disk and you were saving him again. I'll just go through the rest of the features without the pro license and verify there will be no more surprises.
     
  20. CanthanSnow

    CanthanSnow

    Joined:
    Jan 6, 2014
    Posts:
    7
    Thanks for the quick response Joen. Good to know that the issue was able to be repeated and solved, I'll look forward to the update on the Asset Store.
     
  21. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Uploading new version!

    Changes:
    Fixed a bug in Indie Save Prefab.
    Added the recipe next to saved prefabs.
     
  22. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Version 1.0.1 is in the Asset Store now.

    Changes:
    Fixed a bug in Indie Save Prefab.
    Added the recipe next to saved prefabs.
     
  23. CanthanSnow

    CanthanSnow

    Joined:
    Jan 6, 2014
    Posts:
    7
    I just got the newest version, its working fine. The recipe being saved with the prefab saves a step. Thanks again.
     
  24. Kirbyrawr

    Kirbyrawr

    Joined:
    Jul 23, 2012
    Posts:
    945
    You was more fast than me haha :)
    I'm sure i will enjoy that fixes and changes
     
  25. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Saving the recipe next to the prefab is the only way to go. As soon as LaneFox mentioned it I was like: of course!

    Thanks for reporting the bug, it's the fastest way to get them fixed. :)

    Enjoy!
     
  26. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    774
    Thanks Joen. I was talking to Kirby about this on his forum, thinking it was related to his Helper Pack, since that was the only place I was having problems saving prefabs. (I was using Unity Pro at the time BTW, with "Use Pro" checked in UMAGenerator.) I'm glad the two of you were able to sort it out so quickly, and can confirm your fix solved my problem as well. Now I can save prefabs of avatars generated by Kirby's Helper Pack, even with "Use Pro" turned off. Bravo.
     
  27. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    If I update an existing project with UMA and UMA tools will it cause me a problem?
     
  28. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Not sure if you mean it's already using UMA and you want to update the version, or if you're talking about adding both to an existing project.

    But regardless there shouldn't be any problems, but as usual always remember to backup, just in case.
     
  29. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    Adding both to an existing project that had older versions. Joeh, Power tools is great. Did about an hour with it yesterday.
     
  30. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Oh, I have no plans of making breaking changes. And if the future of UMA development forces me to do it, I'll make sure to add big blinking warning lights. :)

    Glad to hear you like it.

    Please stop by the asset store and give it a rating or even a review.

    Thanks
     
  31. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    Is there a way to use light probes for the prefab? And I don't see a shadow.
     
  32. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    Shadows are good. I have the light probes on but don't see any effect.
     
  33. JMab

    JMab

    Joined:
    Nov 29, 2013
    Posts:
    24
    Hi Joen,

    Would it be possible for you to include a Flush method on UMAGeneratorThreaded?

    Just:

    public void Flush()
    {
    dirtyUMAs.Clear();
    }

    In my character creation screen, I sometimes want to destroy a created character GO, without immediately supplying a new one. In that case, I just need to flush the dirty list...

    Thanks!
     
  34. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Well it's not entirely safe to do that. You'll be leaking a lot of textures and what not. You probably got your inspiration from the FlushAndSetQueue. Which is meant to be called out of play mode when the queue is assumed to be empty anyways. *Sigh* No hack goes unpunished :)

    I'll add a proper Flush() but flushing the active processing first element of the list needs to be handled delicately. Beyond leaking assets there is no danger associated with your Flush, so keep using that one and I'll replace it by a proper one soon(tm).
     
  35. JMab

    JMab

    Joined:
    Nov 29, 2013
    Posts:
    24
    OK, no problem. I'm using NGUITools.Destroy on the root game object of my UMA, but was finding that references were often remaining on the dirty list of the generator, so have been clearing that along with the destroy. If there's a recommended way of safely destroying UMAs, it would be good to know! :)
     
  36. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    I'm afraid the majority of the focus has been on making UMA fast and robust. We currently don't keep track of which resources we allocated ourselves and which are assets. As a result if in doubt we leak resources rather than destroying assets. Because Unity really doesn't like you destroying assets in the editor without giving proper notification to the AssetDatabase and if you have the audacity to access them afterwards then everything tends to blows up.
     
  37. JMab

    JMab

    Joined:
    Nov 29, 2013
    Posts:
    24
    OK. This is in-game (play mode) by the way, where I'm destroying characters. It's just in my character creation screen, where the user selects something that requires a re-generation of the character, like changing gender. My game is a long way from release, so I'll put my hope in a safe UMA cleanup method appearing before I need to release to the public!
     
  38. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    774
    Hi Joen.

    I've been playing around with Power Tools a bit, and really like the threaded skeleton reduction feature. I'd like to apply it to all of the avatars I create, but it only seems to work on those made with your modified UMACrowd script. This means I need to choose between skeleton reduction, and using Kirby's helper pack for instance. But without creating a Frankenstein script out of yours and Kirby's, I can't do both. I'd like to select "remove unused bones" as an option when saving a prefab, even if the avatar was generated by a different means. If there's a relatively straightforward way to do this, please let me know. If not, would you consider adding this feature to Power Tools in the future?
     
  39. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    The entire point of the UMA Power Tools is that you should be able to replace the UMAGenerator in the scene where you use Kirby's features with the UMAGeneratorThreaded from the PowerTools and then everything should work.

    I created a short video on the subject.
    [video=youtube_share;DOuEBeoqiXs]http://youtu.be/DOuEBeoqiXs
     
  40. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    774
    Doh! I was thinking it was done in UMACrowd, which doesn't get used with Kirby's tools. UMAGenerator makes more sense, and is a simple substitution. Don't know why I didn't look there before. I'll give it a try. Thanks for indulging me and my dumb questions again. :rolleyes:
     
  41. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    It's not a dumb question, it's a matter of understanding the mind-set of how we build UMA. It's actually one of the main reasons we have this many components in the scene. All of the scene components are meant to be exchangeable and extendable. Similarly the approach to make UMA use AssetBundles or some other storage scheme should simply be replacing the OverlayLibrary with an updated OverlayLibrary that handles this extra functionality. So that it works without changing anything else in your scene/projects.
     
  42. Hedonsoft

    Hedonsoft

    Joined:
    Jul 11, 2012
    Posts:
    168
    I've got the generating of characters down, customizing them qith sliders, and saving them as prefabs within the editor. Now how can I generate a prefab from within game mode?
     
    Last edited: Jan 14, 2014
  43. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    Tried a web player build. This error
    Assets/UMA/Example/Scripts/UMACrowdRandomSet.cs(3,7): error CS0246: The type or namespace name `UnityEditor' could not be found. Are you missing a using directive or an assembly reference?
    using Power tools.

    4.3.3
     
  44. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    UMACrowdRandomSet are part of the main UMA package.
    But you're right, I wrote it and apparently I missed an #if UNITY_EDITOR somewhere. I'll look into it.
     
  45. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    I assume you mean play mode inside the editor. Unity does not support creating prefabs outside of the editor.

    You use a code snippet like this:
    Code (csharp):
    1.  
    2. #if UNITY_EDITOR
    3. UMA.PowerTools.UMASaveCharacters.SaveCharacterPrefab("Assets/myprefabs", "myprefab", myUMAData);
    4. #endif
    5.  
    Outside the editor all you can do is save the recipe as txt and then take the txt into unity to create an recipe asset. Assign it to a UMADynamicAvatar and then use the create prefab functionality on that.
     
  46. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Power Tools Update 1.0.2 - I recommend everyone to update!

    There was a serious bug in the Bone Baking Skinning process that really wreaked havoc as soon as you used 3rd party meshes with different bone structures.

    You'll need latest UMA Package so go get that one first.
     
  47. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Last chance to get the early bird discount, the offer ends tonight at 10pm (CET)

    After which the price goes up to the regular price of $30 per seat.
     
  48. kmvassey

    kmvassey

    Joined:
    Dec 31, 2013
    Posts:
    15
    I'm getting a strange error using the latest Power Tools from the Asset Store.

    Internal compiler error. See the console log for more information. output was:
    Unhandled Exception: Mono.CSharp.InternalErrorException: Assets/UMA/Extensions/UMAPowerTools/Scripts/UMAGeneratorThreaded.cs(179,33): UMA.PowerTools.UMAGeneratorThreaded.UMAThreadedWorkJob ---> Mono.CSharp.InternalErrorException: Assets/UMA/Extensions/UMAPowerTools/Scripts/UMAGeneratorThreaded.cs(185,56): UMA.PowerTools.UMAGeneratorThreaded.UMAThreadedWorkJob.meshProcess ---> System.IO.FileNotFoundException: Could not load file or assembly 'UMA, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.

    File name: 'UMA, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'

    at (wrapper managed-to-native) System.Reflection.Assembly:InternalGetType (System.Reflection.Module,string,bool,bool)...

    The output goes on for a while. Any ideas?

    Thanks!
     
  49. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    Right after importing:

    Code (csharp):
    1. Assets/UMA/Extensions/UMAPowerTools/Scripts/UMAGeneratorThreaded.cs(220,38): error CS0115: `UMA.PowerTools.UMAGeneratorThreaded.IsIdle()' is marked as an override but no suitable method found to override
    UMAGeneratorBase does not appear to contain a method IsIdle().

    --Edit: Curiously there are 2 packages called "UMA - Unity Multipurpose Avatar.unitypackage" in my UMA Steering Group folder (in AppData/Roaming). One in a subfolder Complete Projects and the one I downloaded a few minutes ago in a subfolder "ScriptingAvatar SystemsUMA". Maybe Unity is confused. Upon importing both _releasenotes.txts have 1.0.1.0 R as latest version. After manually removing the oldest unitypackage and reimporting UMA, IsIdle() appears in UMAGeneratorBase. It seems updating assets from the asset store is not a foolproof process.
     
    Last edited: Jan 16, 2014
  50. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    front page of this forum still has old price by the way...