A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'Assets and Asset Store' started by FernandoRibeiro, Dec 24, 2013.
Is UMA support the LOD?
It does. There is an UMASimpleLOD script. There should be a sample scene with it. It does texture LOD and mesh LOD (if you select the switch slots option) but you need LOD slots. Default UMA package doesn't have slots.
o3n UMA Races have an LOD package on UAS though.
SecretAnorak has a complete tutorial for using the bone builder and integrating with Opsive:
Make sure you have set the correct Animator Controller for the race (or the default) in the "race animation controllers" section of the DynamicCharacterAvatar.
thanks! Easiest workaround ever.
Hi. I have some problems with building texture atlas. Overlay looks fine as original textures. In gamemode textures changed and i cant understand this(normal map: random shuffle channels; albedo - darker then original), but other assets works fine. Unity 2018.2.10f1 and UMA 2.7
There was a bug I fixed when saving texture atlases to disk. This also affected the textures if the "Convert Render Textures" option is selected. This is fixed in the current Develop branch on github (waiting for 2.8 RC to be released - in a week or so). This could affect you differently - if you're not converting render textures, then it could be that saving and looking at the textures is wrong. If you are converting, then they come out miscolored.
But your normal map looks completely wrong. like the color channels are flipped. There is a section of code where it does flip RGB->BGR if you have "convert render textures" selected, and you are on a Mac (due to a unity bug). If that is the case, perhaps it is no longer needed?
Anyway - here's things to check: Is your texture marked as a normal map in the import settings? Is the channel marked as a normal map in the UMAMaterial? Do you have "Convert Render Textures" turned on in the Generator settings? Are you on a Mac?
1. Yes, texture marked as normal map.
2. UMAMaterial normal map marked as normalmap.
3. By default "Convert Render Testures" disabled and turning on/off doesn't help(
4. No, Windows 10
If you're dumping the textures out and looking at them, first thing to do is fix the bug with dumping textures. in UMALoadSaveMenuItems.cs, replace the "GetRTPixels" function with this one:
static public Texture2D GetRTPixels(RenderTexture rt)
// Remember currently active render texture
RenderTexture currentActiveRT = RenderTexture.active;
// Set the supplied RenderTexture as the active one
RenderTexture.active = rt;
// Create a new Texture2D and read the RenderTexture image into it
Texture2D tex = new Texture2D(rt.width, rt.height,TextureFormat.ARGB32,false,true);
tex.ReadPixels(new Rect(0, 0, tex.width, tex.height), 0, 0);
// Restore previously active render texture
RenderTexture.active = currentActiveRT;
All that really does is turn on the HDR flag. Without that, the textures will all come out way darker and be slightly off color.
Other than that, can you post a picture of the UMAMaterial?
Problem solved with changing 32bit images to 16bit
Hello guys, I'm trying to implement a new race into my project but i have a warning :
Could not claim shared submesh buffer of size: 309336
UMA.UMAMeshData:GetSubmeshBuffer(Int32, Int32) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAMeshData.cs:407)
UMA.SkinnedMeshCombiner:CombineMeshes(UMAMeshData, CombineInstance, BlendShapeSettings) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/SkinnedMeshCombiner.cs:64)
UMA.UMADefaultMeshCombiner:UpdateUMAMesh(Boolean, UMAData, Int32) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:170)
UMA.UMAGeneratorBuiltin:UpdateUMAMesh(Boolean) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:282)
UMA.UMAGeneratorBuiltin:HandleDirtyUpdate(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:226)
UMA.UMAGeneratorBuiltin:OnDirtyUpdate() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:265)
UMA.UMAGeneratorBuiltin:Work() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:132)
UMA.UMAGeneratorBuiltin:Update() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:97)
And there is noMesh Avatar into my scene. With standard body it's working
I have flolowed the tutorials from Secret Anorak and i have split my body mesh into Head and Body
Did you have an idea ?
What size is your mesh (number of vertexes, triangles)? Currently UMA only supports meshes with up to 64K verts and tris (for compatibility with old UMA).
my body part have 68k tris and my unified body have 108k
I will try to look how decrease number of tris.
Might turn this into a check box where a check enforces the 64k limit?
Yeah, we should probably just warn them right off, or detect it and switch over to 32 bit mesh buffers.
An automatic switch when detected would be fine by me.
All - we've released a Release Candidate of UMA 2.8:
The minumum version of Unity for this release is 2017.1.
Highlights of the 2.8 release are as follows:
UMA 2.8 Release Candidate
The minumum supported release of Unity is now Release 2017.1
Reworked Blendshapes, improved API, optimized.
Improved performance in expression player.
Ability to set texture properties on the UMMaterial (aniso level, trilinear filtering, mipmap bias).
Ability to downsample textures at atlas build time (in UMAMaterial).
Ability to hide any slot from a wardrobe (not just base slots)
Improved Physics Avatar.
UMAMeshData is now clonable
Fixed issue with removed slots when using MeshHideAssets
Cleaned up error reporting for duplicate bones
Support for UWP build using IL2CPP
Updated queue on hair shader and materials for improved look against skyboxes
Added Timeline Clips for Race, Colors, DNA, and Wardrobe
Mouse orbitor now takes a bone to look at (instead of a bone path)
and many more bug fixes and optimizations
Add race updater to update base race overlays to new materials
UMAGenerator atlas size is now a dropdown list
Added progress bar when adding items to Global Lib via drag/drop or rebuild.
Added Re-orderable list to Dynamic DNA
Lot of enhancements to the Mesh Hide system:
- Ability to view and export UV map (With alpha for selected polys)
- Ability to select base slots from dropdown.
- Symmetry paint mode
Ability to create wardrobe recipes from hierarchy and slot builder
Tags editor to mass tag UMA assets (and remove UMA tags)
Copy/Paste DCA Wardrobe
Add progress bars to global library
Added TPose inspector
Menu item to create Dynamic DNA
Ability to edit edit multiple SlotdataAsset and OverlayDataAsset in the inspector
Morph DNA editor added
Help text added to most scenes
DCA Sample accessory mounting scene added
Fixed small issue with not found colors in Asset Bundle scene
Timeline sample scene showing how to morph, recolor, change sex, and change wardrobe.
1000 likes! I'm always so glad to see improvements to UMA. You guys are doing a great job!!!
Jaimi Thanks for your help a few days ago it got me to the right direction regarding the Animator.
That being said i am having another issue and this has to do with a tutorial i am working on from Udemy. I am learning more about AI and creating my own animations to work with UMA in the future and i am using his models and then adding the same codes to the UMA so i can see them work side by side and try to fully understand some more about Animations and State-machines as i cont to Learn. I am However running into an issue with my codes working perfectly with a mixamo character but when i use the same codes on my Uma i can see my animations working but the Nav agent which is driving some of my AI and code driving other parts are not working properly with the UMA Character. Im adding a video and seeing if anyone can point me in the right direction.
I am using my turns in my code im not sure if this helps any but this is i believe the script handling this event(In the Update section between 102-120 is the turning area)
if i change my turn on spot threshold then i can get him to turn but he has to stop and turn not continuous motion. the stop and turn is what he does in the beginning, And it doesnt look as good if he has to drop to a different state to turn rather than turning as he is running or walking , so the issue is in that section i believe and it works with a Mixamo character with same code and animation but not with the UMA character
// CLASS : AIZombieState_Patrol1
// DESC : Generic Patrolling Behaviour for a Zombie
public class AIZombieState_Patrol1 : AIZombieState
// Inpsector Assigned
[SerializeField] float _turnOnSpotThreshold = 80.0f;
[SerializeField] float _slerpSpeed = 5.0f;
[SerializeField] [Range(0.0f, 3.0f)] float _speed = 1.0f;
// Name : GetStateType
// Desc : Called by parent State Machine to get this state's
public override AIStateType GetStateType()
// Name : OnEnterState
// Desc : Called by the State Machine when first transitioned into
// this state. It initializes the state machine
public override void OnEnterState()
Debug.Log ("Entering Patrol State");
if (_zombieStateMachine == null)
// Configure State Machine
_zombieStateMachine.NavAgentControl (true, false);
_zombieStateMachine.seeking = 0;
_zombieStateMachine.feeding = false;
_zombieStateMachine.attackType = 0;
// Set Destination
_zombieStateMachine.navAgent.SetDestination( _zombieStateMachine.GetWaypointPosition( false ) );
// Make sure NavAgent is switched on
// Name : OnUpdate
// Desc : Called by the state machine each frame to give this
// state a time-slice to update itself. It processes
// threats and handles transitions as well as keeping
// the zombie aligned with its proper direction in the
// case where root rotation isn't being used.
public override AIStateType OnUpdate ()
// Do we have a visual threat that is the player
_zombieStateMachine.SetTarget ( _zombieStateMachine.VisualThreat );
_zombieStateMachine.SetTarget ( _zombieStateMachine.VisualThreat );
// Sound is the third highest priority
_zombieStateMachine.SetTarget (_zombieStateMachine.AudioThreat );
// We have seen a dead body so lets pursue that if we are hungry enough
// If the distance to hunger ratio means we are hungry enough to stray off the path that far
if ( (1.0f- _zombieStateMachine.satisfaction) > (_zombieStateMachine.VisualThreat.distance/_zombieStateMachine.sensorRadius) )
_stateMachine.SetTarget ( _stateMachine.VisualThreat );
// If path is still be computed then wait
_zombieStateMachine.speed = 0;
_zombieStateMachine.speed = _speed;
// Calculate angle we need to turn through to be facing our target
float angle = Vector3.Angle (_zombieStateMachine.transform.forward, (_zombieStateMachine.navAgent.steeringTarget - _zombieStateMachine.transform.position));
// If its too big then drop out of Patrol and into Altered
if (angle > _turnOnSpotThreshold)
// If root rotation is not being used then we are responsible for keeping zombie rotated
// and facing in the right direction.
// Generate a new Quaternion representing the rotation we should have
Quaternion newRot = Quaternion.LookRotation (_zombieStateMachine.navAgent.desiredVelocity);
// Smoothly rotate to that new rotation over time
_zombieStateMachine.transform.rotation = Quaternion.Slerp( _zombieStateMachine.transform.rotation, newRot, Time.deltaTime * _slerpSpeed);
// If for any reason the nav agent has lost its path then call the NextWaypoint function
// so a new waypoint is selected and a new path assigned to the nav agent.
if (_zombieStateMachine.navAgent.isPathStale ||
_zombieStateMachine.navAgent.SetDestination(_zombieStateMachine.GetWaypointPosition ( true ));
// Stay in Patrol State
// Name : OnDestinationReached
// Desc : Called by the parent StateMachine when the zombie has reached
// its target (entered its target trigger
public override void OnDestinationReached ( bool isReached )
// Only interesting in processing arricals not departures
if (_zombieStateMachine == null || !isReached)
// Select the next waypoint in the waypoint network
if (_zombieStateMachine.targetType == AITargetType.Waypoint)
_zombieStateMachine.navAgent.SetDestination (_zombieStateMachine.GetWaypointPosition ( true ));
// Name : OnAnimatorIKUpdated
// Desc : Override IK Goals
/*public override void OnAnimatorIKUpdated()
if (_zombieStateMachine == null)
_zombieStateMachine.animator.SetLookAtPosition ( _zombieStateMachine.targetPosition + Vector3.up );
_zombieStateMachine.animator.SetLookAtWeight (0.55f );
@Jschilz1 briefing looking at your code, it looks like you're relying on no root motion for turning. Do you have "useRootMotion" on, on the UMA animator by any chance?
My Character Animator has Apply root motion as Handled by script. Did not see a spot for UMA specific animator showing anything about root motion here is what i see in the inspector. the only difference between the two characters in the above video would be the UMA Dynamic Avatar and the bones created by the bone creator, everything else is exactly the same. On the animations i have a script to tell it to use root position not the rotation cause the rotation is being handled by the nav mesh direction as you see in the added screenshot
I sent you a private message where we can work on this issue. I doubt it has anything specific to do with UMA except for maybe needing to wait for an event/callback from uma generation.
Hello, I've created a new race by following steps of Secret Anorak's tutorials. First I created character on Adobe Fuse and imported it to Mixamo and then to Blender. I converted to UMA and now I'm trying to use LipSync Lite on my new avatar but it doesn't work. So what am I missing and what should I do to fix this?
Anybody knows how to use VRIK (FinalIK) with UMA ( and VRTK) ? i tried following the steps here
But I just got these errors
NullReferenceException: Object reference not set to an instance of an object
RootMotion.FinalIK.IKSolverVR+Arm.Stretching () (at Assets/Plugins/RootMotion/FinalIK/IK Solvers/IKSolverVRArm.cs:220)
RootMotion.FinalIK.IKSolverVR+Arm.Solve (Boolean isLeft) (at Assets/Plugins/RootMotion/FinalIK/IK Solvers/IKSolverVRArm.cs:324)
RootMotion.FinalIK.IKSolverVR.Solve () (at Assets/Plugins/RootMotion/FinalIK/IK Solvers/IKSolverVR.cs:442)
RootMotion.FinalIK.IKSolverVR.OnUpdate () (at Assets/Plugins/RootMotion/FinalIK/IK Solvers/IKSolverVR.cs:291)
RootMotion.FinalIK.IKSolver.Update () (at Assets/Plugins/RootMotion/FinalIK/IK Solvers/IKSolver.cs:61)
RootMotion.FinalIK.IK.UpdateSolver () (at Assets/Plugins/RootMotion/FinalIK/IK Components/IK.cs:27)
RootMotion.SolverManager.LateUpdate () (at Assets/Plugins/RootMotion/Shared Scripts/SolverManager.cs:113)
Firstly, thanks for the great work. It's obvious a lot of effort has gone in here and there's surprisingly few currently supported assets that accomplish this.
I've only just started working with UMA 2, so I'm sure this is something I'm doing wrong, but I created a basic female, which seems to be working, but when I add the expression player nothing seems to be happening. I can see the sliders moving, but the face remains the same, and moving the sliders manually seems to have no effect. I have the override check boxes on. Am I missing a step?
Also, I see a jaw open/close, but not a mouth open/close option. Given that humans can accomplish this, how can I get this level of control in UMA? Also, is there a reason there isn't inner and outer brow control? Seems pretty essential for conveying emotion.
Well, that's a little confusing. It seems there's an 'Expression Player' and a 'UMA Expression Player', both of which seem identical. Seems to be working now, though where is the default 'talking' animation coming from and how do I stop it? Would appreciate some pointers on the other feedback when you have time. Thank you. Oh, also a cheek up/down seems useful too, as sometimes when people smile their cheeks go up and their eyes squint a little.
The "ExpressionPlayer" is the base object for the UMAExpressionPlayer. The UMAExpressionPlayer enables blinking and eye darting (saccades), and is automatically assigned to the character based on the race (if the race has one).
The Expression clips are simply animation clips. The demo you are seeing is the "Facial Animation Demo" animation, and is part of the example "Locomotion with head" animator controller (it's on a separate layer).
You should be able to create your own expressions by creating a "Bone Pose" for the expression, and then adding it to the ExpressionSet. To do this, you will need to add a PoseName to the ExpressionPlayer, and then regenerate the ExpressionSet, and add all the boneposes back, and add yours. The UI could be a little friendlier here.
These look like something isn't setup right in AnyIK. I suggest to put in a support ticket:
Hi, sorry to bother you again but i'm facing another problems.
I use another body but this time i'm missing part of face :
But my face slot mesh look right :
And finally my recipe with all my slots :
I'm not sure what i'm doing wrong as my log window is empty.
I'm on unity 2018.1.6f1 with UMA 2.8RC1
After messing with the materials i discover there are 2 materials on the head in blender :
look like the face material is not applied.
Does Uma support multi material ?
Never mind, i have found my answer.
I missed adding sub mesh slots
I am trying to have the UMA play the animation that I've found in mixamo.
I've found the FBX (male-Apose) in the UMA folder and uploaded on Mixamo before downloading the entire animation.
The animation FBX was set to generic, which I've changed to Humanoid.
Once I have the new animation play by the avatar, there are slight differences between the UMA and the Mixamo animation that I originally checked.
How do I solve this?
Try changing the TPose on the race to the mecanim friendly one.
hi i want add my fbx character to UMA, i have humanoid mesh, i extracted T-pose and i wnat to create Slot . And i have error. I need help pls
It looks like the Bone Hierarchy isn't setup.
Take a look at these videos - They show how to create a new race, and get it all setup correctly:
One of the best features of Mixamo Fuse is that you can take any clothing and put it on any character whether male or female. But systems like UMA and Morph3D need to have specific outfits for male and female and when using optional 3rd party base morphs like o3n only custom outfits work there, which eliminates all existing wardrobe possibilities.
Is there any chance there might be a character editor in the future where we could use all available outfits on any of the base characters? This is the main reason I don't use UMA.
It's possible we will be looking at runtime refits (we keep talking about it), but not in the short term. However, keep in mind that Fuse is an offline solution.
For offline refits, there are several solutions already: Blender (and all the tools that it has). And also SKINN VM from CWMANLY (who is active on the UMA Slack).
Yes, I know and that's perfectly fine.
Blender is definitely not an option for me as I would need 3D modeling skills, which I don't have. I wasn't aware of SKINN VM, but it looks promising. I'll have to investigate that further. Thanks for the tip.
Hi guys, there is a question about manipulating colors of a custom material at o3n races forum page here.
Is there a way to achieve it with the current version of UMA?
Is there a way to doing it myself can you point me the direction of the scripts ?
I'm stuck with hight poly mesh and actually can't lower them.
It would be in the combiner. If you're going down this route, it's probably best to just make every mesh it generates 32 bit. Look in UMADefaultMeshCombiner.cs, SkinnedMeshCombiner.cs and probably in UMASlotProcessUtil.cs
I need some help with creating new cloths with Marvelous Designer. I created the fbx file and imported it into Blender. (I watched the Marvelous Designer Youtube Video). But I can't get it to work with posing and co. You said in the video that you said in a previous video how to continue now with riging and that stuff, but I can't find that video. So I looked in the fast part, slowed it down to 0.25 speed and tried to copy everything (added Armatur and tried the weight thing). I ended with this result:
Thank you for the tips.
I have already looked and find the MAX_VERTEX_COUNT const in "UMAMeshData.cs"
For someone who wants to start using UMA, I'm a lot confused
I have plenty of questions about UMA and I do not know where to ask them.
Should I ask them here?
From what I understand, there are 3 different versions of UMA.
UMA Version 1
UMA Version 2
and UMA Version 2.5
The tutorials video at Youtube, in which order should I watch them?
The playlist UMA 101 - Getting Started with UMA at Youtube, is it outdated?
Inside the content-pack-master.zip there's "ContentPack_22.214.171.124" and "ContentPack_126.96.36.199".
At the Youtube-tutorial, the creator says, he will be using the content from "ContentPack_188.8.131.52".
Can I use the *.fbx file from v1.1.01 and the texture(s) only from .v184.108.40.206 ?
We don't know how to use Blender. In our team, we only know Maya.
UMA is a project which has been around for many years and many Unity versions. I think it was first released around Unity version 4.3? Something like that. So ... a lot of things have changed in the UMA code for compatibility with Unity, and many improvements have been made.
If you are using the latest versions of Unity, you'll want to use the latest versions of UMA. Version 2.8 is being prepared for release, so if you want to start playing with that, you can find it on github. (This is mentioned a little higher up on this page, here.)
UMA 101 is the right place to get started. It's up to date with UMA 2.7.
It shows how to use UMA in Unity.
UMA 201 shows how to use Blender to make new content.
UMA 301 shows how to create new races from scratch (including non-human UMAs).
On the content, Only the updated files are changed in the 2.7 folder. The original FBX in the 2.7 folder can be used for Maya.
Jaimi, Thanks again for all of yalls help, its nice to see people taking the time to help,and very refreshing.
I was wondering if you or anyone else can give a brief walk-through on how to import your hair from blender properly into Unity. Is there anything specific we need to attach it to in Blender, what is needed in the scene and so on so that when i do get it into Unity i can make the Recipe. This is my first attempt at hair and while SA has great video for bringing in clothing Hair is something completely different so any help or advice is very much appreciated,
I did notice that the Vertex groups on your blender Face has a Hair group for front, back. ponytail, etc.. but nothing is highlighted when you select are we suppose to use those, and if so in what way.
Hair should be just another slot. Have you looked at the hair that is in UMA already?
Or are you trying to do something different with hair ... like cloth hair?
Just trying to learn different methods and wanted to make some longer hair for Male for example Indians(long hair , Mohawks etc...) so taking things one step at a time and learning the process. It isnt so much how to make the slot in Unity but how to attach properly in Blender and Export it properly to Unity so that i can make the slot
SecretAnorak has a video showing how to export correctly from Blender - Look at #5 here on UMA 201:
For hair, I had best results when using DynamicBone. When I created the "Boneytail" slot, I add a chain of pony tail bones tied to the head. I rigged the hair to the head bones like normal (copying the weights, etc - like in the other videos), then specifically weighted the pony tail to the new chain bones. Exported, and imported into Unity.
Using unity physics worked great in 5.x, but they changed physics and broke the boneytail at some point. I haven't yet bothered to fix it. But honestly, I liked the way Dynamicbone worked better, so I personally wouldn't use the Unity Physics for that.
VertexMotion might be another good solution.
Thanks ill try that , i saw his video on that i just wasnt sure if hair was done the same way as there isnt much in a way of tutorials on Hair but thanks for the direction
Is possible use UMA or UMA DK lite to equip weapon into the hand? Also, how can I close character hand when the weapon is in hand?