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. jumporfall

    jumporfall

    Joined:
    Nov 27, 2014
    Posts:
    6
    Hello, I was following this tutorial to create new race.

    When I try to run UMA with my new race I get these errors:
    Code (CSharp):
    1. EnsureBoneHierarchy: Global parent not found in dictionary!
    2. UnityEngine.Debug:LogError(Object)
    3. UMA.UMASkeleton:EnsureBoneHierarchy() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMASkeleton.cs:680)
    Code (CSharp):
    1. Exception in UMAGeneratorBuiltin.OnDirtyUpdate: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
    2.  
    and then bunch of "Bones do not match Bind Pose".

    I followed UMA standard of Root->Global->Position->Hips etc. bone format.
    What could be the cause of this?
     
  2. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Yeah - to the generator, it's just a set of data that needs to be generated, so the CharacterBegun event is called each time. If the character is pooled, it can be completely different, so it's all done from scratch.
     
  3. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    it can't find the bones it's looking for. Did you create a new base race recipe?
     
  4. jumporfall

    jumporfall

    Joined:
    Nov 27, 2014
    Posts:
    6
    Yes new race. I tried same with Uma male Model that comes with UMA. And I think I found the cause.
    It's the slot builder. With Uma Male model I can leave the root bone string as Global, and the slot is building.
    With my own mesh if I set root bone string as Global, I get the following error,

    Code (CSharp):
    1. ArgumentNullException: Argument cannot be null.
    2. Parameter name: key
    3. System.Collections.Generic.Dictionary`2[UnityEngine.Transform,UMA.UMATransform].ContainsKey (UnityEngine.Transform key) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:458)
    4. UMA.UMAMeshData.UpdateBones (UnityEngine.Transform rootBone, UnityEngine.Transform[] bones) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAMeshData.cs:548)
    5. UMA.UMAMeshData.RetrieveDataFromUnityMesh (UnityEngine.SkinnedMeshRenderer renderer) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAMeshData.cs:473)
    6. UMA.SlotDataAsset.UpdateMeshData (UnityEngine.SkinnedMeshRenderer meshRenderer, System.String rootBoneName) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/SlotDataAsset.cs:123)
    7. UMA.Editors.UMASlotProcessingUtil.CreateSlotData (System.String slotFolder, System.String assetFolder, System.String assetName, UnityEngine.SkinnedMeshRenderer mesh, UMA.UMAMaterial material, UnityEngine.SkinnedMeshRenderer prefabMesh, System.String rootBone) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/Editor/UMASlotProcessingUtil.cs:190)
    8. UMA.Editors.UmaSlotBuilderWindow.CreateSlot_Internal () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/Editor/UmaSlotBuilderWindow.cs:211)
    9. UMA.Editors.UmaSlotBuilderWindow.CreateSlot () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/Editor/UmaSlotBuilderWindow.cs:144)
    10. UMA.Editors.UmaSlotBuilderWindow.OnGUI () (at Assets/UMA/Core/StandardAssets/UMA/Scripts/Editor/UmaSlotBuilderWindow.cs:90)
    11. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    12. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    13. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    14. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    15. UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:295)
    16. UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:288)
    17. UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:255)
    18.  
    So to fix this I thought I needed to set root bone string to what was the root of my skeleton. By doing this I was able to create the slot, but I got the EnsureBoneHierarchy error on Runtime.

    Then I tried building slot with Uma male mesh, but I set the root bone name string to "UMA_Male_Rig" which is the skeleton root of the Uma Male mesh. The slot was created this way, but when I run Uma I get the same EnsureBoneHierarchy error as with my mesh.

    To summarize:
    1) My Mesh + Slot Builder Root Bone String set to Global = Slot builder crasher
    2) My Mesh + Slot Builder Root Bone String set to real skeleton root name = Uma runtime crashes with EnsureBoneHierarchy error

    3) Uma Mesh + Slot Builder Root Bone String set to Global = Everything works fine
    4) UmaMesh + Slot Builder Root Bone String set to real skeleton root name = Uma runtime crashes with EnsureBoneHierarchy error


    This is image of Uma and My Mesh bone structures. I even tried renaming my root bone to random name in case this was the issue but nothing changed.

    What could prevent Slot Builder from reading the Global skeleton object in my mesh?

    This is what I mean by Root Bone string:
     
  5. jumporfall

    jumporfall

    Joined:
    Nov 27, 2014
    Posts:
    6
    Is the size of the mesh important? The Uma base mesh is 100 times smaller, and mine is 1x1 with unity units?
     
  6. Cleverlie

    Cleverlie

    Joined:
    Dec 23, 2013
    Posts:
    219
    Hi everyone, I'm starting to use UMA for my projects, I already viewed all the UMA 101 tutorials on youtube so I have a minimal grasp of how UMA works, now I have a question, this is a specific feature that I need in my project, I don't think UMA can do this but being it a beast of a framework maybe it was already given a thought or even implemented:

    I need to create kind of a virtual dressing room where you can dress your virtual avatar with different clothes, the clothes are actually objects that contain 1. a recipe (cloth to be used by the avatar) 2. measurements constrains 3.other data.

    the measurement constrains are used to filter or block some clothes from being used, example: you avatar has a waist measurement of 43cm, the cloth has a restriction to be used only in the range between 39cm and 42cm, then I filter out this cloth to not be shown for the avatar.

    Main idea is the user inputs its Waist, hip, busts, etc measurements and the avatar shows this visually by adjusting some of the DNA, but at the same time the list of available clothes should show only clothes that fit the user.

    Is there a way to measure the avatar (3d model) waist size, hips size etc, to have a 1 to 1 relation? thanks!
     
  7. jumporfall

    jumporfall

    Joined:
    Nov 27, 2014
    Posts:
    6
    The size was the problem. Weird.
     
    hopeful likes this.
  8. Kaen_SG

    Kaen_SG

    Joined:
    Apr 7, 2017
    Posts:
    206
    Disclaimer: I am still a noob at UMA but I've played around with it for about a week now :D

    In these scenarios, UMA can already do what you want. It requires some work of course.

    You can do this by creating slots of the body mesh for various sizes (eg. 39cm-42cm, 36cm-38cm etc) then write a script to change slots whenever the corresponding body part size/blendshape gets too big or too small (assuming you have sliders for the user to grow/shrink each bodypart) then switch to the new bigger or smaller slot size.

    Your clothing recipes can be easily tied to specific body slot sizes so clothing pieces can be scripted to only show up if the avatar can fit the clothes :)
    There are other alternatives I can think of but I think this one is easier.

    At runtime, you can resize the body mesh you are using till it fits whatever measurement you are using. Write a script to always generate the same size/blendshape that corresponds to your defined measurements. And then attach it to your DCA's so that they always show up with your new defaults.

    Easy peasy! :D
     
    Last edited: Apr 3, 2018
  9. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    You resolved all your issues with the slot builder, Global/Root, etc?
     
  10. jumporfall

    jumporfall

    Joined:
    Nov 27, 2014
    Posts:
    6
    Yeah. Making model 100 times smaller fixed everything. I'm not sure what the model size had to do with hierarchy. Maybe the size was crashing something else and the error showed up in hierarchy code.
     
  11. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Weird.
    The model should be reasonably sized. The UMA models are very small in their fbx file but scaled up on the import settings (I think this was because of before the "use file scale" option).
    So, if you dragged your fbx into the scene, is it approximately the correct size now? or is it now super small? if it's size is correct now, did the slot builder not warn you that the size was too large?
     
  12. jumporfall

    jumporfall

    Joined:
    Nov 27, 2014
    Posts:
    6
    I had to scale mine in FBX import settings by 100 to get it to correct scale. It's the source file model scale that was causing the issue.
     
  13. Firlefanz73

    Firlefanz73

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

    two questions:

    - Did anybody try Unity 2018 with UMA yet, is it working? Because of the threading stuff I want to upgrade as soon as it is official (if possible)
    - Are there new about the UWP compatibility? With next UMA Version?

    Thanks :)
     
  14. Kaen_SG

    Kaen_SG

    Joined:
    Apr 7, 2017
    Posts:
    206
    Me and Kenamis have been hacking away at it today. It's a WIP.

    UMA will work out of the box with 2018 beta13 on the built-in render pipeline.

    UMA will definitely NOT work out of the box with the HD or Lightweight render pipelines without some fixes.

    Also another often overlooked factor is that if you DO use the HD or LW render pipelines... bear in mind that *ALL* of your assets that use shaders will NOT WORK. That means your megasplats, clouds, weather systems, etc... they will all be broken (until they release updates)! Still in a rush to upgrade? thought so! ;)
     
  15. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,300
    Thanks for the info!

    I am not in a rush. I just would like to give it a try with the built-in render Pipeline which is still the Default I guess?
    And not yet, as soon as it leaves beta state and gets official.

    I hope my Performance Problems will get better with 2018 when it Comes to threading :)

    Thanks and keep up the great work! UMA is great and very useful.
     
    Kaen_SG likes this.
  16. NeonTheCoder

    NeonTheCoder

    Joined:
    Feb 1, 2014
    Posts:
    40
    Hi I am trying to create a new prefab with DynamicCharacterAvatar via script.
    The only problem is the scripts that are also needed on the object need to be enabled when the avatar is created, due to needing the animation avatar. I fix this manually by adding the scripts to the CharacterCreated event and enabling them.
    However I cannot find out how to do this as adding to the listener I get a null reference exception error.

    This is what I am trying to accomplish via code:
    This is my code:
    Code (CSharp):
    1.  
    2. DynamicCharacterAvatar avatar = prefab.AddComponent<DynamicCharacterAvatar>();
    3. //....              
    4. avatar.CharacterCreated.AddListener(DealWithCharacterOnCreation); //Error here
    5. //....
    6. }
    7.   public void DealWithCharacterOnCreation(UMAData UMAData) {
    8.         UMAData.gameObject.GetComponent<Inventory>().enabled = true;
    9.         UMAData.gameObject.GetComponent<ItemSlots>().enabled = true;
    10.         UMAData.gameObject.GetComponent<CharacterControler>().enabled = true;
    11.     }
    12.  
    The code would not work either way even if I could add the listener because GetComponent does not find disabled components unfortunately. Through testing I found that the Listener on premade objects has a function called set_enabled but that's it. However I couldn't even get that debugged because the AddListener function always nullreferences on me and I am unsure why, because the gameobject in the scene has the DynamicCharacterAvatar behavior and the reference cannot be null.

    This generally would not be a problem if the avatar generated by the bone generator would stick until after the new one is generated but it disappears if you make a prefab of the gameobject.
     
  17. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Perhaps add a public reference to the components you need to enable/disable. Then you don't have to call GetComponent to find them.

     
  18. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    I'm seeing a strange issue with UMA 2 and Opsive's TPC. I tried troubleshooting with Opsive, but it doesn't appear to be directly related to their code as far as we can tell. The issue is that when I run the scene in the editor in Maximize On Play mode or on the target (Wii U), the character cannot jump even though Opsive's code is determining that it should be able to start that ability. If I mash buttons to try attacking, moving, jumping then eventually it gets out of this "stuck" state.

    Now, if I simply run the scene with Maximize On Play turned off then it doesn't have this issue. This reminded me of an issue with Vegetation Studio in beta where it would fail to work correctly if Maximize was on. Lennart said that it had something to do with a bug trying to get sceneview and there not being one in that maximize mode. Might there be some code in UMA 2 that relies on this mechanism as well?
     
  19. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    The only code I'm aware of that checks the sceneview is all editor code - and it's only when you're editing a "Mesh Hide Asset". I specifically checked if the LastActiveSceneView was null as well (it's null when a scene has never been open in the session). So I don't think this has anything to do with the getting stuck issue.
    More likely it's something with the colliders or rigidbody, either getting stuck on something, or the Opsive controller not recognizing that the character is "grounded" (and able to jump) because it's raycasting from below the floor.

    Does it fix itself if you switch to the SceneView, and manually lift your character off the floor?


     
  20. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    I thought about this, but that doesn't appear to be the case. I put the UMA 2 Opsive character in just a scene with a simple plane for the floor and it still happens, but only when the Maximize On Play is selected.

    Not this either as I've debugged that and it is reporting that Jump.CanStartAbility is true. Yet it never actually gets to the Jump.AbilityStarted.

    No, it simply falls back to the floor and is stuck again.
     
  21. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Even with 2018 support and LW/HD srp support, it won't make UMA multithreaded, unfortunately.

    What performance problems are you having?
     
  22. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    What assets/components are requiring the animation avatar? and why?
     
  23. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Couldn't some other state have higher priority be interrupting what you are expecting to happen (that other state is getting executed instead)? I forget if TPC has a way to debug that or not.
     
  24. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    Doubtful. Remember that this problem all goes away by simply changing from Maximize On Play to not maximizing on play.
     
  25. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Did you remove the "CapsuleColliderRecipe" from the "Additional Utility Recipes" section? If not, that should be removed for any third party controller.

    If that's not it, I'm clueless. I don't have Opsive, maybe someone else can give more info, or the Opsive team might be able to assist.
     
    hopeful likes this.
  26. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Have you tried to build the project and run in different resolutions? what happens then?
     
  27. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    I was not aware of this step. When I get home I'll give it a try and report the results.
     
  28. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    No, I only ran in 720p mode.
     
  29. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,300
    Not performance problems with UMA. Problems with my chunk based environment.
    Thanks for the interest :)
     
  30. NeonTheCoder

    NeonTheCoder

    Joined:
    Feb 1, 2014
    Posts:
    40
    That's not the main problem. Providing add listener with any function or even just a blank delegate returns a nullreferenceexception.

    CharacterController, InventorySystem. Needs the bone structure. CharacterController has an IK and it cannot find the bones without the avatar as it uses the unity humanoid bone system.
     
    Last edited: Apr 5, 2018
  31. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Okay, the ones I've seen usually only access the avatar once and cache the necessary data/transforms, but if they aren't serializing it and grabbing the data in a start function, I could see that causing issues.

    You should still be able to add the listeners like you're trying. I see in the code you posted:
    Is that exactly how it is? I don't see how the parameter would have compiled being named the same as the class. Try using (UMAData umaData) instead?
     
  32. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    Unfortunately this didn't help. I will continue to debug on the Opsive side to see if I can find anything. This is certainly bizarre.
     
  33. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    Well, this actually turned out to be the answer. Fall was first in the list before the Jump ability and was preventing it from working. But why this has anything to do with Maximize On Play is beyond me. Because it only seems to care about this priority in Maximize or stand-alone mode.
     
    kenamis likes this.
  34. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,013
    OK, I have a new issue. I've been some testing in an empty scene with just a plane for the ground and some AI. When I was running the scene I suddenly noticed this gray character in the distance moving identical to my UMA player character. I paused the game and took a closer look and it's an untextured/unclothed clone of my player character. In the scene hierarchy it's identified as Character Name(Clone). It is getting created when I run the scene. What in the world is this clone doing running around in the distance in the scene?

    [EDIT]
    Hmmmm. Seems to be some weird thing with ICE Creature Control. I think it's creating the clone for some reason. Sorry for the false alarm.
     
    kenamis likes this.
  35. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Glad I could help :)
     
    magique likes this.
  36. ZoeZoePixel

    ZoeZoePixel

    Joined:
    Feb 4, 2015
    Posts:
    16
    can someone help me? i was making a custom race with a body slot and a head slot and the head slot has blendshapes. when i try to use the slot builder for the head mesh this error comes out

    it points to this line

    Code (CSharp):
    1. sourceMesh.GetBlendShapeFrameVertices(shapeIndex, frameIndex, deltaVertices, deltaNormals, deltaTangents);
    Code (CSharp):
    1. ArgumentException: GetBlendShapeFrameVertices() output arrays size must match mesh vertex count
    2. UMA.Editors.UMASlotProcessingUtil.BuildNewReduceBonesMesh (UnityEngine.Mesh sourceMesh, System.Collections.Generic.Dictionary`2 usedBonesDictionary) (at Assets/BaseAssets/Library/UMA/Core/StandardAssets/UMA/Scripts/Editor/UMASlotProcessingUtil.cs:256)
    3. UMA.Editors.UMASlotProcessingUtil.CreateSlotData (System.String slotFolder, System.String assetFolder, System.String assetName, UnityEngine.SkinnedMeshRenderer mesh, UMA.UMAMaterial material, UnityEngine.SkinnedMeshRenderer prefabMesh, System.String rootBone) (at Assets/BaseAssets/Library/UMA/Core/StandardAssets/UMA/Scripts/Editor/UMASlotProcessingUtil.cs:145)
    4. UMA.Editors.UmaSlotBuilderWindow.CreateSlot_Internal () (at Assets/BaseAssets/Library/UMA/Core/StandardAssets/UMA/Scripts/Editor/UmaSlotBuilderWindow.cs:211)
    5. UMA.Editors.UmaSlotBuilderWindow.CreateSlot () (at Assets/BaseAssets/Library/UMA/Core/StandardAssets/UMA/Scripts/Editor/UmaSlotBuilderWindow.cs:144)
    6. UMA.Editors.UmaSlotBuilderWindow.OnGUI () (at Assets/BaseAssets/Library/UMA/Core/StandardAssets/UMA/Scripts/Editor/UmaSlotBuilderWindow.cs:90)
    7. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    8. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    9. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    10. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    11. UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:291)
    12. UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:284)
    13. UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:251)
    14.  
     
    Last edited: Apr 6, 2018
  37. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Does your head fbx work in the scene okay? If you inspect the skinned mesh renderer do you see the blendshapes on it?
     
  38. ZoeZoePixel

    ZoeZoePixel

    Joined:
    Feb 4, 2015
    Posts:
    16
    yep they all work :/
     
  39. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    Try changing in "UMASlotProcessingUtil.cs" in function "BuildNewReduceBonesMesh" at roughly line; 249
    change
    Code (csharp):
    1.  
    2. Vector3[] deltaVertices = new Vector3[sourceMesh.vertices.Length];
    3. Vector3[] deltaNormals = new Vector3[sourceMesh.normals.Length];
    4. Vector3[] deltaTangents = new Vector3[sourceMesh.tangents.Length];
    5. for (int shapeIndex = 0; shapeIndex < sourceMesh.blendShapeCount; shapeIndex++)
    6.  
    to

    Code (csharp):
    1.  
    2. Vector3[] deltaVertices = new Vector3[sourceMesh.vertices.Length];
    3. Vector3[] deltaNormals = new Vector3[sourceMesh.vertices.Length];
    4. Vector3[] deltaTangents = new Vector3[sourceMesh.vertices.Length];
    5. for (int shapeIndex = 0; shapeIndex < sourceMesh.blendShapeCount; shapeIndex++)
    6.  
     
  40. ZoeZoePixel

    ZoeZoePixel

    Joined:
    Feb 4, 2015
    Posts:
    16
    thx =^.^=
     
  41. ZoeZoePixel

    ZoeZoePixel

    Joined:
    Feb 4, 2015
    Posts:
    16
    does uma support vertex colors? i has a shader tht uses vertex colors for shader input... so.. they kinda important?

    my slots data files look fine but when i run uma the vertex colors dont work :/
     
  42. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    It does, did you make an uma material and assign it to the slots and overlays that uses that shader?

    Did that code change fix your blendshape issue?
     
  43. ZoeZoePixel

    ZoeZoePixel

    Joined:
    Feb 4, 2015
    Posts:
    16
    the code did fix the Blendshape :)
    and yes the materials are fine too its just tht the vertex colors arent geting combined at runtime....

    also my slot mesh data file has its vertex colors correct....
     
  44. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    386
    UMA combines colors32, but not colors. Maybe your shader is using the colors attribute instead of colors32?
    If you really need the colors (instead of colors32), that could be easily added.

    EDIT: Looks like colors or colors32 looks the same to the shader. I think it's an issue with your material/umaMaterial. At runtime, if you expand your uma object and select the "renderer" gameobject with the skinnedMeshRenderer on it, what material(s) does it have on it? and does it have your shader set on it?
     
    Last edited: Apr 6, 2018
  45. giotta

    giotta

    Joined:
    May 31, 2015
    Posts:
    48
    Hi, I have a little problem (I think with UMA).
    On my DynamicCharacterAvatar I set the Save/Load to persistent Data Path-> Character recipes and the filename. In unity everything works correctly, but if I build my game, the character is not imported.
    Why?
     
  46. ZoeZoePixel

    ZoeZoePixel

    Joined:
    Feb 4, 2015
    Posts:
    16
    srry for the late reply but no they have the materals but the vertex colors are screwed up :/
    i did however have to edit a script tht generates my vertex colors so the one of the rgb value are switched so tht its right.... maybe theres somthing too tht? i think the reason why i have to do tht is becuase i use blender which has different axis setup....

    EDIT: just to clarify my outlines shows correctly in the slot prefab however when build a dynamic avater the outlines are shown howver scewed which practily means tht the vertex colors are mesed up....
     

    Attached Files:

    Last edited: Apr 7, 2018
  47. Cleverlie

    Cleverlie

    Joined:
    Dec 23, 2013
    Posts:
    219
    Hi everyone, I'm stuck with something, maybe somebody can help me, I have an avatar customizer menu kinda working, with sliders that alter at runtime the dna of the avatar, what I want to achieve in code now is that the body material/overlay that the HumanMaleDCS uses by default slowly fades from the M_Bod Overlay 1 (which is the texture with abs and muscles) to the M_Bod smooth (which is the one without abs and muscles), this way, when I move the dna weight/belly slider from .5 to 1, not only the mesh of the avatar changes to bring more weight/fat, but also the abdominals fade away.

    can anyone help me achieving this? I'm still learning UMA and I don't know how to add an overlay on runtime or make it fade (mixing albedos and normals)
     
  48. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Most likely a problem with the path. I'd suggest to save to/from strings, and then handle the IO yourself.
     
  49. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    Kenamis did this in a branch, but it's not in the standard code yet I don't think (maybe 2.8?)
    It's not as easy as it sounds in 2.7 - The simplest thing to do is to make 2 or 3 "in between" textures and normals in photoshop (or photopea online) and then switch them out with a wardrobe recipe.
     
    Cleverlie likes this.
  50. markashburner

    markashburner

    Joined:
    Aug 14, 2015
    Posts:
    212
    Hi

    I have been trying to create my own race following SecretAnoraks race creation tutorial.

    However I have run into a problem it seems with my monster race:

    It says UMA Data not loaded?

    I have the MonsterBase Recipe asset and the T_Pose
    MonsterBody_Skinned.prefab.
    MonsterBody_Slot asset
    MonsterBodyOverlay asset
    MonsterRaceData



    So what am I missing?

    Thanks
     

    Attached Files:

    • UMA.jpg
      UMA.jpg
      File size:
      253.8 KB
      Views:
      886
    jhonidesouza0 likes this.