Search Unity

  1. Calling all beginners! Join the FPS Beginners Mods Challenge until December 13.
    Dismiss Notice
  2. It's Cyber Week at the Asset Store!
    Dismiss Notice

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
    This makes me sad. It is better to let people assume you know nothing than to type an asinine post and remove all doubt.
     
  2. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    This geometry has 4 sets of uv maps, you need to separate the body/head/innermouth/eyes to bake textures otherside all of them are baked in a single texture and you get those crazy results.
     
  3. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    As far I can tell you´re mixing male and female meshes, but their bindpose data is different.
    It works on DefaultMeshCombiner, but you should avoid combining meshes from diferent "races".
    Cheers!
    Cheers!
     
  4. jzela

    jzela

    Joined:
    Mar 2, 2013
    Posts:
    68
    Ok, I'll try separating the body out into its own subtool. Thanks!
     
  5. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    @FargleBargle
    Thanks a lot for explicit explanation(6 steps). I did get uma avatar created and used a simple wave animation on and it worked. However, when the avatar is created there are no textures. How do I fix this?
     
  6. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,618
    Turns out I was wrong, even though the Animator.GotoState method has been renamed to Animator.Play (That happened between 4.3 beta and 4.3 release) the error message it produces still says GotoState! The problem came from the code that attempts to resume the playback after updating the avatar. The racial prefab have an animator and it was in a state from the Locomotion Controller that didn't exist in your controller, that's why you got the error.

    A fix is on it's way to github.
     
  7. Ribosome

    Ribosome

    Joined:
    Jan 15, 2013
    Posts:
    43
    The old question : I have a prefab that will generate UMA for me(had all libary set up)
    it worked bug-free a couple of times, but then comes the error:
    Could not find race: HumanMale
    NullReferenceException:Object not set to an instance
    UMA.UMAData+UMARecipe.ClearDNAConverters()


    I hadn't change those library, the same RaceLibrary on Inspector

    why?
     
  8. Ribosome

    Ribosome

    Joined:
    Jan 15, 2013
    Posts:
    43
    I noticed this msg from console: Cleaning up leaked objects in scene since no game object, component or manager is referencing them
    SunshineProjectPreference has been leaked 1 times


    is that possible that my raceAsset got clear due to leaking problem?
     
  9. goat

    goat

    Joined:
    Aug 24, 2009
    Posts:
    5,177

    Um, those look like the same error messages I got when I attempted to change both the Animation Controller and the Locomotion.cs script attached to both the Human[Fem|M]ale prefabs....to use those from the Locomotion Setup Asset for Mecanim from Unity Tech in the Asset Store...

    I myself couldn't find a solution but it seems that Joen has found the error and will send the fix to the GitHub repository.
     
  10. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    I´m happy to officially announce I´m working on my free time creating realistic UMA textures based on 3d scans :)
    Here´s the first High poly result:




    I´ll be able to start a new thread for the realistic texture work, and the first asset will be available soon on AssetStore.
    Cheers!
     
  11. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    669
    If I understand your question correctly, there should NOT be any textures on the avatar prefabs from the Races folder when you drop them into your scene to set them up. This is normal, as they are blank, untextured templates at this stage. After you've saved them, as shown in step 6 of my instructions, you should be able to load Scene 1 in the Example>Scenes folder, follow the instructions in step 7, and UMACrowd should add textures when it instantiates avatars from the new prefab. If you don't get textures in Scene 1 either, have you modified UMACrowd or any of the other scripts in any way? If so, it might be best to re-import the project files and see if you have the same problem on a fresh install. If the avatar looks fine in Scene 1, but has no textures when you bring it into your own project, then it's working, but something has been lost in the export/import process. If this is the case, you may need to ask Joen or Fernando for help. I hope this helps. If I've misinterpreted your question completely, let me know, and I'll take another stab at it.
     
  12. Ribosome

    Ribosome

    Joined:
    Jan 15, 2013
    Posts:
    43
    Question about overlay:
    I make a new face overLay from the by changing the MaleHead01 't texure List
    the I change the code to use the new face overlay $code.png
    but this man's face doesn't take effect, it looks Like this: $3.png

    it looks like the face texture was not assighed to renderer,
    however, when check the Skinned Mesh Renderer ,its materials texure look just right
    $texture.png

    so what have I did wrong ? Is there any extra settings I need to conduct to make a overLay?
     
  13. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    Are you using UMA standard shader?
    Could you post both resulting diffuse and normal map atlases? This will help me understanding what is going on.
    I´m also curious why the neck junction isn´t working for you. Have you made changes to original basemesh?
    Cheers!
     
  14. kmvassey

    kmvassey

    Joined:
    Dec 31, 2013
    Posts:
    15
    Howdy fellow UMA lovers,

    I have been playing with the scale of avatars to better fit in my game world, and I think I've almost got it. But, I have a hurdle I could use some help with....

    So, I've been able to scale up the unified and separated male FBX files, including the rig and skin weights. They are exporting fine, based on documentation information, and I've replaced the default FBX files in the project with the scaled versions. So far so good. Now, in my Slots folder, I'm seeing corresponding geometry, like the torso for example. In that folder, the prefab is referencing a file called UMA_Human_Male_Torso.asset. My question is how do I regenerate that file based on my correct scale? I tried directly linking the mesh renderer to the torso in the separated FBX file, but the results weren't so pretty. I'll attach an image below. Any ideas on how to proceed?

    Thanks!

    $Scaled_Male.PNG
     
  15. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    I would recommend avoiding scailing all meshes and content. Instead, handle scale adjust on DNA, this will simplify all work and should take less than a minute :)
    Take a look at dnaConverters, and change the influence over "Global" bone.
    If you can´t find where you need to change, give me an hour and I´ll be able to take a look for you.
    Cheers!
     
  16. Kirbyrawr

    Kirbyrawr

    Joined:
    Jul 23, 2012
    Posts:
    935
  17. kmvassey

    kmvassey

    Joined:
    Dec 31, 2013
    Posts:
    15
    This worked great, I think! Here's what I changed in HumanMaleDNAConverterBehaviour.cs.

    ////Bone structure change
    //Debug.Log("preClamp = "+umaDna.height);
    float scaleFactor = 25000f;
    skeleton.SetScale(UMASkeleton.StringToHash("Global"),
    new Vector3(
    Mathf.Clamp(1 + (umaDna.height - 0.5f) * scaleFactor + (umaDna.legsSize - 0.5f) * scaleFactor, 0.5f, 300.0f),
    Mathf.Clamp(1 + (umaDna.height - 0.5f) * scaleFactor + (umaDna.legsSize - 0.5f) * scaleFactor, 0.5f, 300.0f),
    Mathf.Clamp(1 + (umaDna.height - 0.5f) * scaleFactor + (umaDna.legsSize - 0.5f) * scaleFactor, 0.5f, 300.0f)));
    //Debug.Log("postClamp = "+umaDna.height);

    I'm a little bit worried about having to scale everything by a factor of 25000, but that should hopefully be OK. If I'm crazy for doing that, please let me know. :)

    And of course, thank you so very much for your suggestion.

    --Kevin
     
  18. pushbyte

    pushbyte

    Joined:
    Apr 1, 2012
    Posts:
    9
    Wow, what an AMAZING asset! A very big thank you to Fernando! I'm working on a cartoonish FPS game where I want the players to be able to customize their character and it seems like most of what I want to do is available out-of-the-box, but I was curious if I could get some confirmation that the following is possible:
    • Character has “base form” (neutral humanoid) that is used as a default mesh
    • This base form has multiple poses and facial expressions
    • Need to be able to scale and stretch different body parts (leg length, head size, head width, etc.) and retain the default poses and facial expressions
    • Need to be able to swap between meshes for various components (new hairstyles, odd nose shapes, hats, shirts, pants, etc.)
    • Adjust clothing meshes, such as shirts, to fit around customized character mesh (will shirt sleeves cut into enlarged biceps or fit around them?)
    • Push and update to the initial base form and have custom character update as well (e.g., I later want to add a new facial expression--can I swap the base form's model and have the player’s custom character inherit new expression?)
    Thank you again to everyone involved in the creation of this asset... wow! :D
     
  19. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    25000???
    Now I´m worried! It´s usually important to keep a standard measurement unit being shared for all your assets.
    UMA avatars height is 2m, you shouldn´t be getting a huge difference like that one.
     
  20. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,618
    Unless you're making an mmo where the terrain is the body of a giant I see no need for such numbers. If the scale of your world means that a player character is 25000 units in size then you'll get a ton of floating point precision errors. It is a much better idea to scale down the world and keep the "player" at maximum 5 units in size. (Many would encourage even lower sizes)

    When that is said I'd recommend doing something else. Make your own DNA converter that secretly calls the existing DNA converter. And then afterwards scale up the Global Bone such leaving the original DNA converter intact. That would also allow you to add your own custom DNA type with the scalar that you scale with. The code would look something like this:

    Code (csharp):
    1. public class HumanMaleGiantDNAConverterBehaviour : DnaConverterBehaviour{
    2.     public HumanMaleGiantDNAConverterBehaviour()
    3.     {
    4.         this.ApplyDnaAction = UpdateUMAMaleDNABones;
    5.         this.DNAType = typeof(UMADnaHumanoid);
    6.     }
    7.     public static void UpdateUMAMaleDNABones(UMAData umaData, UMASkeleton skeleton)
    8.     {
    9.         // first apply normal human changes
    10.         HumanMaleDNAConverterBehaviour.UpdateUMAMaleDNABones(umaData, skeleton);
    11.         // then  apply giant changes on top
    12.         var giantDna = umaData.GetDna<UMADnaHumanoidGiant>();
    13.         var oldScale = skeleton.GetScale(UMASkeleton.StringToHash("Global"));
    14.         skeleton.SetScale(UMASkeleton.StringToHash("Global"), oldScale*giantDna.scaleFactor);
    15.     }
    16. }
     
  21. esaavedra76

    esaavedra76

    Joined:
    Jun 15, 2013
    Posts:
    128
    Dear Fernando and Unity Team,

    First of all, thank you so much for UMA! I can't manifest how much I'm enjoying it!

    Just have one quick question, what is the purp0se of the tag field?

    Regards,

    Erwin
     
  22. OneShotGG

    OneShotGG

    Joined:
    Nov 16, 2012
    Posts:
    225
    So, if I have my own base mesh I can skin it to your base rig and keep all the morphing features?

    I would like to use my own custom meshes for male and females.

    What is the end game for UMA? Allow people to create (sell?) various base meshes and clothing designed for each specific base mesh? That would be cool, kind of like how their are various body replacers for skyrim and armor designed for those various bodies.

    You could actually foster one hell of a community if this catches on with the daz/renderosity/skyrim modding crowd.

    Of coarse all that depends on if people can use their own base meshes (not that yours are bad but people like choices).
     
  23. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,618
    Yes the idea is that people can make their own base meshes and their own gear for those base meshes.

    But there is another option which is much harder but also much more impressive. If you can make your base mesh proportionally match the UMA base mesh and use the same rig. The difference means that you need a unique DNAConverter to make the sliders build a model that looks like your mesh and not like the UMA base mesh. The real advantage is of course that then the existing clothing would work for your character.

    With the current tool chain it would be hard to achieve but the end result would totally be worth it.
     
  24. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,301
    Is there any existing clothing or armor aside from the default modern ones? I mean usable/purchasable stuff; I saw the third-party screenshot with the fantasy armor but I'm assuming that is not for sale.
     
  25. OneShotGG

    OneShotGG

    Joined:
    Nov 16, 2012
    Posts:
    225
    Interesting.

    When modeling and/or sculpting the base mesh are there any guidelines to follow?
     
  26. kmvassey

    kmvassey

    Joined:
    Dec 31, 2013
    Posts:
    15
    Ah-ha! I think I might have found something. I have 3DS Max set up to work in centimeters. When I bring in an FBX for an existing character for my game, the measure tool says he is 201.718cm, or 2.01718m. When I import the Male_Unified FBX file from the content pack, the FBX import settings are accurate per the documentation, but the measure tool says he is 2cm. I am finding the same in Blender 2.69, and I will test Maya tonight. This leads me to believe that the included FBX files might be 2cm, instead of 200cm.

    Is that possible?

    :)
    --Kevin
     
  27. kmvassey

    kmvassey

    Joined:
    Dec 31, 2013
    Posts:
    15
    This makes perfect sense, and I can't thank you enough for the pointers and support. :)

    --Kev
     
  28. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    Problems with different measurement units are very common =)
     
  29. marcfielding

    marcfielding

    Joined:
    Aug 1, 2013
    Posts:
    33
    Hi Guys,

    Firstly this looks like an absolutely awesome tool, its exactly what I needed given that i've just started with unity last week and the whole 3ds max thing has been a bit too much to learn.

    I may be missing something glaringly obvious here but I can't find a tutorial for it, lets say I want to create a character using the example and then pull that character into a new project how would you achieve this, I had to add the Save/Load tool to the generated character and managed to get it to output but I can't figure out how to pull it into a new scene?

    Sorry if its a silly question but as I said i'm still learning!
     
  30. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    Save/Load will be my next video tutorial, I might be able to upload it tomorrow.
    As you said, you would basically need to save it and load any time you need that same avatar.
    Subscribe on UMA channel to get an email when the video is available.
    Cheers!
     
  31. marcfielding

    marcfielding

    Joined:
    Aug 1, 2013
    Posts:
    33
    Ah excellent yeah I was just going through the channel checking I wasn't wrong so i'll sub while i'm here!

    I'd assume (perhaps incorrectly) that I need to add UMA functionality to my existing project and then load the character but I can't quite figure out how to add UMA to an existing project.

    And by the way excellent work, its really taken the head ache out of learning unity for me, simply brilliant!

    Cheers

    Marc
     
  32. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Great to hear that =)
    But keep in mind some UMA features might require more advanced Unity knowledge, specially for customizing the framework.
    With time, there will be plenty of third party solutions to simplify everything : ))
     
  33. Ribosome

    Ribosome

    Joined:
    Jan 15, 2013
    Posts:
    43
    these are textures: $base.png $inspector.png $resultNormal.png

    as you can see, I am using UMA standard shader,and the textures looks right to to me,
    as to the baseMesh, my colleage did modify the mesh 's vertices,(making it more Asian),but did not change bones ,
    I simply replace the old head slot with the new face slot , I assume the neck junction didn't match up with the torso because the torso are still using the old slot.
    Am I right?
    Regards.
     
  34. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    Hi there!
    Thanks for sharing this image, it helped identifying the problem :)
    Can you notice the difference between the head and body on normal map atlas?
    Head didn´t got processed by UMA MaterialBuilder, so it´s normal maps didn´t got converted to UMA standards. This tool is available at UMA toolbar :)
    Let me know if you get any problem to get it working :)
     
  35. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
  36. goat

    goat

    Joined:
    Aug 24, 2009
    Posts:
    5,177

    Also note that you can change just the HumanMale / HumanFemale Human_*_Head_Eyes mesh slot with a new mesh that has the characteristics of Mongoloid features.
     
  37. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,618
  38. KINGMAXC

    KINGMAXC

    Joined:
    Jan 9, 2014
    Posts:
    1
    Hello guys, is there any tut for making customization race with customization rig?
     
  39. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,618
    No, I'm afraid that will take some work.

    Best advice would be to dig deep into how the current races work, look at all SlotData, RaceData values. Then try to copy that.
     
  40. Mikie

    Mikie

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

    Did you update goto bug for UMA in the asset store?
     
  41. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,618
    No, I just did some changes to UMA Crowd that puts the crowds random pool into the scene, that will allow content providers to create a copy of scene 01 - crowd that shows off their content.

    Fernando is testing it now and once he is happy I'll upload the update to the asset store.
     
  42. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    The controllers work OK now. I do get a warning that says Parameter 'Direction' does not exist. It is getting this from the Locomotion controller. Is there anyway to stop this.? How are your Tools coming?
     
  43. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,618
    Well that only means that now you have the same state animation in your controller as in the Locomotion controller. The fix that I'll upload in a few hours does not attempt to continue playing animations if you change the controller. So with the new code that warning should go away.

    My tools have been submitted and I'm now waiting on Unity.
     
  44. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,618
    UMA Power Tools has finally made it to the Asset Store.
    http://forum.unity3d.com/threads/221290-UMA-Power-Tools-in-the-asset-store-now!

    Key features:

    • Threaded Atlassing - works without Unity Pro!
      Takes roughly 1 second while maintaining a solid framerate, for a demo try pressing INSERT in the Autoloader demo.
      http://glscene.com/unity/UMAPowerTools/AutoLoader.html
    • Threaded Skeleton Reduction
      Bakes all the extra UMA bones away leaving you with a tight skeleton for that little extra bit of performance.
    • 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
      That's right, see your characters directly in the editor while you edit your scenes! I even made them animate for you!
    • Dynamic spawn/destroy
      Spawn the UMA characters automatically in range.

    Direct link to the asset store: https://www.assetstore.unity3d.com/#/content/14249

    Cheers,
    Joen - UnLogick
     
  45. AndyLL

    AndyLL

    Joined:
    Aug 25, 2013
    Posts:
    74
    I can see that there are going to be a ton of UMA items in the Asset store. At one point last year it was mentioned that their might be a special category in the Asset store for UMA. Is that still a possibility?
     
  46. FernandoRibeiro

    FernandoRibeiro

    Joined:
    Sep 23, 2009
    Posts:
    1,362
    In fact we already got two categories, one at scripting/Avatar systems and one at 3D Models > Characters > UMA Avatars
    =D
     
  47. Ribosome

    Ribosome

    Joined:
    Jan 15, 2013
    Posts:
    43
    hello, there. It was because I didn't use the MaterialBuilder, not I can generate UMA using my own slots, now I get new problem, all slot works just fine except the torso part: $23.png $armpit.png

    as you can see, the armpit part got some unwanted overlapping section, How do I fix it? do I miss sth again?
    is this a bone weight problem , will it still work if I change them?
    BTW, when would you make a tutorial on how to save and load UMA at runtime ,and how to share UMA data across network?
    cheers !:cool:
     
  48. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    669
    Power Tools looks like it answers most of my remaining questions about UMA. Being able to actually see the avatar in edit mode is a huge plus, and being able to easily save UMA avatars to standard prefabs is priceless. This is exactly what UMA needs to be an extremely powerful and useful tool. I'm sure the autospawning/destroying, bone reduction, and threading features will also come in handy. When combined with KirbyRawr's Helper Pack, we now have everything needed to get started creating game ready avatars. Thanks to both of you.

    (And btw, I just put my money where my mouth is and bought both of them. You guys rock.)
     
  49. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,618
    Just noticed that UMA is now #7 on the Top Free List on the Asset Store.

    This is just fantastic, the more people using UMA the more cool content and tools we'll see.

    I'd like to say thanks to everyone for making UMA truly awesome!
     
  50. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    669
    I didn't see an announcement on this, but just noticed on my latest UMA download from the asset store that it now saves under "ScriptingAvatar SystemsUMA", instead of "Complete Projects". It also no longer contains any Unity settings files. I guess this means it's no longer considered a "complete project", and we can safely import it into an existing project without it wiping out our settings? Not that it's a problem or anything. Now that I can save out prefabs, I'm content to run UMA as a separate little character factory, and send the results wherever I need to use them. It'd still be nice to try out those crowd spawning Power Tools though I guess.
     
    Last edited: Jan 10, 2014