Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    OK, I got farther, but now I get the following warnings after adding and setting up the Ootii Motion Controller component with Sword & Shield pack:

    upload_2018-3-24_12-57-43.png

    And I can't move the character at all. The only thing that happens is that when I press a/d movement keys that he rotates slightly in large incremental steps.
     
  2. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    It looks like you don't have the correct animation controller set. Is "Humanoid" the correct controller?
     
  3. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    955
    Yeah, the Animator Controller doesn't have the parameters necessary for running the Motions.

    I think that the Dynamic Character Avatar component might override a manually assigned animator if it has one set as a default race animator.

    ootii's motion pack setup script should add all of the correct animator parameters, but itsi usually best to make a duplicate of one of Tim's demo animators and use that as a base. I find that my own setup scripts don't assign layer masks and weights properly.
     
  4. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    I don't quite understand the answer. From looking at the Humanoid animator from Ootii that is assigned, it seems to have everything it needs so I don't know why it wouldn't work. Should the Avatar be UMADynamicCharacterAvatar or something from Ootii maybe?
     
  5. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    Humanoid controller did look wrong so I changed it to SwordShield, but that didn't help either.
     
  6. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    I found the issue. When the scene is run, the controller changes to Locomotion from UMA, but if I select the Ootii one at runtime then it's OK and starts working. Just need to figure out why it's changing it on me.

    [EDIT]
    Found it. Under Race Animation Controllers it has Locomotion and I can change it there and it works now. Thanks for everyone's help. I'm sure I'll need more in the future. ;)
     
    kenamis likes this.
  7. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Try setting the correct controller under "Race Animation Controller->Default Animation Controller" and then see if it's getting set correctly at runtime.
     
    magique likes this.
  8. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    955
    It would make more sense to me if the Default Race Animation Controller was only used if there is no animator controller manually set on the AbimsAni component. I've seen this trip up quite a few people (and it's tripped me up before).

    I can't actually think of any reason vwhy I would want the UMA component overriding an animator that I've deliberately assigned.
     
    magique likes this.
  9. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    Now that I finally got past the issues, I'm really enjoying this. I've got it running with Ootii on the Wii U and performance for my game just went up from 26-29 fps to 53-58 fps. I was previously using RFPS and it was a performance killer. But Ootii with UMA 2 is a great combination.
     
    hopeful, kenamis and TeagansDad like this.
  10. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Yea, I agree it trips up a lot of people. I think the original intention was to allow switching controllers based on the uma race selected. I'll add to our improvements list to do something about this problem.
     
    TeagansDad and hopeful like this.
  11. postmanpro

    postmanpro

    Joined:
    Jul 14, 2012
    Posts:
    10
    Thanks! I havent been messing with materials because I was trying to use their set up. makes sense that it was a gloss map... I should have thought of that. For some reason I thought it was specular. Ive been using substance painter. I wish that they could connect substances with their functionality into the UMA materials and overlays... but it would take a LOT of work to do something like that, considering UMA packs all your textures. exc...
     
  12. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    UMA Community -

    @SecretAnorak has updated his Patreon Page with new videos full of UMA goodness:

    https://www.patreon.com/secretanorak/posts

    If you all haven't checked his videos out, now is a good time. Today's videos show how to integrate with OOTI, Opsive and Invector controllers.
     
    mwituni, hopeful and boysenberry like this.
  13. Flegy

    Flegy

    Joined:
    Jan 5, 2017
    Posts:
    30
    Can I stop UMA from creating UMA/InternalDataStore folder in main Asset ?
     
  14. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Well, you can delete it. But lots of things will break if it doesn't exist. That's where the Global Library lives (though you could move it to any resources folder). As well, encryption settings live there, and without them you can't encrypt your asset bundles. And the icons, etc will all give errors.

    So not really. Is it causing a problem?
     
    Flegy likes this.
  15. umbra268

    umbra268

    Joined:
    May 28, 2017
    Posts:
    2
    Whats the simplest way to export a UMA character or two.

    For a project I'm looking to have a couple of predefined characters you can choose from, and I want to make sure that only the assets required for those characters are saved for the project.

    Alternatively I'm also keen to learn any details of if it's possible to import the exported OBJ and textures with the walking animation that's default on the UMADynacmicCharacterAvatar.
     
  16. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    I believe this may be what you're looking for:

    https://forum.unity.com/threads/uni...-skinned-meshes-terrains-and-textures.434348/

    Animations are a different matter, as they're controlled by Mecanim. Probably best to bring the originaly fbx in and just retarget them in your modelling application.
     
  17. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    You could of course use Unlogick's Power Tools. Amongst other things, this UMA addon allows you to save out UMAs as independent models which can be reused without UMA being in your project. Works a treat for making fixed characters.

    Check it out here: https://www.assetstore.unity3d.com/en/#!/content/14249
     
    hopeful likes this.
  18. umbra268

    umbra268

    Joined:
    May 28, 2017
    Posts:
    2
    Thanks for both these suggestions, I'll start doing some investigation into those approaches.

    I'm also wondering what the minimum list of dependencies required when importing UMA to get DynamicCharacterAvatar working, I think if I can do that and configure asset bundles I may be able to get a similar effect where I can dynamically load a asset bundle and programmaticly switch between the few premade characters and allow more flexibility.
     
  19. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    I'm seeing an issue. I have a UMA character and UMA_DCS components in one scene working, but if I copy those items and paste into another scene then my UMA character no longer has the UMADynamicCharacterAvatar reference in the Animator's Avatar property. I thought I could just select that property and assign UMADynamicCharacterAvatar to it, but that doesn't seem to exist anywhere in the project. If I click on that property in the working scene to see where it's getting it from, it doesn't do anything.
     
  20. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Try re-running the bone builder in that new scene. The bone builder is what creates the (temporary) animator avatar during edit time and only because some controllers use the avatar for set up. Normally, UMA doesn't have that created at edit time, it creates it at runtime and (even with the bone builder) recreates it every time the UMA mesh is changed.
     
  21. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    Thanks a million. That worked. I hadn't even thought of that.
     
    kenamis likes this.
  22. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    A DynamicCharacterAvatar is at the top of the UMA food chain, and basically requires everything. Of course, if you don't use some slots and overlays (like the sample clothing) you can remove those.

    Also, if you want to save and use a prefab as a DynamicCharacterAvatar, you shouldn't use the tools, as they'll convert it to a standard mesh and then it will lose all DynamicCharacterAvatar functionality.

    If you want to create and use customizable DCA prefabs, you should follow the wiki here:

    http://umawiki.secretanorak.com/Creating_a_customizable_prefab
     
  23. Hellwaiker

    Hellwaiker

    Joined:
    Jan 8, 2016
    Posts:
    113
    Hey!
    When I'm changing the wardrobe or other stuff on UMA character and then call Build() function. UMA seems to modify the positions of custom game objects I attached to the character hierarchy. Even if I move those objects out of UMA char hierarchy into scene root the position still changes when I call Uma Build() function. I'm guessing UMA is caching the position of every child object? And restoring it afterwards?

    Is there a way to prevent this from happening, like for example by adding some tag or something to custom game objects?
     
  24. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Under "Race Change Options", make sure "Rebuild Skeleton" is turned off.
     
  25. Hellwaiker

    Hellwaiker

    Joined:
    Jan 8, 2016
    Posts:
    113
    @Jaimi Thanks, but that is off and it still happens.
     
    Last edited: Apr 1, 2018
  26. Hellwaiker

    Hellwaiker

    Joined:
    Jan 8, 2016
    Posts:
    113

    Basically here is short video on blank scene of what is happening. (Gameobject X position)
     
  27. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Thanks - I'm able to duplicate this. It's something inside the UMA Generator, so it will take some research. What version of Unity are you using?
     
  28. Hellwaiker

    Hellwaiker

    Joined:
    Jan 8, 2016
    Posts:
    113
    I'm using 2017.3.0.P3, though I can upgrade if it's version dependent.
     
  29. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    No, that's alright - it's not version dependent. I found out what's happening. UMA thinks it's a bone since it was there at initialization, and it resets the object to it's initial transform so that it can apply DNA.

    Fixing this right will be a big complicated snarly mess. Until it's fixed, I recommend that you place "mount points" where you need them, then mount/dismount items in the events. Maybe we can add a component to it that basically says "don't restore this item", and then flag it on the BoneData.
     
    hopeful and boysenberry like this.
  30. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,625
    If I'm understanding this correctly, having mount points is a good approach.

    I also have Mount Points. ;)
     
  31. Jokul_TX

    Jokul_TX

    Joined:
    Oct 30, 2017
    Posts:
    4
    Im trying to wrap my head around this (Unity / UMA noob here). Could I in theory find a Low Poly model character that I like .. make a "race" and change the look of this model to make a "fleet" of similar art style characters. I only ask because I dont see anywhere the Low Poly art style Characters in any of the assets. Everything I see is more "realistic" than the style I prefer
     
  32. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Yes, you could. There was someone quite a few pages back that did this with low poly toon style characters. if you wanted the full breadth of customization, you would need to add adjustment bones or morphs, but you can create a race without them. Secretanorak has a video where he created a race from a jet plane.
     
  33. Jokul_TX

    Jokul_TX

    Joined:
    Oct 30, 2017
    Posts:
    4
    It seemed like it was possible! Awesome. Thanks for the rapid response. Ive watched (and rewatched) a few of Anoraks videos. Havent quite got it mastered! At least I know im moving in the right direction. Baby steps. Baby steps.
     
  34. giotta

    giotta

    Joined:
    May 31, 2015
    Posts:
    48
    Good morning, could someone link some videos where it is explained how to create objects like swords or shields to be inserted on UMA?
    Thank you
     
  35. Hellwaiker

    Hellwaiker

    Joined:
    Jan 8, 2016
    Posts:
    113
    Ah ok thanks.
    If I wanted to write a hack to prevent it meanwhile, with tag/component or something. The BoneData is the class where bones are initialized?
     
  36. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    After thinking about it, I think writing a component that simply saves/restores the transform in the events would be the easiest solution if you want to hack it. I made a quick component to add to the gameobject (attached).

    Place the component on the object that you want to dynamically move.
    Then add the Save to the DynamicCharacterAvatar CharacterBegun event
    and add the Restore to the DynamicCharacterAvatar CharacterUpdated event:

    DynamicTransformSaver.JPG
     

    Attached Files:

    Hellwaiker and hopeful like this.
  37. Kaen_SG

    Kaen_SG

    Joined:
    Apr 7, 2017
    Posts:
    206
    I'm kind of new to UMA myself (6 days of experimenting so far) so I can only offer my 2 cents of what little I know.

    There seems to be 2 ways to do this. (and probably more that I haven't looked into)

    1. Create Left/Right hand Slots for your Weapons and attach those to your Races. This is probably not the best way to do it as you will end up making a ton of slots for the various weapon types you plan on supporting.

    2. Use an asset such as Ootii 3rd person motion controller (look at the Sword and Shield Motion pack), Invector TPC or Opsive's TPC. They all provide some means of equiping your UMA with weapons at runtime. There are many other assets that will also do this so its a matter of preference, UFPS, Realistic FPS prefab etc will all handle this as well so pick the one which works best for your project.
     
  38. giotta

    giotta

    Joined:
    May 31, 2015
    Posts:
    48
    Thank you for your answer.
    I am able to mount the weapons also by hand, the problem is that every time I stop the game, and then repress play, I lose the objects that I attacked
     
  39. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Are you adding the weapons at runtime? Then this is expected. Changes at runtime are not saved. If you're wanting to persist them in the scene, they'll need to be added at design time (you'll need to use the bonebuilder).

    If you're saying that you're adding them already at design time, then they're disappearing after you run the game twice, then that is really wonky - I'd need instructions on how to duplicate it to be able to look at it.
     
  40. giotta

    giotta

    Joined:
    May 31, 2015
    Posts:
    48
    Thanks for your reply, do you have any tutorials on bone builder? I tried to write Uma 2 bone builder on YouTube but I found nothing
     
  41. Kaen_SG

    Kaen_SG

    Joined:
    Apr 7, 2017
    Posts:
    206
    That is because the UMA characters are dynamically generated at runtime. For this to work manually you first need to use "UMA -> Bone Builder" then drag your DCS character gameobject into the field and click generate bones. Now you can place your weapons/objects into the hands (expand the bone structure and search for the hands) and they will work fine when you hit play.
     
  42. giotta

    giotta

    Joined:
    May 31, 2015
    Posts:
    48
    oh my god, love you
     
  43. giotta

    giotta

    Joined:
    May 31, 2015
    Posts:
    48
    I mounted the weapons correctly but in the console I have this error that pops up every time I launch the game
    AddBonesRecursive: skull shield already exists in the dictionary!
     
  44. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Do you have more than one "skull shield" gameobject in the uma's hierarchy? if so, you'll need to rename one. UMA relies on unique bone names.
     
    hopeful likes this.
  45. giotta

    giotta

    Joined:
    May 31, 2015
    Posts:
    48
    ok, solved, thank very much man
     
    kenamis likes this.
  46. Kaen_SG

    Kaen_SG

    Joined:
    Apr 7, 2017
    Posts:
    206
    Glad that helped! Welcome to UMA! :D
     
  47. Hellwaiker

    Hellwaiker

    Joined:
    Jan 8, 2016
    Posts:
    113
    Thank you, though position of my objects changes during the gameplay. I guess it's possible to resave positions before I'm calling the Uma Build, but even on Uma Character creation some weird repositioning happens on object created at runtime. So it might be easier if Uma ignored the objects I create. I'll have to test.

    Thank you again!
     
  48. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    The component I posted saves it before build and restores it afterward. So you should be able to move it all you want. :)
     
  49. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    What is it that you're trying to do that requires changing the local position of objects in the uma hierarchy?
     
  50. Hellwaiker

    Hellwaiker

    Joined:
    Jan 8, 2016
    Posts:
    113
    @Jaimi
    Ah the Character Begun is called before every build update? I thought it was called first time char was built. But I guess Uma does not need to distinguish between first/later updates because bones can change. hmm.


    To test the tag approach.
    I edited the UmaSkeleton script files AddBonesRecursive function. Where I check if Transform has a tag and exit function if it does. It seems to work.

    @kenamis
    I have Final IK Effectors that help set some character IK poses. The effectors animate with hip bone animation, so it looks more natural.