Dress Up - EasterEggProductions/adventure-mode-godot GitHub Wiki

Dress Up is a system to manage items on a skeleton. It accomplishes this with two broad categories of items, Garments and Accessories. Garments contain the data needed for skinned mesh renderers, and Accessories are a heavier weight general purpose items that instance a whole scene.

Table of Contents

Purpose

Dress Up is intended to provide the tools necessary to build features such as swapping items, clothing, and more, on characters.

Classes

Two resource classes, Garments and Accessories, comprise the bulk of the system. DresserUpper is a node derived class that manages the items on the Skeleton3D

Garment

Garment resource contain the mesh, skeleton, and other material data. These are skinned meshes that would bend and be animated with a Skelton3D

Accessory

The Accessory resource is simpler but more powerful. It contains a PackedScene reference, and when the Accessory is applied, the entire scene is instanced, and tracked to a bone in the skeleton.

DresserUpper

This class is meant to be instanced on a basic Node, and with a reference to the Skeleton3D, will use it's list of garments and accessories to dress it up. It contains methods for equipping and unequipping items, checking if there are conflicts between items, and checking if an item is equipped.

Current Limitations

Currently the system has some redundant data, such as the material being stored in the mesh data in Godot, but another material is stored in the Garment data. Additionally the properties and tweaks do not work, these were to alter material values like tints, blend shapes, decal textures, and the like.

Future Goals

There are a few goals to make DressUp more functional,

  1. Serialization methods for saving, loading, or network syncroinzation.
  2. Item layering and supression. For example, placing armor over a shirt, and possibly some sort of logic for the shirt's sleeves to still be visible.
  3. Signals and callbacks for when items are added or removed, possibly per bone.
  4. Skinned mesh baking. This would combine the equipped garments to one mesh, and possibly merge materials when possible.
⚠️ **GitHub.com Fallback** ⚠️