OK, let's talk about wings first. Wings are usually shown on a layer that is behind te body.
You are going to work with models that comes without wings, so for them it is a completely new layer.
So we should add it to the layers of a character set.
Layers are added to IIcharacter models by creating directories inside charsets\CHARSETNAME\layers\.
Layer directory name has format "priority.name[@group][.LR]", where  means optional things.
* priority - integer, means how deep the layer is drown, 0 - deepest, 100 - on above of 99 and so on
* name - text that would be displayed as a layer name
* @group - layers are grouped for better randomization and showing things like back hair and front hair together, common groups are "@body", "@dress", "@face" and "@hair"
* .LR - this mark is used for layers which consists of left and right items that are *usually* paired, but sometimes can be unpaired, an example is wearing different socks or only one shoe
I don't think that you would need unsymmetric wings, so I won't give details for ".LR" thing, so lets just say that wings folder should be named "NN.wings@body". NN is a number which depends on other layers existing for a charset that you are extending. Good priorities for wings are 12 is they are below back hair and 25 if they are above back hair but below body. Experiment with this number and check other charsets.
After you have a folder for a layer, you should put layer variants inside. Each in it's personal folder.
Layer variant directory name has format "name[.X.multiplier][.IF.key.value]*[.IFNOT.key.value]*".
* name - displayed name of layer variant. IMPORTANT: if layer name is '-' is avaliable, than layer is optional and cross icon is displayed to disable that layer
* multiplier - integer, affects probabilyty of getting this layer variant randomly. ".X.0" is used if randomizer should never pick this variant (for nude safe randomization, for example)
* if some variants can be applied only in some cases, ".IF.key.value" and ".IFNOT.key.value" can be used.
You don't need IFs for most charsets, so let's skip it for now. Wings are something optional and not usually present on random characters, so you would need to create "-.X.NN" folder inside your "12.wings@body" folder, where NN is how much oftener character without wings should be autogenerated. Experiment with this number and check other charsets.
For each other wings variant you need to create a folder with meaningful names like "Fairy wings", "Dragon wings", "Angel wings", etc. Or just create folders "1", "2", "3", "4", etc.
Now, lets put some graphics for each wings variant. IIcharacter supports several image sources and lots of image modifiers, let's just discuss the main scenario of showing a non-animated layer containing one *.png.
In this case, png image file name has format "name[.T.color][.C.color].png"
* name - non-displayed name of an image, not used anywhere
* .T.color / .C.color - color name that would be displayed in recolor tab of IIcharacter, common colors are "skin", "hair", "eyes". Use a name different to existing colors if needed.
".C.color" is used for recoloring BLACK&WHITE image by changing RGB color space.
".T.color" is used for recoloring BLUE image by changing HSV color space.
Let's summarize this. You should have something like this:
Code: Select all
White wings.png - image with white wings
Dragon wings.T.wings.png - image with blue wings
I hope that would be enough for now.
Feel free to ask if you need some even more complicated scenarios, like composing layers from several pngs, adding animation, configuring transparency, checking conditions if this wings can be combined with other layers, adding limits for colors and palletes, showing layer at given position instead of using image's top left corner, etc...