Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. lorddanger

    lorddanger

    Joined:
    Aug 8, 2015
    Posts:
    103
    Did any one tried Daz3d models with UMA
     
  2. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Sent - Your invitation should be in your email soon.
     
    Pomelo874 likes this.
  3. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You could "sort of" get it to work, but would likely need to write a bunch of code to sync blendshapes, etc across the models, and then use the alpha masking to deal with the poke-through. But that's what Morph3d does (and it's from Daz), so if you want Daz, you might want to check them out. But it's not all roses over there, be sure to read the eula, etc.
     
  4. lorddanger

    lorddanger

    Joined:
    Aug 8, 2015
    Posts:
    103
    Yeah they don't have customization yet
     
  5. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    If you haven't check out the latest UMA, I recommend to do so. We have better models and textures now, and new content is on the way in the next update.

    If you have an investment in 3rd party clothing/hair (etc). You can re-target these for the UMA model using Blender/max/maya. There's several tutorials online that show how to do it.
     
  6. dudedude123

    dudedude123

    Joined:
    Aug 24, 2013
    Posts:
    128
    I had exported an FBX from Blender and tried to make a slot but it don't work
     
  7. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    What version of UMA are you using?
    Did you get any errors or warnings when converting the FBX?
    If you drop your FBX into the scene, does it look correct?
    What happens when you add the slot and overlay to a model?

    Are all vertexes weighted to the bones?
    Did you export the model with the options for "Forward" set to "Z Forward" and "Up" set to "Y Up"?
    Were there any modifiers on your model that weren't applied?

    Edit:

    If you haven't seen it, there is a pretty good Blender to UMA tutorial here:

     
    Last edited: Jun 1, 2017
    malkere likes this.
  8. dudedude123

    dudedude123

    Joined:
    Aug 24, 2013
    Posts:
    128
    The latest one
     
  9. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I can't tell what the problem is from the video.

    Is it not allowing you to put the mesh in the slot? If so, make sure your mesh in blender is tied to the skeleton with an armature.

    if that's not helpful, I need more information on what is wrong.

     
  10. lorddanger

    lorddanger

    Joined:
    Aug 8, 2015
    Posts:
    103
    Yeah uma is powerful no doubt, I will have to learn bit more. BTW which version I should go with one on the assets store or GITHUB's uma master branch or uma 26 branch
     
  11. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    UMA26 is nearing release, the code is currently stable. Just waiting on me to finish updating the new clothing. So go with that one if you want the latest and greatest.
     
    Firlefanz73, hopeful and lorddanger like this.
  12. lorddanger

    lorddanger

    Joined:
    Aug 8, 2015
    Posts:
    103
    Thanks suggestions
     
  13. Pomelo874

    Pomelo874

    Joined:
    May 31, 2017
    Posts:
    22
    Got it, thanks. I am trying to resize skeleton on Blender like @kenamis video, but I find the original human mode can only sync with skeleton resizing on POSE mode(edit mode will break the skeleton), shall I finish the resizing work in that way? I am so confuse with the POSE mode, it sounds like the skeleton is not really be resized.
    ...............................................................................................................
    Updated

    It seem I can Pose > Apply > Apply Pose as rest Pose ? than polish the weight paint?
     
    Last edited: Jun 2, 2017
  14. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Yeah, you have to apply the pose. I believe these are the steps

    1) Create a new scene, and import the rig and old mesh from the blend file (or just duplicate and load the blend).
    2) Resize and pose the skeleton to match.
    3) Apply the armature on the original mesh (so it's the new size also)
    4) Apply the pose as rest pose.
    5) Transfer weights from the old mesh to the new mesh.
    6) Tidy up weights with weight painting

    If your new mesh is a shirt or pants or something, then you'll need to restore the original pose. To do that,
    7) Delete the armature modifier from the mesh.
    8) Delete the new rig (Yeah, all we needed was the vertex groups anyway)
    8) Import the old rig from the saved blend file.
    9) Apply armature to the new mesh, and tie it to the old rig you just imported.

    Then export as FBX, being sure that the only modifier that is on the mesh is the Armature (any mirrors, etc have to be applied)

    Be sure to set the Forward to "Z Forward"
    and Up to "Y up".

    You'll probably need to apply a scale of 100 to the fbx in unity.

    If you have issues, let me know. I believe those are the correct steps. I need to write up a tutorial on the wiki.


     
    Pomelo874 likes this.
  15. dudedude123

    dudedude123

    Joined:
    Aug 24, 2013
    Posts:
    128
    I had setup a collision code for UMA
    Code (CSharp):
    1. private void OnCollisionEnter(Collision collision)
    2. {
    3.  
    4.     float deal = damage;
    5.     Health health = hit.collider.GetComponentInParent<Health>();
    6.  
    7.     if (criticalHitChance > 0 && Random.value <= criticalHitChance / 100f)
    8.         deal *= criticalHitMultiplier;
    9.  
    10.     if (punch >= 0.01f)
    11.     {
    12.         if (collision.collider.tag == "Player")
    13.         {
    14.             health.Damage(new HealthEvent(gameObject, deal));
    15.         }
    16.     }
    17. }
    I want to setup the hands to have colliders (gameObject) but I'm not sure what to put on there
     
  16. Pomelo874

    Pomelo874

    Joined:
    May 31, 2017
    Posts:
    22
    Thanks, it is so clear, please allow me to be greedy once:rolleyes: Can you also write a step list for the MAX user? My yesterday work with blender is not good, maybe the problem is from the options in transfer weights, blender v2.7.6 supports more and more options when doing transfer weights, I can not follow the official video(v 2.7.0) on youtube .
     
  17. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    I'm getting the Animation Event has no receiver! error, but I can't find any animation events on the fbx?... I reimported my whole project into a new project and everything works fine until I jump. The Jump state has an exit timer into the Fall animation and a trigger into the Land animation. The land animation has a trigger exit back to the main movement blend tree. The land animation is what is throwing the error.

    I'm using the SecretAnorak method where the UMA creator waits for the UMA to be created then refrences it's animator for script calls. I call Land by trigger when the player grounded and jumping, though it seems to be calling it as soon as jump ends, which is a problem in itself. Still, if I add a trigger event from the AnyState state straight to Land using the Land trigger, Land should have a receive no matter what right?
    Or are these AnimationEvents strictly to do with the Animation tab on the fbx inspector? There are not little white triangles on the Events area for me to delete. I added some and deleted them to be sure. I have nothing creating them in script, I don't use them...?
     
  18. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I think that depends on if there are MAX users on the UMA team. Most of us use Blender or Maya LT. If you find some videos on how to weight clothing in MAX it should be the same. Problem with Max is that it is so expensive and you cannot use the student version for commercial work. You might check the videos from Secret Anorak, I think maybe his older ones might use Max.
     
  19. treshold

    treshold

    Joined:
    Nov 9, 2013
    Posts:
    225
    How things break if I update from previous version to 2.5? Meaning my character system is written for older UMA 2 from asset store (with the help of Secret Anoraks videos) ^^ Or should I try to learn new wardrobe etc stuff?
     
    Last edited: Jun 3, 2017
  20. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I would learn and use 2.5 as it is much better. :)
     
    TeagansDad, hopeful and treshold like this.
  21. treshold

    treshold

    Joined:
    Nov 9, 2013
    Posts:
    225
    yeah, im browsing wiki and watching all the available tutorials for the new system and maybe dwell through all these new posts ^^
     
    Teila likes this.
  22. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    I fixed my AnimationEvent problem. I just made a script and attached it to the runtime created UMA with a simple intercept: public void Hit () {} for each AnimationEvent that was added to the animations by the author which I updated last week without reading the notes =D They were in the Animations window not the import settings, and are read-only as part of the FBX.
     
  23. Nunez-Torrijos

    Nunez-Torrijos

    Joined:
    Mar 3, 2016
    Posts:
    33
    I got UMA 2 working thanks to Secret Anorak tutorials, so I just got it done without undertanding too much of the inner workings of UMA. My aim is making procedural avatars. In my opinion this update is better in case you want to have things preconfigured in the editor. Learning how to make it work procedurally has not been easy for me.
    I managed to get the wardrobe system to work, but I'm still stuck with standard baldies. I'm struggling to implement procedural variations in the DNA traits using a built in randomizer method in UMAData.... apparently the dna converters this method needs are mismatched, or something like that (tries finding a converter hash as key in a dictionary without results).
    I think this update seems woth the effort, but the learning curve has been quite steep for me (working procedurally). Most of my previous code worked to an extent with minor adjustments, but had some trouble with some slots and overlays. So I decided to fully embrace the DCS. This meant I had to rewrite most of my generator scripts from zero. Predefined stuff appears to be easier. However, I don't consider myself a pro coder, I have limited time, and as I said I'm not very familiar with the inner workings of the uma code. Perhaps your conditions are better.
    Good Luck!
     
    Teila likes this.
  24. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Yep, that is the way to go. :)
     
    hopeful likes this.
  25. Gohans

    Gohans

    Joined:
    Dec 31, 2016
    Posts:
    9
    Hello guys,

    I've been using UMA for a few months, and i have to say it's really great, nice work !!!
    I only have one problem, with UNET : i really don't manage to make the "network animator" work, to sync all the animations through the network. I used this component for other projects no problem, it just doesn't wanna work with UMA..
    Anyone did that before? Would really be a big help.

    I'm using UMA 2.6 (from GitHub) / Unity 5.6.0f3

    Thanks for your help :)
     
    Teila likes this.
  26. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    We are using UMA with Unet and I wish I could tell you how but my programmers guys will have to help you and they are all very busy at the moment. I will try to see if I can get one of them to write up something, but no promises it will happen soon.

    It works great though, btw. I think the most important thing is to make sure your character controller is working with Unet as well. We used Opsive's TPC and it was challenging but working fine now.
     
    Gohans likes this.
  27. Gervais60

    Gervais60

    Joined:
    Apr 7, 2016
    Posts:
    37
    Dose any one have been able to integrate UMA with Invector TPC and if yes could you include the step required to do so.

    Thanks
     
  28. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Which one do you have? I have the melee template. I'll give it a shot, see what I can come up with.
     
    Teila likes this.
  29. Gervais60

    Gervais60

    Joined:
    Apr 7, 2016
    Posts:
    37
    I have the shooter and the melee template last version and unity 5.6.1f1

    Thanks
     
  30. Dennis59

    Dennis59

    Joined:
    Jan 8, 2013
    Posts:
    66
    Gohans, Teila asked that I post regarding the use of UMA with UNet. We are not using the network animator. Frankly, I've never used the network animator. We have used Animator and sync'd the character movement and animation through the network. In general the process I use is as follows. Hopefully this will be helpful.

    1. The client sends an AddPlayer message to the server once the player has selected their character.
    2. When the sever receives the AddPlayer message the OnServerAddPlayer callback is called. This override function is where you setup the character on the server and call AddPlayerForConnection to add the player on the clients. This is where things start to get interesting. With UMA there is no one character. Each character is different. The AddPlayerForConnection function includes a parameter for a gameobject. This gameobject needs to include the information needed to create the UMA. Save the recipe to a string or byte array so that the clients can generate it. Suggestion: you can save the UMA as a string using the code in the UMA package and compress it to save bandwidth.
    3. On the client the gameobject that was specified in the AddPlayerForConnection will be instantiated. It needs to contain all of the code to create the character including the network identity. Keep in mind that UMA characters generate SLOWLY compared to how the code executes. This means that you may not be able to define all scripts / components until the character is generated (ie: you can't put everything in the prefab or you'll get errors). I recommend that you use the additional slot system to handle this. If you aren't familiar with that look at the locomotion slot in the additional slots folder. This allows you to define the components that will be added once the character is generated. Typically this is important for the character controller and camera for third person controllers. Frankly, you'll just need to experiment to see what can be predefined and what cannot.
    4. Movement of the character is handled using a SyncVar to update the position to the server and the clients.

    I will upload an example project later this week on the UMAWiki in the working with UMA page.
     
    Gohans likes this.
  31. Gohans

    Gohans

    Joined:
    Dec 31, 2016
    Posts:
    9
    What a nice and quick answer!!
    Well,i will jsut forget "Network Animator" for now, and do it as you said. Will try to follow your steps, but yeah, if you could give me an example, that would be awesome.

    I already had position / shoooting and other stuff in place : just no animation playing :p


    Thanks a bunch for this, such a nice community !
     
  32. Dennis59

    Dennis59

    Joined:
    Jan 8, 2013
    Posts:
    66
    was the character on the server animating / moving as it was on the client?
     
  33. Nunez-Torrijos

    Nunez-Torrijos

    Joined:
    Mar 3, 2016
    Posts:
    33
    Hi, Is there a way to transform old DNARangeAssets into the new DNA Converter System?
    The old system had hardcoded DNA traits in the DNARangeAssets.
    Now it seems the converter system allows you to make your own traits, but I haven't found a way to configure allowable DNA trait ranges per race, as in the old system.
    I supposed I could try to write a script to mass transform my old scriptable objects to the new format, since many of the old DNA traits were preserved, at least by name. However, when you look at the scripts, they seem to be quite different...
    Am I missing something?
     
  34. Gohans

    Gohans

    Joined:
    Dec 31, 2016
    Posts:
    9
    Like i said, the transform position was set, just no animations at all are played, even if i added the "Network Animator" to the UMA avatar with the right animator linked to it.
     
  35. Nunez-Torrijos

    Nunez-Torrijos

    Joined:
    Mar 3, 2016
    Posts:
    33
    Yup, I was missing something.
    Since I couldn't "update" my old DNARangeAssets I found a rather obvious way to keep using them. I just needed to load the old converter prefabs into the DnaConverterLists of the DCS races. That did the trick for me.
    So I cannot say I will "fully" embrace the DCS anymore... I just hope this doesn't generate other collateral issues.
    I still have some questions, though:
    1) What are the benefits of the new DNA converter system?
    2) Is it compatible with the old DNARangeAsset System?
    3) If I have several DNA Converters in a DCS Race, how do they interact with each other? One overrides the rest? Cumulative effects? Are modifications in one converter "softened" if other converter remains at 0.5 in the same DNA trait?

    Thanks!
     
  36. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    1. The old DNA is 100% compatible with DCS. DCS doesn't care if you use the original DNA or the new Dynamic DNA,
    The advantage of the Dynamic DNA is that you can modify it on the fly (so it's easier to setup) and it can be a resource in an asset bundle.

    2. No, since this was a UI thing, we left it out of the base code. You can still use the DNARangeAsset to modify the min/max values of your UI.

    3. If you have multiple DNA converters, and they have the same DNA in them, then the latest one will override the earlier one. At least in the checkin I just uploaded. Earlier versions will likely have an error getting the DNA.

    We added a "Display Value" field to the DNA Converter Behaviors. This is propagated onto the DNASetter as the "Category". The idea was that you would create different DNA for the different categories (like "Face" & "Body", or maybe more detailed like "Face", "Eyes", "Ears", "Nose", etc). Then you can tune your UI to present the DNA by your own categories.
     
  37. Dax25

    Dax25

    Joined:
    Mar 14, 2017
    Posts:
    6
    Hey there, I have been using uma for quite a while and now I am in the process on creating/ Importing new clothes for my character however I seem to have a problem. I use blender to adjust/ create and then I test them on Unity but for 2 days now I have been having a problem, each time I import clothes to Unity and test them, clothes get deformed and I can't seem to fix the problem with Blender.

    Also, part of the pants seem to be floating away each time even though they are part of the same model and vertex group.

    Here are some screenshot showing the initial model in Blender and then the application in Unity, what am I doing wrong? Can someone help me?
     

    Attached Files:

  38. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    It looks like something isn't weighted right, or perhaps you have more weights per vertex than you do in your settings.

    First thing, let's make sure that Unity is setup right. Go into your quality settings, and make sure that your settings for the number of "Blend Weights" is equal to the maximum number of weights on your vertexes. Normally, this should be "4 Bones".

    Next, for the import settings on your FBX, make sure "Mesh Compression" is OFF.

    If that fixes it, then we're done!

    If not, then you should make sure everything is weighted like you expect it to be (ie, no vertex is in more than 4 vertex groups. You've weighted everything to the "adjust bones" when they exist, etc.

    How did you do the weighting? Do you transfer weights from the full model?
     
  39. Dax25

    Dax25

    Joined:
    Mar 14, 2017
    Posts:
    6
    I just checked, everything is already setup right, 4 bones and mesh compression is off. For the weighting, U usually use the 'Armature deform with automatic weighting' it usually works well for me. Maybe this had nothing to do with it but I export the fbx with FBX 6.1.
     
  40. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Either version should work fine. I'd recommend transferring weight instead of using Automatic weighting - UMA has additional "adjustment" bones, that are co-located with the animation bones. (this is so you can scale things correctly without it messing up the animations). Likely the automated weighting is assigning weights to both bones.
     
  41. Dax25

    Dax25

    Joined:
    Mar 14, 2017
    Posts:
    6
    I see, thank you very much, I will try to fix it and I will update with the results!
     
  42. Dax25

    Dax25

    Joined:
    Mar 14, 2017
    Posts:
    6
    I tried changing the weight but it doesn't seem to do anything, each new version ends up with the same result, However, I realised that the trousers on the character seem to be be backwards. Is there an option to flip the direction with UMA? It exports just fine from Blender but the shape of the trousers seem backwards which could explain my problem.
     
  43. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Make sure you have applied the rotation, and any modifiers except the armature. Also, make sure (in the FBX settings) you have forward set to "z forward" and up set to "y up"


     
    hopeful likes this.
  44. Dax25

    Dax25

    Joined:
    Mar 14, 2017
    Posts:
    6
    Same problem, as you can see in the screenshot, the mesh seem flipped bu only for the upper region, Hips and especially gluteus.

    This never happened before..

    Btw, the screenshot was taken from the right side of the character, the front is towards the right
     

    Attached Files:

  45. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Im at the point where I'm out of ideas. If you're comfortable sending me the blend, I can try to look at it tomorrow. I'm assuming you're using 2.78c?
     
  46. Dax25

    Dax25

    Joined:
    Mar 14, 2017
    Posts:
    6
    Yes that's right, 2.78c, I sent you a message on a private discussion, thank you!
     
    Last edited: Jun 5, 2017
  47. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Thanks - OK, I found out what was wrong. I also set the scene up in a known "good state for export", just to eliminate any issues. First - the problem was that the weights were incorrect - the vertexes were tied to both adjustment bones and regular bones. The weight transfer didn't work, because it appears to be broken in 2.78c. I couldn't get it to work either. So, I used the data transfer modifier to copy them. Here is the result:

    PinkPants.png

    My steps were as follows:

    Applied all transform/rotation/scale on all meshes.
    Cleared all transform/rotation/scale on all meshes.
    At this point, the pants were changed a bit at the top. So I went into sculpt mode, and adjusted the pants and shirt to fit better.
    The meshes were parented to the armature. I'm not sure what affect this has, but it seems like it could be an issue. Plus I never do it that way, so I unparented the meshes from the armature.
    Some meshes had duplicate armature modifiers, so I removed the duplicates.
    On armature modifiers, the source was missing since I unparented them. so I manually set source armatures to the rig.
    Deleted all vertex groups on all meshes (except the base UMA mesh, of course)
    Then, I transferred vertex groups from the Male Mesh to clothing by:

    Adding the Data Transfer modifier
    Selecting the source mesh (the UMA_Human_Male)
    Select "Vertex" and chosing "Nearest Face Interpolated"
    Select "Vertex Groups"
    Press the "Generate Data layers" button.

    I exported them to FBX by making sure the rig and meshes were on the same layer. (While weight painting, I moved the rig to a new layer so I could have it in a window and easily select bones. I only mention this in case other people do the same thing):

    Selected all mesh and rig objects
    Then, I chose my preset for UMA 25 which is setup with the correct forward/up selections. Chose "selected only". Made sure animation was turned off. And exported the fbx.

    Then, imported them and built slots/overlay/recipes using the slot builder.
     
    Deleted User likes this.
  48. Gohans

    Gohans

    Joined:
    Dec 31, 2016
    Posts:
    9
    Found my misstakes... edited my noob question, sorry about that
     
    Last edited: Jun 5, 2017
  49. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Yous need so send a Comand to the server, then send a ClientRPC to the clients from the server, sounds like you need to read up on network basics : )
    There are loads of resources on how to send messages in UNET, this is the absolute basic system in networking.
     
    Teila likes this.
  50. Pomelo874

    Pomelo874

    Joined:
    May 31, 2017
    Posts:
    22
    when I detach from waist, there must be a seam. I found solution in Maya (smooth each edge), but I don't know how to fix it in 3ds Max, if anybody here could help me? Thanks.:):):)
    waist1.png
    waist2.png