I have now attached the above to Character Created. That works now, and I see the changes in the DNA, including the hair colors and everything, in the Inspector, but despite

Code (CSharp):

avatar.BuildCharacter(true);

avatar.ForceUpdate(true, true, true);

...the changes are not visible. The character refuses to update and I get no errors.

Click to expand...

You are in a bit of a catch-22 situation.

You can't force the character to rebuild in the event, because that would cause it to re-queue the item to build, and then that would call the event again. So we specifically filter that out so as to avoid infinite loops.

You can approach this several ways.

Simplest thing is to just start a coroutine, and then have that coroutine tell it to rebuild. But you need to take care not to get stuck in a loop (set a flag somewhere so you don't process that specific avatar over and over again).

The other thing is to simply generate a bunch of random characters, save them as strings, and then load randomly load those. This will be less resource intensive.

I'll put in a trello task to allow the pregeneration of DNA, but it won't make 2.8

The DNA is only available after the character has been built - that's because the UMAData has not been constructed yet, and it doesn't know what race it is or will be.

To randomize DNA, you have to have built the character at least once. Since this happens out of band, you have to do this in the Character Created event.

(note: you can of course load characters that have modified DNA - this is only if you want to programatically randomize DNA).

Click to expand...

This is only true if you want to use the nice high level interfaces. You can absolutely do whatever you want to the DNA before generation. If you look at the old UMACrowd example it randomizes everything programmatically prior to building the characters.

EDIT: I haven't been in the code for a long time, but there are also other events than CharacterCreated, some of which I think may be called prior to the DNA being applied.

This is only true if you want to use the nice high level interfaces. You can absolutely do whatever you want to the DNA before generation. If you look at the old UMACrowd example it randomizes everything programmatically prior to building the characters.

EDIT: I haven't been in the code for a long time, but there are also other events than CharacterCreated, some of which I think may be called prior to the DNA being applied.

Click to expand...

LoekvanKooten is using a DynamicCharacterAvatar, which creates the UMAData and loads the DNA from the race into at build time.

But perhaps there is a better event, that would avoid the double-build. It would have to be after initialization. Let me look.

Both methods are called and print their messages (once for every enemy), but the meshes don't change. All four enemies stay exactly the same.

Click to expand...

You do not need that second function in DNA Updated. I'm not sure what is happening, but that could be messing things up.

Also - the hair won't change there, because the character has not been built - but you can't build the character in an event, because it changes the recipe. You will need to set the slots outside of an event.

Are you getting any errors or warnings in the console?

Note: I'm working on a system to provide pregenerated DNA to the DCA. But it won't be ready until 2.9

Hi, is there a way to use blendshape on wardrobe items?
For example I have several different head models and I thought of using blendshapes on beards to mold them into the faces. So I could equip head three and turn on blendshape 3 on a beard. Is something like this possible?

Hi, is there a way to use blendshape on wardrobe items?
For example I have several different head models and I thought of using blendshapes on beards to mold them into the faces. So I could equip head three and turn on blendshape 3 on a beard. Is something like this possible?

Click to expand...

Yes - you just have to setup the DNA for it. Look at the ElfOrAlien DNA in the 2.8 RC for an example of blendshape DNA.

Also - the hair won't change there, because the character has not been built - but you can't build the character in an event, because it changes the recipe. You will need to set the slots outside of an event.

Are you getting any errors or warnings in the console?

Click to expand...

In that case, my old method seems best, as I do not only want to change the DNA, but also change the hair at random.

Arteria3d have received many emails detailing the recent promotion ive ran for UMA users, asking was we doing more, as it seems its a great idea for new users especially to evaluate the products before purchase, given many are new to UMA too, therefore each week, we will offer 1 UMA costume FREE from our store to any first time Requestee. Simply email arteria3d@live.co.ukwith your UMA costume choice from our grand selection via the link below. (Please note, FULL Knight and Viking packs not included)

@Jaimi
Thanks! Does that work for wardrobe items or only base slots? A bit confused on that part. Or since the mesh is baked in the end it does not matter?

Click to expand...

If I understand what you want correctly (set a different DNA Value depending on whether another slot is present or not). That you'll have to do in a script attached to an empty slot in your wardrobe recipe which will search for the slots and set your dna depending on your needs. By the way, this kind of logic is planned in the future for UMA 3.

A blendshape is not automatically baked in an UMA. By default it will exist like normal on the final uma skinned mesh renderer. There is an UMA feature to bake the blendshape and that should be a perfect use-case in this instance.

If I understand what you want correctly (set a different DNA Value depending on whether another slot is present or not). That you'll have to do in a script attached to an empty slot in your wardrobe recipe which will search for the slots and set your dna depending on your needs. By the way, this kind of logic is planned in the future for UMA 3.

A blendshape is not automatically baked in an UMA. By default it will exist like normal on the final uma skinned mesh renderer. There is an UMA feature to bake the blendshape and that should be a perfect use-case in this instance.

Click to expand...

Awesome, Yes. If Face_01 is equipped set Beard_Blendshape_01 to 1 etc. I'll have meshes in a day or two from Artist and I'll try this.
I was looking on wardrobe item asset for Blendshape data and did not realize they were connected to slots.

You have a mix of versions. You should delete the core and examples folders, and reimport.

Click to expand...

Yes I did that and it worked thanks!

Im using the photoboth scene, and after designing a character i want to get a string of the recipe so i can save it to a file, and then load it back next time and apply it to the UMA character.

1. Can you tell me how to get a string of the recipe (DNA and clothes shoes, hair, colors etc), which function to call?
2. Can you tell me how to apply the recipe to a character? which functions to call?

Im using the photoboth scene, and after designing a character i want to get a string of the recipe so i can save it to a file, and then load it back next time and apply it to the UMA character.

1. Can you tell me how to get a string of the recipe (DNA and clothes shoes, hair, colors etc), which function to call?
2. Can you tell me how to apply the recipe to a character? which functions to call?

Hey! I am using a specular workflow for my UMAs. When I try to add recipes to my UMA, the base slots have the right specular smoothness , but my armor recipes become dull. When I increase the specular smoothness of the material, the Base Slot becomes too shiny while the Armor recipes appear correctly. Any idea, how to overcome this?

im trying out the "UMA DCS Demo - Using Asset Bundles" scene, when i click LOAD then some of the selections give an error that it can't find some slot or recipe, i also saw some message that i should re-build UMAResources index or AssetBundles.

Hey! I am using a specular workflow for my UMAs. When I try to add recipes to my UMA, the base slots have the right specular smoothness , but my armor recipes become dull. When I increase the specular smoothness of the material, the Base Slot becomes too shiny while the Armor recipes appear correctly. Any idea, how to overcome this?

Click to expand...

Most likely the issue is the colors being applied to the armor. Look in your wardrobe recipes at the colors for Texture 1 multiplier and Texture 1 additive. For your specular maps to remain unchanged, the multiplier should be 1,1,1,1 and additive should be 0,0,0,0

im trying out the "UMA DCS Demo - Using Asset Bundles" scene, when i click LOAD then some of the selections give an error that it can't find some slot or recipe, i also saw some message that i should re-build UMAResources index or AssetBundles.

Can you please tell me how to solve those? Thanks!

Click to expand...

To rebuild the index, open the global library window, and hit the "Rebuild from project (adds everything)" button. That will add everything it finds into the global index, except for things that are in asset bundles.

To rebuild your asset bundles, you should open the asset bundle manager, and hit the button to build the asset bundles.
However, you shouldn't need to do this inside the editor - only for when you build.

If you need further assistance, I will need to know some of the items that can't be found.

Hey! I am using a specular workflow for my UMAs. When I try to add recipes to my UMA, the base slots have the right specular smoothness , but my armor recipes become dull. When I increase the specular smoothness of the material, the Base Slot becomes too shiny while the Armor recipes appear correctly. Any idea, how to overcome this?

The only feature i'm interested in is combining skinned meshes from models that are the same.
My models are instanced via a network signal on a public server. Since the objects are not pooled i need a way to create a <List>pool for the skinned meshes when the models are the same. Is this possible? If so, HOW!

The only feature i'm interested in is combining skinned meshes from models that are the same.
My models are instanced via a network signal on a public server. Since the objects are not pooled i need a way to create a <List>pool for the skinned meshes when the models are the same. Is this possible? If so, HOW!

They just use the standard shader, so the regular lighting all applies. You could use the additive function on the colors also, or edit the template material to add a little bit of emissive? That seems kind 9f cheaty though.

They just use the standard shader, so the regular lighting all applies. You could use the additive function on the colors also, or edit the template material to add a little bit of emissive? That seems kind 9f cheaty though.

It is broken on import. I'd like to do something with avatars, but I'm new.

The error is:

Code (CSharp):

Assets\UMA\Core\StandardAssets\UMA\Scripts\UMAMeshData.cs(618,34): error CS0117:'PrefabUtility' does not contain a definition for'IsComponentAddedToPrefabInstance'

The package is directly from the asset store. I found the new unity package from this forum; I tried downloading the unity package but I got a 'Failed - forbidden' message.

Click to expand...

You can go and comment out that 3 lines of code where you're getting the error for now, it's just there to protect you from making an "illegal" save in Editor mode. Unity must have removed that call, but I don't know when.

Oops...

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.