Coder Social home page Coder Social logo

uma's Introduction

UMA

Unity Multipurpose Avatar System, or UMA for short, is a free character creation and modification system with lots of cool features. UMA was designed with flexibility in mind, so although it's primary purpose is for working with humanoid characters, its systems can be adapted to work with any model you like. So if you want to create modifiable, optimised models for use in your games. UMA is the place to start. As a community project UMA is always being improved. Although the best efforts are made to keep this wiki up to date, it relies on the spare time of helpful individuals to maintain. If you want more help or feel like chipping in then get involved with one of the community links below.

License: MIT

Git repo:https://github.com/umasteeringgroup/UMA
Project board:https://github.com/orgs/umasteeringgroup/projects/3
Wiki:https://github.com/umasteeringgroup/UMA/wiki
Forumhttp://forum.unity3d.com/threads/uma-unity-multipurpose-avatar-on-the-asset-store.219175

UMA Intro]

uma's People

Contributors

buronix avatar captainscience avatar davidosullivan avatar ecurtz avatar hellokitty avatar huika avatar imerr avatar itsmeted avatar jaimi avatar jaycrossler avatar jjoshpoland avatar joen-unlogick avatar kenamis avatar mysticfall avatar nashnir avatar osamarah avatar rthompsonj avatar secretanorak avatar tlotter avatar twobob avatar umutozkan avatar virror avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uma's Issues

Erro no Unity de comando obsoleto: Application.isWebPlayer. Queria saber um comando equivalente.

Messagem de Erro:
Assets/Store/StoreActions.cs(76,27): error CS0619: UnityEngine.Application.isWebPlayer' is obsolete: This property is deprecated and will be removed in a future version of Unity, Webplayer support has been removed since Unity 5.4'
Versão do unity: 2018.1.5f1
Código com erro:
...
else if (Application.isWebPlayer) {
Application.ExternalEval ("window.open('" + checkoutUrl + "','_blank')");
...

TestCustomizerDD.cs error

Happy new year!
I am using unity 2018.1.0f2 and imported the UMA project wich gives me 4 errors driven by the same issue, the EventTrigger, preventing me to compile, here they follow:

Assets/UMA/Examples/Extensions Examples/DynamicCharacterSystem/Scripts/Scene2and3/TestCustomizerDD.cs:

Line (467,18): error CS0426: The nested type Entry' does not exist in the type EventTrigger'

Line (468,5): error CS0841 A local variable `entry' cannot be used before it is declared

Line (469,5): error CS0841: A local variable `entry' cannot be used before it is declared

Line (470,13): error CS1061: Type EventTrigger' does not contain a definition for triggers' and no extension method triggers' of type EventTrigger' could be found. Are you missing an assembly reference?

Switching active race throws exception. (Under some conditions)

Error occurs if you are looking at the slot list in the UMAData Component while you swap active race.

After a couple of swaps editor throws an exception with the following messages:

ArgumentException: Getting control 12's position in a group with only 12 controls when doing Repaint
Aborting

GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

Animation Override causes Exception / assigns the wrong animator.

In my project I have a Male animation controller that handles most of the logic and an override controller for females; both have been added to the UMA Library and setup as race animators. This typically results in an exception similar to:

System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
  at System.Collections.Generic.Dictionary`2[System.Type,System.Type].get_Item (System.Type key) [0x000a2] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:150 
  at UMA.UMAAssetIndexer.AddAssetItem (UMA.AssetItem ai, Boolean SkipBundleCheck) [0x0000e] in /Users/bob/Documents/Unity_Projects/MYUMA/UMA/UMAProject/Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/UMAAssetIndexer.cs:487 

Which is now wrapped in a try/catch via #22 . The bigger issue here (even with the try/catch) is that the correct animators are NOT applied to the correct race in a built client. They seem to get assigned correctly when tinkering in the editor. @Jaimi mentioned on slack that he was aware of this issue and had forgotten about it so I wanted to open an issue as it's preventing me from using override animators in my project.

DynamicCharacterAvatar: PerformRaceChange keepDNA/keepWardrobe/etc. bug

When calling PerformRaceChange, you can pass in flags to keep the current DNA, wardrobe, etc. If they are not provided, the checkboxes on the DynamicCharacterAvatar are used. For each keep* flag, a load* flag is removed from a LoadOptions value, and then the resulting LoadOptions value is passed along to ImportSettings. However, if all flags are removed from the LoadOptions in this manner, what remains is LoadOptions.useDefaults, which causes all values to be loaded instead of none.

Other flag types in UMA have a None flag that can be applied when using this strategy, to ensure that what remains after all flags are removed is None. However, LoadOptions does not have a None flag. This needs to be changed.

Removing flags from LoadOptions: https://github.com/umasteeringgroup/UMA/blob/master/UMAProject/Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterAvatar.cs#L628

Calling ImportSettingsCO: https://github.com/umasteeringgroup/UMA/blob/master/UMAProject/Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterAvatar.cs#L690

Use defaults if LoadOptions is useDefaults: https://github.com/umasteeringgroup/UMA/blob/master/UMAProject/Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterAvatar.cs#L2118

Compile errors on Unity 2017.2

Upon upgrading Unity from 2017.1 to 2017.2, UMA fails to load due to the following build time errors:

Assets/UMA/Core/Extensions/DynamicCharacterSystem/UMAAssetBundleManager/AssetBundleManager.cs(190,25): error CS0619: `UnityEngine.Application.isWebPlayer' is obsolete: `This property is deprecated and will be removed in a future version of Unity, Webplayer support has been removed since Unity 5.4'
Assets/UMA/Core/Extensions/DynamicCharacterSystem/UMAAssetBundleManager/UMAAssetBundleManagerSettings.cs(435,13): error CS0117: `UnityEngine.Caching' does not contain a definition for `CleanCache'

It seems that removing the offending statement in the former case, and replacing CleanCache() with ClearCache() in the latter can fix the problem.

Setting UMAData.animationController does not update controller when avatar is updated

Version: 2.5.0

UMAGeneratorBase.UpdateAvatar assumes that if umaData.animator is set then the controller is the same as the last update. Therefore updating the umaData.animationController field and calling Dirty() doesn't result in a change of controller. This worked in previous versions because the animator was recreated rather than reused.

Will send a pull request with a fix (once I figure out how prs work in Github ...).

Expected behaviour: UpdateAvatar will change the animation controller of the animator (if required).
Actual behaviour: Animator animation controller does not change.

Updates within CharacterCreated and CharacterUpdated events are ignored.

If an event handler connected to CharacterCreated or CharacterUpdated itself calls eg. ForceUpdate(), no update occurs. The cause is that dirty is set after calling the event. Additionally, at most 2 updates are processed per frame, even with fastGeneration.

The attached patch corrects this combined problem. Sorry, the patch doesn't follow the project's tabbing conventions (I'm a bit of a VS newb), so if applied directly, it'll need a reformat run. At the very least, I hope it better explains the issue.

UMA-issue.txt

Add support for HDRP and LWRP (Feature Request)

Great job on UMA so far. Any eta on adding support for LWRP and HDRP materials so UMA can be used with the new render systems? With some guidance I should be able to help on work and testing in that area.

Dynamic DNA Recipes Crash Unity Editor in Unity 5.6

Nasty Bug in 5.6: Selecting HumanMaleDCS and HumanFemaleDCS race crash the editor........!

Repro steps:

  • Fresh project in Unity 5.6
  • Download UMA (from store)
  • Add UMA_DCS prefab to the scene
  • Make a new Gameobject and attach DCS component
  • Set Race to HumanMaleDCS or HumanFemaleDCS
  • Run
  • Pow,........... Crash To Desktop.....!

Works fine if you use plain old HumanMale or HumanFemale
Also works correctly in 5.5.1f1

Looks like 5.6 broke something with Dynamic DNA..........

Addressable Asset support

With asset bundles being phased out, the official unity solution will soon be Addressable Assets. having global library items register as addressables is one way to handle this.

Problem Building Project

Hello! I'm having a problem when building a project. Here's the error:

NullReferenceException
UMA.UMA AssetIndexer.ForceSave () (at Assets / UMA / Core / Extensions / DynamicCharacterSystem / Scripts / UMAAssetIndexer.cs: 201)
UMA.UMAAssetIndexer.UnityEditor.Build.IPreprocessBuild.OnPreprocessBuild (BuildTarget target, System.String path) (at Assets / UMA / Core / Extensions / DynamicCharacterSystem / Scripts / UMAAssetIndexer.cs: 814)
UnityEditor.Build.BuildPipelineInterfaces.OnBuildPreProcess (BuildTarget platform, System.String path, Boolean strict) (at C: /buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs: 276)
UnityEditor.HostView: OnGUI ()

Here is the code from the script at the error location:

public void ForceSave ()
{
var st = StartTimer ();
EditorUtility.SetDirty (this.gameObject);
AssetDatabase.SaveAssets ();
StopTimer (st, "ForceSave");
}

An error in the SetDirty () method
What is not so configured or need to somehow rewrite in the script / project?
Help me please!

Files cannot (quite) be arranged into separate Assemblies in Unity 2017.

The Assembly Definition Files feature of Unity 2017 is very useful for users of sourcecode-distributed libraries such as UMA.

When setting up asmdefs for UMA, I found that the partial class RaceInspector is spread across multiple directories:

  1. UMA\Core\StandardAssets\Extensions\DynamicCharacterSystem\Scripts\Editor
  2. UMA\Core\StandardAssets\UMA\Scripts\Editor

This doesn't work - partial classes need to be in the one assembly, so I moved the former into a DCS subdirectory of the latter so they could be in one assembly.

Also, I found that many asmdefs are required, as Editor and non-Editor code must go in separate DLLs, yet UMA has numerous Editor script directories within other Script directories. While this is not a problem, and indeed improves build time if modifying UMA, having each user make their own asmdefs is not good, and getting the dependencies right is a little tricky. I ended up with 8 assemblies: a top-level UMA assembly (which would need to be shipped with game releases) and one for each Editor directory and for UMA Examples (which would not need to be shipped in final builds). This appears to be the minimal number with the current structure.

Feature Request Auto marking Asset tags

Auto marking Asset tags would be helpful, something of this nature:

using UnityEngine;
using UnityEditor;
using UMA.CharacterSystem;
using UMA;

public static class UpdateTagsOnPropsScript {
	static void GetAllPropsInResources(bool AddTheTags) {

		 foreach (var item in UMAEditorUtilities.FriendlyNames)
        {
            foreach (var subitem in Resources.FindObjectsOfTypeAll(item.Key ))
            {
                string tagName = "UMA-"+item.Value;
                string[] currentLabels = AssetDatabase.GetLabels(subitem);
                if (AddTheTags) ArrayUtility.Add<string>(ref currentLabels, tagName);
                else ArrayUtility.Remove<string>(ref currentLabels, tagName);
                AssetDatabase.SetLabels(subitem, currentLabels);
                EditorUtility.SetDirty(subitem);
            }

	}

	[MenuItem("UMA/Asset tag Updater")]
	public static void AssetTagUpdate() {
		GetAllPropsInResources(true);
	}

	[MenuItem("UMA/Asset tag remover")]
	public static void AssetTagRemove() {
		GetAllPropsInResources(false);
	}

}

et cetera
since it doubles as a searching facility, properly used and implemented correctly this type of search could help users find and group things more quickly

image

Building error

Hi,

I downloaded UMA 2.6 to my project (Unity 5.6) and tried to build I got the error:

NullReferenceException
UMA.UMAAssetIndexer.ForceSave () (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/UMAAssetIndexer.cs:199)
UMA.UMAAssetIndexer.UnityEditor.Build.IPreprocessBuild.OnPreprocessBuild (BuildTarget target, System.String path) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/UMAAssetIndexer.cs:804)
UnityEditor.Build.BuildPipelineInterfaces.OnBuildPreProcess (BuildTarget platform, System.String path, Boolean strict) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:232)
UnityEditor.HostView:OnGUI()

Assets/UMA/Examples/Extensions Examples/DynamicCharacterSystem/Scripts/Scene4/PhotoBooth.cs(645,0): error CS1525: Unexpected symbol `}'

builderror

I must say that in the UMAAssetIndexer script I added lines:

#if UNITY_EDITOR
using UnityEditor.Build;
#endif

because when I downloaded UMA to Unity, I got errors and suggestion to add "using UnityEditor.Build".

Please provide a text guide to creating wardrobe assets for UMA 2.5

I have followed the video tutorials and what document that is available to create my first asset for UMA 2.5. However, after working through this and creating both a slot and wardrobe recipe, and then adding the recipe to an UMADynamicCharacterAvatar, nothing shows up in the scene on run. There are no error messages or helpful feedback to show what is missing from my asset that causes it not to add to the character mesh and become part of the UMA avatar.

I would love to start creating assets for the UMA 2.5 system, but I cannot find a complete and helpful documentation that shows all the required steps going from Blender with a base model -> importing into Unity -> creating the UMA specific components like recipes, slots, overlays as are needed to make a working asset in Unity.

UMA is a very nice system for modular assets and characters, but I think the lack of assets and help to get new users started are a barrier to making this a more popular character system in the Unity Asset Store and with general users.

Please provide a non-video, text-based documentation and tutorial that walks through creating assets new meshes or from taking a piece of the base character asset and scaling up (useful for shirts and pants, etc).

Thanks!

AssetIndexer Error: 2018.3.0f + UMA 2.8RC3 Win10

Hi there

Not sure if this is "serious" - the DCS Demo scene appears to work. Just starting with UMA so not really sure about anything yet :)

Let me know if I can provide more info. Cheers!

Unity 2018.3.0f2
Win 10
UMA 2.8 RC3

Unable to load the AssetIndexer. This item is used to index non-asset bundle resources and is required.
UnityEngine.Debug:LogError(Object)
UMA.UMAAssetIndexer:get_Instance() (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/UMAAssetIndexer.cs:109)
UMA.UMAEditorUtilities:.cctor() (at Assets/UMA/Core/Scripts/Editor/UMAEditorUtilities.cs:40)
UnityEditor.EditorAssemblies:ProcessInitializeOnLoadAttributes()

Errors in scene when UMA installed but not used

Describe the bug
With UMA installed in the project but not used in a scene, UMA will throw errors in play mode. Additionally it will add an undesired scene object

Environment (please complete the following information):

  • Unity Version: Unity 2018.3.4f1
  • UMA Version: 2.8.0
  • Platform Build (if not editor): Editor

To Reproduce
Steps to reproduce the behavior:

  1. Add UMA to the project
  2. Create a new empty scene
  3. In the hierarchy there will be a new object named "UMAEditorContext" that can not be deleted
  4. Press Play in Editor
  5. UMA throws exception errors

Expected behavior
If UMA is not being used in a scene, I expect not UMA errors to be thrown and no UMA objects to be added to the scene

Additional context
NullReferenceException: Object reference not set to an instance of an object
UMA.Editors.RecipeEditor.OnEnable () (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/Editor/RecipeEditor.cs:98)

Ragdoll resets if avatar is changed.

If you ragdoll a character with the UMA physics player, then remove an item of clothing (looting for example) his animator resets briefly. This means he stands back up and ragdolls again.

UMA BUILD ISSUES

I have two issues that I am hoping someone can help with.

  1. For some reason Build looks for UMA character save text files in a folder outside of the project. This means I have to copy files from the folder where they are auto saved in the Editor to this other folder, where the build expects to find them. This means I usually have to keep two sets of UMA files. How can I set the path to the UMA folder used in the Editor. Also why wouldn't these text files just be included in the build? Why does UMA have to find these in a folder outside of the project? Am I doing something wrong??

2.I use the above workaround from the main location where I do my game development. However, I will occasionally want to take build with me to a different office (different city). And so I usually have to be sure to copy the UMA text files and put them where I know the game expects to find them. Well, that seems to be working for the player character. But all of the other UMA characters are invisible! Apparently they are in the scene (you an even interact with the ones capable of interacting); but they are NOT being rendered! I will check folder. Not sure why this one character would load, but not the others. But, more importantly, the player character is totally naked! None of her gear is showing up that she should be wearing. When I try to equip gear, instead of displaying on the UMA, it ends up on the ground, under the character's feet!

How can I control where UMA saves my characters? How can I set UMA to save /load from the same folder used in the Editor? Also any ideas about what might be going on with my gear? That is a totally new issue that I have never seen before. But it has been a long time, since I have tried to run my game from a different computer.

Any feedback would be very appreciated!

Restoring animator state tries to restore curve driven values

These are derived values and cannot be set - Unity will flag a warning.

in UMAGeneratorBase.cs, RestoreAnimatorState(Animator animator) wrapping the call with IsParameterControlledByCurve fixes issue.

			foreach(AnimatorControllerParameter param in parameters)
			{

                if (!animator.IsParameterControlledByCurve (param.nameHash))
                {
				    switch(param.type)
				    {
					    case AnimatorControllerParameterType.Bool:
						    animator.SetBool(param.nameHash, param.defaultBool);
						    break;
					    case AnimatorControllerParameterType.Float:
						    animator.SetFloat(param.nameHash, param.defaultFloat);
						    break;
					    case AnimatorControllerParameterType.Int:
						    animator.SetInteger(param.nameHash, param.defaultInt);
						    break;
				    }
                }
			}

Can't make shared overlay when make RaceData.

I am making new race.
I separated race model and made slots(torso, hand, feet, head etc).
Separated slot share 1 overlay like HumanMale example( only torsor, feet, hand, legs are shared)

  1. Add torso_slot to baseRecipe.
  2. Add torso_overlay to torso_slot.
  3. To share torso_overlay by leg_slot, drop leg_slot to "Add Slot" in inspector of torso_slot.
  4. Can't share torso_overlay by leg_slot.

I can't make share overlay like example race.
Is this issue?

Feature request: Add Dna changed callback to UMAData

There is no way right now to know when the DNA has changed since Characterupdated is fired after all of the UmaData dirty flags are already set back to false. Understanding when DNA has changed is important because when the avatar is changed all state machine behaviours are exited without the exit being called on them. In some cases you may need to clean up stuff when this occurs.

Adding a CharacterDNAUpdated event to UMAData, and raising it in UpdateUMABody() in UMAGeneratorBuiltIn, before UpdateAvatar(umaData) would be very useful (it needs to be called before this method because this method is where the animator is restored).

Examples and UMA_Examples folders can't be removed without error

These two folders are quite large (300MB total) and should be removable. However, some scripts in the UMA source seem to reference scripts from these folders which indicates a dependency issue.

UMAPhysicsSlotEditor -> UMAPhysicsSlotDefinition
DynamicDNAConverterCustomizer -> UMA.CharacterSystem.Examples

Copying a DCA component at runtime, creates an Unusable UMA

Say for example I run and start adding clothes to the default wardrobe. I'm happy with my outfit and colours so to save time I decide to copy the component, quit and paste values back to my DCA,..... should work yes?

No,... the resulting UMA has no wardrobe slots and will no longer accept wardrobe slots.

Same happens if I paste as a new component.

Small bug still with updating slots/textures without DNA

Recently we fixed (ecurtz/kenamis) some issues preventing updating slots/textures without DNA (it would reset the DNA before the fixes). However, I have found that the fix to EnsureBone (which was to comment out "res.umaTransform.Assign(umaTransform);" didn't work:

	/// <summary>
	/// Ensures the bone exists in the skeleton.
	/// </summary>
	/// <param name="umaTransform">UMA transform.</param>
	public virtual void EnsureBone(UMATransform umaTransform)
	{
		BoneData res;
		if (boneHashData.TryGetValue(umaTransform.hash, out res))
		{
			res.accessedFrame = -1;
		//	res.umaTransform.Assign(umaTransform);
		}
		else
		{
			AddBone(umaTransform);
		}
	}

Does not fix the issue unless the line "res.accessedFrame = -1;" is also commented out or else it gets picked up in EnsureBoneHierarchy and gets reset (I think - you can also just comment out EnsureBoneHierarchy while leaving the line above commented in, and it works too. I'm not sure what is going on with tracking the frames bones are accessed.

	private void CreateTransforms(UMASkeleton skeleton)
	{
		for(int i = 0; i < umaBoneCount; i++ )
		{
			skeleton.EnsureBone(umaBones[i]);
		}
		skeleton.EnsureBoneHierarchy();
	}

Avatar mesh not created in the scene

I have downloaded the recent UMA 2 from the Asset Store and all worked great. As soon as I installed Unity 2017.1p5, I get the error:

SkinnedMeshRenderer: Trying to set a mesh ("") that is unfit for use with SkinnedMeshRenderer. Most likely it doesn't have Skin information and/or is only assigned to the renderer during runtime, in which case Unity isn't aware of its use with SkinnedMeshRenderer. Mark the mesh as Readable or assign it to the renderer in the Editor before building.
UnityEngine.SkinnedMeshRenderer:set_sharedMesh(Mesh)
UMA.UMADefaultMeshCombiner:MakeRenderer(Int32, Transform) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:96)
UMA.UMADefaultMeshCombiner:EnsureUMADataSetup(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:44)
UMA.UMADefaultMeshCombiner:UpdateUMAMesh(Boolean, UMAData, Int32) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:117)
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)

Dynamic UMA stuff is not removable without an error

Since the dynamic avatar stuff is an extension, and has a bunch of stuff I don't need, I removed it.

However, it looks like UMACustomization uses a script that is in the dynamic avatar extension (MouseOrbitImproved). Likely this script should be moved out of dynamic avatar into Core UMA so the extension can be removed without issue.

Error on latest 2.5

Hi

I have just finished downloading the lastet build of UMA 2.5 (Commit: 2f407e9) and am receiving the following errors:

Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/UMAAssetIndexer.cs(18,8): error CS0246: The type or namespace name `IPreprocessBuild' could not be found. Are you missing `UnityEditor.Build' using directive?
Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/UMAAssetIndexer.cs(799,9): error CS0246: The type or namespace name `IOrderedCallback' could not be found. Are you missing `UnityEditor.Build' using directive?
Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/UMAAssetIndexer.cs(807,10): error CS0246: The type or namespace name `IPreprocessBuild' could not be found. Are you missing `UnityEditor.Build' using directive?

This is with a clean project only containing UMA on Unity 5.6.0f3

Do you have any suggestions?

Created avatars moving forward or backward

Hi,

I imported the UMA Master project to Unity 5.6 (Windows 10) and created avatars behave strange in my project. I open the example scenes in the UMA project and the created avatars moving forward or backward slightly jumping.

Here movies:

MovingAvatars.zip

EDIT: I have just found that this strange behaviour is because of a rigidbody. When I remove this components from avatars, they stop to move and jump. Any idea?

The avatar stops when I check Is Kinematic in his rigidbody.

Add 'eye depth' and 'eye folds' DNA to default races (for Asian characters)

For now, it's not easy (or even possible) to generate an authentic looking Asian characters with UMA, because it lacks such DNAs like 'eye depth' and 'eye folds'.

Considering the importance of providing ethnic diversity in such a project, it would be a significant improvement for a relatively small efforts if it could add such morphs to existing default races.

A strange error

Hi,

Unity 2017.2:

SkinnedMeshRenderer: Trying to set a mesh ("") that is unfit for use with SkinnedMeshRenderer. Most likely it doesn't have Skin information and/or is only assigned to the renderer during runtime, in which case Unity isn't aware of its use with SkinnedMeshRenderer. Mark the mesh as Readable or assign it to the renderer in the Editor before building.
UnityEngine.SkinnedMeshRenderer:set_sharedMesh(Mesh)
MF3D.UMADefaultMeshCombiner:MakeRenderer(Int32, Transform) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:96)
MF3D.UMADefaultMeshCombiner:EnsureUMADataSetup(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:44)
MF3D.UMADefaultMeshCombiner:UpdateUMAMesh(Boolean, UMAData, Int32) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:117)
MF3D.UMAGeneratorBuiltin:UpdateUMAMesh(Boolean) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:282)
MF3D.UMAGeneratorBuiltin:HandleDirtyUpdate(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:226)
MF3D.UMAGeneratorBuiltin:OnDirtyUpdate() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:265)
MF3D.UMAGeneratorBuiltin:Work() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:132)
MF3D.UMAGeneratorBuiltin:Update() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:97)

getting started tutorial doesn't work in 2017.2.0f3

I'm brand new to UMA so I might be missing something, but I just started going through the Getting Started section and the first example errs out. It looks very similar to #33 but just in case here's the whole log I get. This error and the following warning occur on every frame after pressing play.

SkinnedMeshRenderer: Trying to set a mesh ("") that is unfit for use with SkinnedMeshRenderer. Most likely it doesn't have Skin information and/or is only assigned to the renderer during runtime, in which case Unity isn't aware of its use with SkinnedMeshRenderer. Mark the mesh as Readable or assign it to the renderer in the Editor before building.
UnityEngine.SkinnedMeshRenderer:set_sharedMesh(Mesh)
UMA.UMADefaultMeshCombiner:MakeRenderer(Int32, Transform) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:105)
UMA.UMADefaultMeshCombiner:EnsureUMADataSetup(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:44)
UMA.UMADefaultMeshCombiner:UpdateUMAMesh(Boolean, UMAData, Int32) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:126)
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)

This warning that happens every frame as well.

Exception in UMAGeneratorBuiltin.OnDirtyUpdate: System.NullReferenceException: Object reference not set to an instance of an object
  at UMA.UMADefaultMeshCombiner.MakeRenderer (Int32 i, UnityEngine.Transform rootBone) [0x000e4] in /Users/mistermashu/games/PlagueKnight/Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:108 
  at UMA.UMADefaultMeshCombiner.EnsureUMADataSetup (UMA.UMAData umaData) [0x0010f] in /Users/mistermashu/games/PlagueKnight/Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:44 
  at UMA.UMADefaultMeshCombiner.UpdateUMAMesh (Boolean updatedAtlas, UMA.UMAData umaData, Int32 atlasResolution) [0x00034] in /Users/mistermashu/games/PlagueKnight/Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:126 
  at UMA.UMAGeneratorBuiltin.UpdateUMAMesh (Boolean updatedAtlas) [0x00026] in /Users/mistermashu/games/PlagueKnight/Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:282 
  at UMA.UMAGeneratorBuiltin.HandleDirtyUpdate (UMA.UMAData data) [0x0016b] in /Users/mistermashu/games/PlagueKnight/Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:226 
  at UMA.UMAGeneratorBuiltin.OnDirtyUpdate () [0x0005c] in /Users/mistermashu/games/PlagueKnight/Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:265 
UnityEngine.Debug:LogWarning(Object)
UMA.UMAGeneratorBuiltin:OnDirtyUpdate() (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAGeneratorBuiltin.cs:274)
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)

Steps to reproduce:

  1. Create a new scene
  2. drag & drop the "Environment" prefab into the scene view
  3. drag & drop the UMA_DCS onto the Hierarchy
  4. drag & drop the UMADynamicCharacterAvatar into the scene view
  5. reposition the camera so it's looking at the CharacterAvatar
  6. press play

I have Unity version 2017.2.0f3 Personal and UMA 2.6.2

SkinnedMeshRenderer Exception at runtime

UMA Version 2.6.1
Unity3d Version 2017.1.0.p5

After upgrading Unity from 2017.1.0.p2 to .p5 i now get the following errors:

SkinnedMeshRenderer: Trying to set a mesh ("") that is unfit for use with SkinnedMeshRenderer. Most likely it doesn't have Skin information and/or is only assigned to the renderer during runtime, in which case Unity isn't aware of its use with SkinnedMeshRenderer. Mark the mesh as Readable or assign it to the renderer in the Editor before building. UnityEngine.SkinnedMeshRenderer:set_sharedMesh(Mesh) UMA.UMADefaultMeshCombiner:MakeRenderer(Int32, Transform) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:96) UMA.UMADefaultMeshCombiner:EnsureUMADataSetup(UMAData) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:44) UMA.UMADefaultMeshCombiner:UpdateUMAMesh(Boolean, UMAData, Int32) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMADefaultMeshCombiner.cs:117) 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)
everything worked with 2017.1.0.p2 and below.
-J

MeshHiderAsset in HDRP branch

Describe the bug
https://github.com/umasteeringgroup/UMA/blob/feature-HDRP/UMAProject/Assets/UMA/Core/StandardAssets/UMA/Scripts/GeometrySelector.cs#L109 MeshHiders use wrong shader

Environment (please complete the following information):

  • Unity Version: 2018.3.8f1
  • UMA Version: dcb95fc
  • Platform Build (if not editor):

To Reproduce
Steps to reproduce the behavior:

  1. Go to edit a MeshHiderAsset
  2. Click on any triangles
  3. See error

Expected behavior
They change color

** To Fix **
https://github.com/umasteeringgroup/UMA/blob/feature-HDRP/UMAProject/Assets/UMA/Core/StandardAssets/UMA/Scripts/GeometrySelector.cs#L109

       if (_Materials == null)
            {
            Shader LitShader = Shader.Find("HDRenderPipeline/Lit");
            _Materials = new Material[2];
            //Selected
            _Materials[1] = new Material(Shader.Find("HDRenderPipeline/Lit"));
            _Materials[1].name = "Selected";
            
            _Materials[1].SetColor("_BaseColor", Color.red);

            //UnSelected
            _Materials[0] = new Material(Shader.Find("HDRenderPipeline/Lit"));
            _Materials[0].name = "UnSelected";
         
            _Materials[0].SetColor("_BaseColor", Color.green);

In the absence of a better solution, that works in the interim

Forward Rendering and Overlays

When in forward rendering mode, if you reduce dynamic lighting and only rely on point lights or low level lighting, overlays become washed out and lose alpha transparency/blending. See attached screenshot
screenshot_17

UMA Dynamic Character Builds Skeleton outside of prefab in scene

Attempted to create a UMA race using a low poly model as a base mesh. I followed this tutorial: https://www.youtube.com/watch?v=ox6iZUfuIso that explains how to create a custom UMA race using a base model.

Video of Problem

When I attempt to change the Dynamic character using the simple assets found in the "Getting Started" folder, I can successfully see it in the list of races, but when I switch it out, it seems to put the bones outside of the character.

Should note that the FBX file imported into Unity generated the skeleton, and named the root bone "Back" instead of "Global" like the example mesh. Otherwise unsure if any problems in the race files, followed the tutorial previously linked for that process.

Using UMA 2.6 and Unity 2017.0f3.

I get these specific errors and warnings when I switch to the custom race:
Image
Image

This is the function where the warning occurs:
Image

Mesh hiding irreversible

Removing a wardrobe item that contains a mesh hiding component does not replace the hidden triangles. Base mesh is left with holes.

Renaming InternalDataStore/InGame/Resources to Resources_RENAMED causes editor exceptions and prevents project view from drawing in 2.71

I renamed the resources folder that I think DCS uses since I dont need it and it was adding a ton of stuff to my headless server builds. Doing so caused exceptions when running (even an empty scene) and also prevented the project view from being drawn at all.

Repro:

  1. Open up new project with UMA
  2. Open empty scene
  3. Rename InternalDataStore/InGame/Resources to Resources_RENAMED
  4. Run empty scene
  5. Note exceptions, project view doesn't draw anymore

NullReferenceException: Object reference not set to an instance of an object
UMA.UMAEditorUtilities.DrawItems (System.String guid, UnityEngine.Rect selectionRect) (at Assets/UMA/Core/Scripts/Editor/UMAEditorUtilities.cs:74)
UnityEditor.ProjectBrowser.OnGUIAssetCallback (System.Int32 instanceID, UnityEngine.Rect rect) (at C:/buildslave/unity/build/Editor/Mono/ProjectBrowser.cs:613)
UnityEditor.IMGUI.Controls.TreeViewController.DoItemGUI (UnityEditor.IMGUI.Controls.TreeViewItem item, System.Int32 row, System.Single rowWidth, System.Boolean hasFocus) (at

The exception is on line:
AssetItem ai = UMAAssetIndexer.Instance.FromGuid(guid);
because the singleton doesn't exist.

Adding this trivially resolve the issue;

        if (UMAAssetIndexer.Instance == null)
            return;

Make UMA folder easily movable

I like to place all external stuff into the Plugins folder to keep my project root clean and get improved compilation times. However, there are a few places in the UMA source that use a hardcoded path. It would be great if you could define the root path in one place to make upgrading easier (or even try to find it dynamically by walking up the folder tree).

[Development branch] UMA Core Demo - Crowd Recipes not working on Unity 2017.3

Getting this error at startup:
UMAResourceNotFoundException: SlotLibrary: Unable to find: F_High poly head
UMA.SlotLibrary.InstantiateSlot (System.String name) (at Assets/UMA/Core/Scripts/SlotLibrary.cs:91)
UMA.UMAContext.InstantiateSlot (System.String name) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMAContext.cs:119)
UMA.UMAPackedRecipeBase.UnpackRecipeVersion3 (UMA.UMARecipe umaRecipe, UMA.UMAPackRecipe umaPackRecipe, UMA.UMAContext context) (at Assets/UMA/Core/Scripts/UMAPackedRecipeBase.cs:936)
UMA.UMAPackedRecipeBase.UnpackRecipe (UMA.UMARecipe umaRecipe, UMA.UMAPackRecipe umaPackRecipe, UMA.UMAContext context) (at Assets/UMA/Core/Scripts/UMAPackedRecipeBase.cs:35)
UMA.UMAPackedRecipeBase.Load (UMA.UMARecipe umaRecipe, UMA.UMAContext context) (at Assets/UMA/Core/Scripts/UMAPackedRecipeBase.cs:20)
UMA.UMATextRecipe.Load (UMA.UMARecipe umaRecipe, UMA.UMAContext context) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/pUMATextRecipe.cs:178)
UMA.UMARecipeBase.GetCachedRecipe (UMA.UMAContext context) (at Assets/UMA/Core/StandardAssets/UMA/Scripts/UMARecipeBase.cs:51)
UMA.Examples.UMARecipeMixer.IncludeRecipe (UMA.UMARecipeBase recipe, UMA.UMARecipe umaRecipe, UMA.UMAContext context, Boolean dontSerialize) (at Assets/UMA/Examples/Main Examples/Scripts/UMARecipeMixer.cs:105)
UMA.Examples.UMARecipeMixer.FillUMARecipe (UMA.UMARecipe umaRecipe, UMA.UMAContext context) (at Assets/UMA/Examples/Main Examples/Scripts/UMARecipeMixer.cs:92)
UMA.Examples.UMARecipeCrowd.RandomizeRecipe (UMA.UMAData umaData) (at Assets/UMA/Examples/Main Examples/Scripts/UMARecipeCrowd.cs:182)
UMA.Examples.UMARecipeCrowd.GenerateOneCharacter () (at Assets/UMA/Examples/Main Examples/Scripts/UMARecipeCrowd.cs:148)
UMA.Examples.UMARecipeCrowd.Update () (at Assets/UMA/Examples/Main Examples/Scripts/UMARecipeCrowd.cs:69)

UMA_DCS prefab load errors in additive scene (Version 2.6.2, Unity 2017.3)

Add the UMA_DCS prefab to a scene then load that scene additively.

The referenced script on this Behaviour is missing!
UnityEngine.Resources:Load(String)
UMA.UMAAssetIndexer:get_Instance() (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/UMAAssetIndexer.cs:98)
UMA.CharacterSystem.DynamicAssetLoader:AddAssets(Dictionary2&, Boolean, Boolean, Boolean, String, String, Nullable1, String, Action1, Boolean) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicAssetLoader.cs:609) UMA.CharacterSystem.DynamicRaceLibrary:UpdateDynamicRaceLibrary(Boolean, Nullable1) (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicRaceLibrary.cs:130)
UMA.CharacterSystem.DynamicRaceLibrary:GetAllRaces() (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicRaceLibrary.cs:322)
UMA.CharacterSystem.DynamicCharacterSystem:Init() (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterSystem.cs:75)
UMA.CharacterSystem.DynamicCharacterSystem:Awake() (at Assets/UMA/Core/Extensions/DynamicCharacterSystem/Scripts/DynamicCharacterSystem.cs:48)

Trying to understand CombinedMesh creation

Hi,
I am trying to create a decimated pipeline

so I create a

	/// <summary>
	/// Extended mesh combiner for UMA UMAMeshdata from slots with builtin decimation.
	/// </summary>
	public class UMADefaultMeshCombinerWithDecimate : UMAMeshCombiner
	{

and in it during the BuildCombineInstances(); method instead of just passing the various meshes I would like to

A) get a copy of the UMAMesh object to decimate and ultimately combine. What is the best practice here for Mesh cloning?

B) Know if this is the correct place to do such a thing - since early test reveal very confused material atlassing following decimation. (pictured)

Many thanks

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.