Wardrobe pieces are simply recipes that are set to Recipe Type "Wardrobe". Wardrobe Recipes can contain any number of slots and overlays, and are assigned to a specific "Wardrobe Slot" that is race specific - these are defined on the RaceData. Races are preconfigured with the most common wardrobe slots.

Adding a recipe to a slot removes whatever was previously at the slot. (So putting on a helmet,
for example, removes the previous helmet.) Wardrobe Recipes can also be set to suppress another
slot (for example, putting on the helmet can also suppress the Hair.)

A race has a base recipe that define what the default avatar of that race looks like - this contains
the slots and overlays for the body and skin.

Wardrobe recipes can also Hide parts of the base recipe. For example, putting gloves on the hands slot
can hide the base models hands. This solves the "poke through" issues that can occur, and lowers
resource usage.

The system manages this all by merging recipes when the avatar is built. A base slot can
appear in any number of recipes. for example, you might have a "face" recipe that contains the
head slot, and a "beard" recipe that also contains the head slot. The merging process will
correctly apply the beard after the face during the build process.

Scenes:

"UMA DCS Demo - Simple Setup". This shows how to create a DynamicCharacterAvatar,
and add wardrobe pieces, set colors, and adjust DNA. It's probably all you need for a single-player game.

"UMA DCS Demo - Using Asset Bundles". This is a more powerful demo
that has the ability to download asset bundles, and add races and clothing on the fly.

Wardrobe Recipe Asset

Right click on recipes folder and choose create->uma->dcs->wardrobe recipe

Name the recipe military hat

The first step is to choose which races are compatible with the recipe. You can drag races here from the project explorer, but it’s easier to click the box and pick them from the window the pops up. See the races section for more details on how to decide what races to pick.

Pick something user-friendly for the display value such as “camouflage hat”.

The wardrobe “slot” is not a slot in the traditional sense of an uma slot, that is, it’s not a mesh. The wardrobe slot, here simply means the place on the character the item should be placed. Since we’re building a hat recipe, choose helmet.

The “suppress wardrobe slot” list allows us to specify slots (meshes) on the UMA that should not be displayed. In our case, we may end up needing to suppress the hair on our UMA because it may poke through our hat. So, select the hair to be suppressed.

The “hides base slot” list is similar to suppressing but works on base meshes. For instance, if our hat had ear flaps for keeping the ears warm in winter, we would set the hide base slots to hide the ears so they didn’t show through the hat.

The “replaces” list allows the mesh item to entirely replace a part of the base mesh, but keep the overlays already assigned to it. This can be used, for example, when replacing a low-poly mesh with a high poly version when additional detail is needed.

The next step is to setup the slot and the overlay. The slot is the mesh that is displayed in the game, the overlay is the material the is applied to the mesh.

To find the slot, navigate to UMA->Content->Ruby-Military militia->Male_PBR-Slots-HumanMale_Mill_SeparatedUVs->Mill_Hat. There you will find a file called Mill_hat_slot. If you click on that file, you’ll see that it has a script type of “SlotDataAsset”. As that would imply, we’re going to drag that onto the box in our recipe that says “Drag Slots here. Click to pick” in our recipe. We should now have some more options below that where we can now add our overlay

As mentioned above, we now have to add our overlay, that is, the material for our mesh. Navigate to UMA->Content-Ruby->Military militia-Male_PBR->FBX-Overlays->HumanMale_Mill_SeparatedUVs->Hat_Cap_Var01. I picked Mill_hat_cap_var04 to use for my overlay. I noticed that several of the overlay assets were missing some of their textures, so probably best to use the same one to be safe. Drag that asset to where it says “None (overlay Data Asset)” in the Add Overlay section of the Mill_Hat_cap foldout.

That concludes setting up our recipe. Now that we have our recipe set up, we have to make sure the UMA dynamic character system knows about it. UMA keeps track of everything in a series of libraries. They are access via the UMA menu. UMA-> UMA global library.

Both the new recipe and the new hat assets (the slot and the overlay) must be added to the global library. This is really easy to do. Just drag the folders to the grey box that says “Drag Indexable assets here. Non indexed assets will be ignored.” The UMA system is smart enough to sift through whatever folder structure you drag onto that box and find things it doesn’t know about. So, just drag your top level “Recipes” folder and your top level “UMA” folder (where the Ruby assets were imported) onto that grey box and UMA will take care of the rest.