Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    It will be really hard we have the time to focus on some specific solution like this one. There are some interesting results on Unity + Nvidia hairworks going on that´s actually way better than this approach, but is also very restrictive on hardware. Following an approach of having our shader based on what Unity is providing has more flexibility and leave other more advanced integrations open for each project unique requirements and visual style (you can aways buy a hair solution and work on integrating it with UMA).
     
  2. davidosullivan

    davidosullivan

    Joined:
    Jun 9, 2015
    Posts:
    387
    Hey @FernandoRibeiro, really glad you have found my investigations useful...

    I'll be really interested to hear how you get on with this. I'm sure there are already UMA methods that could be used in place of
    Code (CSharp):
    1. umaData.myRenderer.BakeMesh(baked);
    in the code I posted, that would deal with the baking of the deformed mesh that is used to recalculate the normals in a way that would get the orientation the same as the mesh its deforming from. I think would basically make what I'm proposing work. Then its just a question of making it an optional feature...

    Reason being that it will add processor overhead, particularly if it uses the alternative 'NormalSolver' version of RecalculateNormals that I used from here . Its very worth using that though since the results from that method are *significantly* better than Unity's native method, which, at best, is only usable in a pinch. The NormalSolver method is more expensive processor wise, but would be fine to use any time its only going to happen once(ish) like when on a character customization screen, or when a deformed character is first added to the scene.

    As a side note, I think its worth mentioning somewhere in the documentation, that when weight painting your deform bones for your UMA armour (or whatever), its vital that no vertices are influenced by more than 4 bones, since Unity will only use a maximum of 4 bones per vertex, others are ignored and this can lead to things looking odd if your deformation relies on more than 4- I appreciate that this is a Unity general thing, not just UMA, but its always helpful to have these things flagged up.
     
  3. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Version 2.0.5 live on the asset store.

    Changelog
    • Fixed Scene 6
    • Fixed Unity 5.2 compatibility.
    • A few small improvements for 3rd party plugins
     
    hopeful likes this.
  4. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    About the normals, have anyone tried normalizing normals and tangents in the shader? Both normals and tangents are being affected by the bone matrix so this really should work... however the scaling of the belly bone might be causing this by changing both the normal and the tangent length.
    Seems not, I did a test of that. And the used normals are clearly just the old normals. Come to think of it that does make sense. What gives the curve is not the bone rotation but the blend between multiple bone weights.
     
    Last edited: Oct 6, 2015
  5. IFL

    IFL

    Joined:
    Apr 13, 2013
    Posts:
    408
    I was under the impression that having a ton of transforms (bones) is actually far worse than having an equal number of blendshapes when it comes to performance. That said, I'm not an animation-programming guru so I could be very wrong. If it would help, I'd be more than happy to stress-test each method against each other (since Unity 5.3.0b1 has the blendshape API included).
     
  6. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Feel free to test performance I'd love to hear some actual numbers.

    My experience is that the cost of bones is greatly exaggerated, I wrote the bone baking tools to eliminate the cost but I need 30+ characters before it starts to make a difference. Unless the blend shapes are 100% same performance as regular mesh (highly unlikely) my power tool's bone baking will beat them.

    What I would love to hear is the blend shape cost compared to regular mesh. If they cache the blended meshes they should be able to make second frame effectively free... but I'm guessing they actually perform the blend on the gpu. It's quite easy to test just test performance when you change the blend every frame compared to when you don't change it at all? Obviously UMA wouldn't need to change the blend every frame but facial animation would.
     
    hopeful likes this.
  7. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745

    Welcome to the twilight zone.
     
    FernandoRibeiro likes this.
  8. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    He's still right... those little things capture every motion both good and bad....
     
    FernandoRibeiro likes this.
  9. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Blend shapes introduce additional per vertex calculations, so even though the cost of an extra bone is higher than an extra vertex I really doubt blend shapes are more efficient except maybe in a few extreme boundary cases.
     
  10. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    I'd be very surprised if blend shapes beat bones performance wise... I can only see it happen if they cache the blend. But less talk more numbers... :)
     
  11. yongyong79

    yongyong79

    Joined:
    Dec 25, 2013
    Posts:
    5
    @ecurtz hi, I am studying the uma's expression.

    I want to adjust some facial expression, is there some tutorials about the Bone Pose Builder and Bone Pose Mixer?

    I have saw the UMABonePoseMixerWindow.cs and UMABonePoseBuildWindow.cs but I don't understand clearly .

    I appreciate for anyone's help. Thanks a lot!
     
  12. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    I'm afraid there aren't any tutorials, as they were just tools I wrote for myself and included when I donated the expression stuff, but I can try and help. They aren't very complicated.

    The "Rig Prefab" field needs a reference to the bones of the character you're working with, for example
    Assets/UMA/Content/UMA/Humanoid/FBX/Female/Female_Unified/UMA_Female_Rig

    You can either provide another similar bone reference and build a pose from the differences or provide an animation and build a set of poses from the animation frames you specify.

    The mixer works similarly but you provide a rig and a collection of poses and it will let you recombine parts of those poses into new poses. I mostly used it to separate the expression stuff into two parts for left and right halves of the face.
     
  13. yongyong79

    yongyong79

    Joined:
    Dec 25, 2013
    Posts:
    5
    Thank you! I will try it.
     
  14. yongyong79

    yongyong79

    Joined:
    Dec 25, 2013
    Posts:
    5
    I heard you studied realtime expression control in UMA system, something like faceshift or faceplus. We are using Intel's RealSense camera for similar purpose. Would you please give us some advise if any? This Intel's depth camera is pretty good, capable of realtime expression detection, shown as follows.
     

    Attached Files:

  15. sowatnow

    sowatnow

    Joined:
    Jun 12, 2014
    Posts:
    309
    Nice one, looking forward to it.
    Also regarding the text-to-speech, would you guys be implemeting your own voice system instead of using windows/mac based system. I believe RT-voice only works in windows and mac, but not in other mobile platforms.
     
  16. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Part 17 of the Practical Guide covers adjusting expressions:



    You may need to watch part 15 to fully understand how it was set up.

    Hope that helps.
     
  17. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,399
    Thanks! We have no plans to implement a text-to-speech system. We like RT-Voice because it can process text and output audio at runtime, but Easy Voice is another nice text-to-speech solution that let's you pre-generate your audio files from text at design time within the Unity editor. SALSA supports Unity & Unity Pro, and is tested on Windows, Mac, Linux, legacy Web-Player, Android, IOS, Windows Store, and WP8, so as long as you have an AudioClip compatible source, SALSA can process it.
     
  18. sowatnow

    sowatnow

    Joined:
    Jun 12, 2014
    Posts:
    309
    Sounds good, will try Easy Voice for now and see how it goes with Salsa. Hmm salsas reminds of tacos, which I have once a week..
     
  19. markashburner

    markashburner

    Joined:
    Aug 14, 2015
    Posts:
    212
    Can someone please tell me if it's possible to rig up quadrupeds like horse or other four legged creatures in UMA?
     
  20. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    You mean like this?
    http://glscene.com/unity/PowerRigger/AnimalsWebPlayer/AnimalsWebPlayer.html

    It is possible, but I'd recommend getting comfortable with uma before you try that. Most people find making dna converters scary. Don't know why really, it's just a class with a method override that sets the scale of some transforms.
     
  21. Firlefanz73

    Firlefanz73

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

    Damn, this is cool! Must everybody re-invent those animal stuff for himself, or can I get or buy it somewhere from?

    Thanks a lot for the info and have a nice Weekend!
     
    hopeful likes this.
  22. yongyong79

    yongyong79

    Joined:
    Dec 25, 2013
    Posts:
    5
    hi , thank you ,your tutorial of uma is the best!
     
  23. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Problem is that I'm not an artist so all I can do is to convert existing assets. Obviously I can't resell without a deal with the artist. So if you know any artists who would be interested in making a deal just send them my way. I made a tool for it, so I can process any well rigged skinned mesh in only a couple hours. However it's a programmers tool and not artist friendly, I would go to the extent of claiming that I would get 1 star ratings due to the horrible ui if I put the tool on the asset store.
     
  24. Firlefanz73

    Firlefanz73

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

    so if I ask my GFX Artist to create let's say a Basic mesh like a sheep for you, then you could & would give us or everyone your UMA Variation in form of an asset? Does it work like UMA, so you could transform it to be some other animal with 4 feet too? So you could make a pig and a cow of it etc?
     
  25. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Sure we could do that.

    The reason uma can combine so well because all agree on the base mesh. With separate animals you will not have a shared base mesh and so slots will work only for this particular animal. Similar to how males and females do not share slots.

    But you could make customizable horns, saddles, for each type of animal and use uma to combine it all.
    In the example I showed each animal have a unique dna. However if you want and design it right, you can use the same dna for all four legged animals. So there could be a front leg length, front leg width, that all animals shared. Btw, it's easier for me not to create identical dna however it's cooler to have the dna shared.
     
  26. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    I recently bought the Arctic Castle pack, it has some nice stuff in it... including a pbr topblend shader for adding snow on top of models... I know a shader snow effect isn't that suited for an animated character but I couldn't help myself. It's certainly perfect if using uma for a statue.

    The terrain was a quick and dirty thing created using Gaia with Arctic Castle assets.
     
    FernandoRibeiro, IFL and Teila like this.
  27. kaarme

    kaarme

    Joined:
    May 1, 2014
    Posts:
    177
    Hi! Seems like there are missing files in the asset. Missing scripts prefabs and materials.
     
  28. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    What version of Unity, what is the error message, which prefabs are missing?
     
  29. evil_genie

    evil_genie

    Joined:
    Sep 10, 2015
    Posts:
    8
    Just wondering if there's any plans (or has it been done already) to make a version of UMA that utilizes the modern character creation technique of manipulating features on the characters body by clicking and dragging, as opposed to using sliders. Like in the Sims 4 or Fallout 4:




    Thanks!
     
  30. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    I did a VERY rough proof of concept of something similar early on, and it's definitely possible, but I don't know of anyone who's actively working on something like that at this time.
     
    evil_genie likes this.
  31. evil_genie

    evil_genie

    Joined:
    Sep 10, 2015
    Posts:
    8
    Cool! I want to do this, but I don't even know where to start. Do you have any sources or anything that can help steer me in the right direction so I can do this myself?
     
  32. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Make a map where you keep track of which dna values affects what bones in which directions.
    Find the triangle that you clicked on and look at the bone weights.
    Determine what direction the mouse interaction corresponds to and change dna acccordingly.
    Call Dirty with shape change = true.

    Looks so simple right? Just dive in there and call for help when you get stuck.

    Good luck. :)
     
    evil_genie likes this.
  33. evil_genie

    evil_genie

    Joined:
    Sep 10, 2015
    Posts:
    8
    Hmm interesting. Thank you! I'll let you know how it goes!
     
  34. IFL

    IFL

    Joined:
    Apr 13, 2013
    Posts:
    408
    Did a [very] simple test. Will do a more thorough one in a couple days. This one is 5 bones/blends on 2925 meshes. The next will be 200 bones/blends on 50 meshes.

    No Bones or blends (no clue why the color is different for un-skinned version, I didn't change it)
    NothingTest.jpg

    Blends
    BlendshapeTest.jpg

    Bones
    BonesTest.jpg

    This is absolutely not conclusive, but it kind of makes sense if you think about what a blendshape is compared a bone. Linear direction and amount versus Position, Rotation, and Scale. Obviously, Bones are more versatile depending on the situation.

    Cheers

    [EDIT::] These aren't animated. I'll do that too, maybe.
     
  35. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Heh, not to be a pain but could you do 50 bones with blendshapes representing an animated human, and then 100 bones representing a customizable uma avatar. Right now the blendshape doesn't pay the skinning cost which it needs to make this test comparable. I'm in no way surprised that static blendshapes are faster than skinned meshes... :)
     
  36. kaarme

    kaarme

    Joined:
    May 1, 2014
    Posts:
    177
    1) Unity 5.2.0f3 Personal.
    2) There are no error messages.
    3) Apparently character prefabs. I don't know, they are missing. Also other files but I have never used uma so I don't know.

    I tried github and asset store.
     
  37. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    If there is no error messages it's likely that you're not missing anything.

    Have you tried opening the crowd demo scene and pressing play?

    Alternately try looking through Secret Anorak's tutorial videos, they're really awesome at understanding uma.
     
  38. kaarme

    kaarme

    Joined:
    May 1, 2014
    Posts:
    177
    I tried. I'll try again but when import half of the files are missing.
     
  39. dudedude123

    dudedude123

    Joined:
    Aug 24, 2013
    Posts:
    128
    The UI disappeared from Unity, there's errors relating to it


    The type or namespace name `UI' does not exist in the namespace `UnityEngine'. Are you missing an assembly reference?


    Will there be an update to fix this?
     
  40. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Avash, are you by any chance out of disk space?

    The files are there and you're the only one who has this problem. The problem isn't with uma but with your setup.
     
  41. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    UMA requires Unity 4.6 or later.

    The UI namespace was added in Unity 4.6 and continues to exist, there is something wrong with your installation of Unity.
     
  42. kaarme

    kaarme

    Joined:
    May 1, 2014
    Posts:
    177
    I don't undestand..... I can download other assets perfectly well. Isn't 100Gb enought?
     
  43. Ramsdal

    Ramsdal

    Joined:
    Oct 18, 2013
    Posts:
    251
    Which asset serialization are you using when importing UMA? (Edit -> Project Settings -> Editor) Try setting it to Mixed, if it is already mixed, then try setting it to Force text and then delete uma and reimport it.
     
  44. Hedonsoft

    Hedonsoft

    Joined:
    Jul 11, 2012
    Posts:
    168
    Is there a trick to getting Mixamo animations purchased from their site to work with UMA2? I uploaded the MaleUnified character and applied animations to it. In the web viewer they look fine but in Unity the UMA is sunken into the ground to waist level. I tried applying the .ht avatar template and copying the avatar from another character (the MaleUnified). Is the only way to change the y offset for each animation?
     
  45. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Yes, you need to set them to be mecanim humanoid. For unknown reasons they come as Mecanim Generic from Mixamo.
     
  46. deaneau

    deaneau

    Joined:
    Oct 15, 2015
    Posts:
    1
    Hello @Cloud Weaver,

    i have seen that you work in MD and your Project is German Uniformes. I have try to look in the archive of the German Military Museum in Dresden, Saxony.

    do you know a source straight from the horse's mouth? that meen.do you have garment blue prints etc.?

    when you read this how i can contact you?

    thank you for your attention and i´ll hope we can connect.

    best regards

    Dean
     
  47. Slick_Nick

    Slick_Nick

    Joined:
    Jan 4, 2014
    Posts:
    37
    Hello!

    I've been working a bit with UMA.
    I have created a character customization/equipment scene, and i really love this amazing tool.

    I have however failed to find a way to reduce the poly count of the character as i will be having a top-down type of game with many UMA:s.

    When i check scene stats, the UMA im generating with the default mesh has around 36000 tris and 21000 verts.

    My question is the following:

    Is there a good way to reduce the complexity of the mesh/mesh parts so it will become less tris/verts (lower poly)?

    Regards /Niklas
     
  48. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    I don't know if this is exactly the right solution for your needs, but you can use the plugin called SimpleLOD to reduce polys in edit or at runtime.
     
  49. Hedonsoft

    Hedonsoft

    Joined:
    Jul 11, 2012
    Posts:
    168
    I forgot to mention I did this.
     
  50. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Hmm, well hardly a uma issue, but you should definitely not use the uma avatar.

    I'm guessing you need to specify the root motion bone, looks like it's set to hips rather than the true value... If I get time I'll try to take a look tonight. Which animations in particular do you get this problem with?