Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. Hedonsoft

    Hedonsoft

    Joined:
    Jul 11, 2012
    Posts:
    168
    Yes that is the problem but I don't think it came with a high poly head (did it? I'm at work and can't double check)
     
  2. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    It should come with high poly everything
     
  3. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    They won´t be compatible if they have their own specific body mesh + cloth mesh together into a single slot. I did advised the content creators using this approach to have a more flexible solution, but not all of them accepted my recommendation.
     
  4. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    You might be using High poly head + Low poly torso from base content of the opposite or clothes that incorrectly merge together cloth parts + body parts, this ends up forcing user to follow a specific body LOD.
     
  5. CaptainChristian

    CaptainChristian

    Joined:
    Apr 3, 2013
    Posts:
    100
    I updated the dll in my project, but I cannot create UMA characters when Use Pro in UMAGenerator is ticked. It works fine without pro.
     
  6. GameNative

    GameNative

    Joined:
    Apr 17, 2014
    Posts:
    40

    I've tried the convertRenderTexture and it does work and like you said it's incredibly slow.

    2.) How would I achieve that detection? Is there an existing event I can listen against?
     
  7. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362

    Hi there!
    this has been discussed many times here at the forum and there are different ways to check it, please take a look at this and other posts.


     
  8. GameNative

    GameNative

    Joined:
    Apr 17, 2014
    Posts:
    40
    Thanks, worked like a charm!
    '
    Sorry I did search, had no luck though.
     
  9. Archania

    Archania

    Joined:
    Aug 27, 2010
    Posts:
    1,662
    Hi there. I am getting this error and not sure why. I started over and using the latest on github with 4.6x.
    I have the UMAGenerator gameobject in my scene also. but my character isn't spawning and not sure.
    Any ideas?

     
  10. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    All the errors is from the UMAData editor, so we can't see the "broken" data. Try switching your inspector into debug mode to show the raw values.
     
  11. Archania

    Archania

    Joined:
    Aug 27, 2010
    Posts:
    1,662
    Is that better?
     
  12. ImpossibleRobert

    ImpossibleRobert

    Joined:
    Oct 10, 2013
    Posts:
    530
    I also had the disappearing textures issue and the solution was rather adding this simple function:

    Code (CSharp):
    1. void OnApplicationPause (bool paused)
    2.         {
    3.                 if (!paused && umaData != null) {
    4.                         // recreate textures as they would disappear otherwise
    5.                         umaData.Dirty (false, true, false);
    6.                 }
    7.         }
    8.  
     
    hopeful likes this.
  13. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    Has anyone got this working with the new UFPS? It would be cool to be able to generate your own character (or enemies) using this. Also I dont really quite understand what I am supposed to do once I have made a character, can I simply make a prefab out of them or something? Or does that lose efficiency? Am I meant to somehow plug these runtime guys into my other systems using code? Thanks very much, love this asset!!..
     
  14. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65

    Hey,

    is it able to get ur HairSlots?
    I got some content too. Maybe we can share....
     
  15. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    Hi there,

    i got to get a List or Array of all generated Crowdmembers to have access to an script, which is attached to Male_Unified and Female_Unified. How would u do that? Should I search for Male_Unified and Female_Unified on GameRunning or should I generate a List in the UMACrowd-Script?
     
  16. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Using UMA you have to do all the integration work using code, but there are some tools on the store that can be used to make things easier by wrapping a lot of the stuff up in a easier to use package. How you want to use it depends a lot on your use-case i guess.
     
  17. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Easiest would probably be to add the generated UMAs to an array from whatever script you are using to create them, like the Crowd script as an example.
     
  18. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    Yeah I made it in the CrowdScript... THX

    Now I have another "problem", which should be solved easily, but I dont now how to start with it.
    I got to get the FuturePosition of the Avatar to compute whether the agents are going to collide in the next timeStep (not Frame!!!). But they are steered with the help of some 2D-Blendtrees, so it won´t be enough to extrapolate their futurePosition by compute a line with help of their currentPosition and their velocity, because they are walking on a curved way. Is there any callback in the UnityEngine, to get the Information, where my avatar will be within my next Timestep, interpolating between several animationClips or do I got to approximate the curve by my own?
    I mean Unity has to compute these things to know where the meshes will be in the next frame, isn´t it?

    I havent found something needable in the Animator-class for that problem.

    Please help :cool:
     
    Last edited: Nov 4, 2014
  19. cookimage

    cookimage

    Joined:
    Sep 10, 2012
    Posts:
    729
    FernandoRibeiro likes this.
  20. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
  21. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    I have a "problem", which should be solved easily, but I dont now how to start with it.
    I got to get the FuturePosition of the Avatar to compute whether the agents are going to collide in the next timeStep (not Frame!!!). But they are steered with the help of some 2D-Blendtrees, so it won´t be enough to extrapolate their futurePosition by compute a line with help of their currentPosition and their velocity, because they are walking on a curved way. Is there any callback in the UnityEngine, to get the Information, where my avatar will be within my next Timestep, interpolating between several animationClips or do I got to approximate the curve by my own?
    I mean Unity has to compute these things to know where the meshes will be in the next frame, isn´t it?

    I havent found something needable in the Animator-class for that problem.

    Please help :cool:
     
  22. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Hardly a UMA problem, but a very relevant one.

    To get good results I would recommend that you solve this problem on a higher level. Do not micromanage animations, it will never look good. Instead do a sphere cast and detect what obstacles exists in the next meter or two and then gently nudge the player around them, try to avoid ever being a single frame from collision. The sooner you detect an obstacle the better you can make avoiding it look.

    If you run on a grass field and there is a tree in the way, you will plot a course around it many meters in advance, you may miss the tree only by a few inches, but you will never be in a situation where you're less than a second from colliding with the tree.

    The hard part is of course the other dynamic objects, but setting them up with a capsule for where they are and where they will be you can detect the problem and try to solve it in advance. If they're on the same team they will try to reach the best solution for both, if they're not on the same team... then it gets really interesting. :)
     
  23. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65

    ObstacleAvoidance is solved by an NavigationGraph + PathFinding. I still got a very good approuch for AgentCollisionAvoidance. Its a social Force Model called "Predictive Collision Aviodance". Much better than Helbings. So I now need to implement a function, which computes the pedestrians future position in a certain anticipationTime. I dont know if it would be enough to approximate the trajectory as a line. I´ll try that first. but for that I need to get the current velocity of each agent, based on it´s during animation. So now I dont now how to get the average velocity of an blendTrees-based animation. Is there a probabilty to get that information?

    P.S.: It looks good with the animation-managing ;). THX for help
     
  24. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Root average Speed that unity provides will probably not be precise for predicting the avatar next position, especially if there´s a blend between multiple animations, maybe Animator.deltaRotation and Animator.deltaPosition could work.
    Depending on how long ahead you need to anticipate, handling trajectory as a line might be enough though.
    I recommend this book for steering behavior: http://www.amazon.com/Artificial-Intelligence-Games-Ian-Millington/dp/0123747317
     
    CrowdCruncher likes this.
  25. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    THX Fernando,

    that helps a lot. I´ll try to get that book. And I think it will be enough, to approximate the trajectories as a line. I got to compute the future position between "now" and the next ~4s for that model I´ll use. So it´s Trial-Error-Time :p
     
  26. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hey =)
    4s is a huge amount of time for anticipating trajectories, you should consider something like half a second usually.
    I would totally avoid mecanim animations + root motion until the steering implementation is fully functional, root motion might not work as well as you would expect for precise steering. An implementation Rune locomotion system integrated with mecanim would be way better in this case. http://runevision.com/multimedia/unity/locomotion/
     
    CrowdCruncher likes this.
  27. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    Hm :(

    that sounds like I got a lot of work....

    I only need to know, whether the agents would collide in the next ~4s, if they dont change their current trajectory. I dont need to know, whether they really WILL collide, like it´s in the real world - you cant know, whether an pedestrian will idle in 3 s or soomething like this. The agents will update their velocity and direction in a given timestep, like 0.2 s.
    I use the blendtree to change the direction smoothly.

    Is there a problem with the accurracy of anim.deltapos and anim.deltaangle?
    Regarding to your approuch of the Rune Locomotion System, I got a flat scene, so it isnt required to walk on stairs or something like this. It would be a nice "plus" for my work, but I dont got enough time to integrate rune into mecanim. Moreover my blendtree looks like this:

    Blendtree.jpg


    So is it able to get the average-velocity with given X & Y parameters?
    Probably you are right, but I think I´ll try it with that approuch first. It wont be much work to change my code after I tried it. But it would be much work to undestand the Rune system I think.


    P.S.: How do u know all these things? THX a lot ;)
     
  28. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    Rune´s dynamic locomotion is actually to be able to have full control over the motion having the legs movement as a consequence instead of the cause, this can heavily improve the precision of steering.
    Here´s an example of usage(not mine)


    Before UMA, I´ve spent two months working on a prototype of a RTS type game with a ton of units doing local avoidance, so I suffered a lot optimizing it. =D
     
  29. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65

    Hi there ;)

    I considered the RUNE-System and now I think it´s the best solution for my steering-behaviour. I try to change to that system. But is it compatible with UMA? I hope so.... Additionally I hope that I dont got to make my own animations and can use the ones which are included in that System. When my crowd-animation is ready I´ll offer it in the assetStore. Maybe some people are able to use that in their games. :)
     
    Last edited: Nov 6, 2014
  30. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    Hm I now tried to use the Raw MoCap - Dataanimations with that Rune Locomotion System. But there is a problem... How could it be different ... :eek:

    So I dont know which Options I need for the animation Clips to get them work with that system. Do I got to create my own AnimationClips for the UMA-Avatars? If I use the given MecanimAnimsClips it doesnt work because there is no root motion curve in it....
     
  31. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    You can use any mechamim animation with the UMA system, to be honest, almost every question your asking has nothing at all to do with UMA, its just like any animated avatar when it comes to both animation and behaviors : )
     
  32. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    I wont use mecanim anymore. I´ll use the RUNE locomotion system to have a better steering behaviour.

    Additionally your right, I´ll ask these questions in another thread.;)
     
  33. Jgreenwall

    Jgreenwall

    Joined:
    Nov 6, 2014
    Posts:
    1
    upload_2014-11-8_7-43-2.png


    Dear FernandoRibeiro!
    I am a Unity3d beginner programer.

    This image is a image that runs UMA in webplayer.
    And this phenomenon appears in fasteat or fast in quality from uniy.
    Why is this phenomenon appear?
    Also please tell me what is the strategy measures.
    Also appreciated the teaching male's dress or female's dress has not changed well.
     
  34. CrowdCruncher

    CrowdCruncher

    Joined:
    Jul 11, 2014
    Posts:
    65
    Hey,

    maybe you should watch these tutorials first:




    And please tell us what exactly u want to do

    Cheers ;)
     
    Last edited: Nov 8, 2014
  35. tomi-trescak

    tomi-trescak

    Joined:
    Jul 31, 2013
    Posts:
    78
    Since recently my avatars all have opened mouth. See screenshot:
    Some of my animations make avatars to close their mouth, but most of them, such as locomotion makes avatar walk with open mouth and look quite retarded. This is new to me and did not have issue with this till recent. Do you have any idea what can be the problem ?
     
    Last edited: Nov 17, 2014
  36. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    Try using the Female_Unified_TPose_NoJaw / Male_Unified_TPose_NoJaw T-poses for the male and female race, those avoid including retarget data for the jaw bone.
     
  37. tomi-trescak

    tomi-trescak

    Joined:
    Jul 31, 2013
    Posts:
    78
    Fernando, I have assigned the Female_Unified_TPose_NoJaw to the HumanMale race and generated a new avatar, yet the jaw is still dropped.

    Thanks!
     
    Last edited: Nov 17, 2014
  38. buckius82

    buckius82

    Joined:
    Nov 19, 2013
    Posts:
    40
    I love UMA,
    I have Been Working on Custom Animations however ran into a huge problem;
    my animations re-size to avatars default 0.5 sizes,I made a character creation that Changes the Height based on the race elf, human , dwarf ect...
    with the default UMA animations it works fine and even props animations pack works fine.
    A Guess this is more a general Help With Animations then With Uma

    What Could Cause the Avatar To ReSize Because of the animation?
     
  39. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    If I recall correctly, UMA is expected to have an update in the next few months, so maybe it can include a tidying up of code related to Rotorz Reorderable List?

    I recently imported the latest version of Dialogue System for Unity and it caused a conflict with UMA. The dev for Dialogue System is going to try to fix things on his end, but if things are a bit awry on the UMA end, that should be addressed as well to prevent future conflicts of this sort.

    @hopeful, a UMA contributor made a copy of Rotorz Reorderable List and changed the namespace to UMA but kept the original assembly GUID. This makes it conflict with any products (like the Dialogue System) that use the original, unmodified Rotorz Reorderable List. :-(

    You'll have to back down to the Dialogue System v1.3.7 for now. (Delete your Dialogue System folder before importing v1.3.7.) I'll work on a solution and release it as soon as possible. This is a top priority item for me.​
     
  40. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    It shouldn't give any problems to change the guid, though I would prefer to remove reorderable list from uma entirely, we have a working alternative that produces very neat code. The fix is trivial and everyone is free to fix it and make a pull request and I'll merge it into uma on github.
     
  41. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    Are you using AssetStore latest version?
    I´ll need to check it "tomorrow" (3 am here), but it makes no sense it is still being retargeted if the mecanim avatar isn´t receiving the jaw bone.
    Another possibility for you is trying using the UMA -> create clean animation from the toolbar.
    Cheers
     
  42. cyby89

    cyby89

    Joined:
    Apr 30, 2014
    Posts:
    35
    I have updated my UMA version from 1.1 to the latest one from github and the performance is significant worse.
    Has anybody the some problem?
     
  43. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    You're probably going to have to give more info, like are you using Unity free or Pro, which version of Unity, and are you using UMA Power Tools ... things like that.
     
  44. cyby89

    cyby89

    Joined:
    Apr 30, 2014
    Posts:
    35
    I use the Pro version of unity. Just the character generation is much slower. You can test it by yourself: generate a character and change the hair color during runtime. It takes much longer than before, until UMA has applied the color change.

    edit: the old version applied the color change instantly, you can try it here http://battlefall.com/charactercustomizer/
    I have change the texture resolution of UMAGenerator to 256 and it takes still much longer
     
    Last edited: Nov 20, 2014
  45. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    I'm on free, so I wouldn't notice a new slowness in Pro. The free version is always slow (I'm sure you've checked to make sure you're not running in free mode, right?). Your demo does indeed make the changes instantly, which is what I'd expect to see from the Pro version.

    Anyway, you'll need one of the UMA guys to help figure this out, like Fernando or Joen. Unfortunately, I'm not someone who can do that. PM them if you need a quick response, as the forum doesn't always ping thread owners when a new message arrives.
     
  46. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    The obvious things that would cause slowdowns are not having "Use Pro" checked or generating huge textures.

    EDIT: Oops, see you checked the resolution. I can't think of any code changes that would be causing major slowdowns, do you happen to know which version you had previously? Man, reading comprehension fail, must not have had enough coffee. I'll look at the code changes since 1.1.

    Is changing height slower as well, or only the overlays?
     
    Last edited: Nov 20, 2014
  47. cyby89

    cyby89

    Joined:
    Apr 30, 2014
    Posts:
    35
    Result of a Deep Profile, Matrix4x4.Equals() is called 15733 times and takes a lot of time
    edit: here the line https://github.com/huika/UMA/blob/d...cedc87/UMADLL/UMA/SkinnedMeshCombiner.cs#L307
    edit2: my fast version was before this was introduced: https://github.com/huika/UMA/commit/f87809f592f845ef46dc8a41ea9e63b478686d65
    edit3: changed the code of SkinnedMeshCombiner.cs to the older version and it's super fast again, maybe somebody who knows how this works in detail can change it to get the performance back
    https://github.com/huika/UMA/blob/d...e4799178105/UMADLL/UMA/SkinnedMeshCombiner.cs

    upload_2014-11-21_0-33-35.png
     
    Last edited: Nov 20, 2014
    hopeful likes this.
  48. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Hmm, that change is from some subtle but nasty combiner bug that Joen fixed. However that shouldn't be getting called unless the slots change - how are you marking things dirty on the color change?
     
  49. cyby89

    cyby89

    Joined:
    Apr 30, 2014
    Posts:
    35
    I call umaData.Dirty(true, true, true) and I know it's better to just call umaData.Dirty(false, true, false) to set only the texture dirty. However, I cannot do that, because it's handled by an abstraction layer that I build on top of UMA... anyway, with the old SkinnedMeshCombiner it's fast enough

    It's still slower if you generate a character for the first time and the SkinnedMeshCombiner is used.
     
  50. buckius82

    buckius82

    Joined:
    Nov 19, 2013
    Posts:
    40
    i found out the problem:
    i scaled the uma skeleton to create the animations which caused the problem.
    to fix it i re-targeted the animations in 3d exchange to the unity default character Dude.
     
    hopeful likes this.