I’m working on a system, called UMAElements, for UMA that enables devs and content creators to create humanoids using almost lego like pieces, and a minimum of coding.
The main core is a new Elements Library (pretty similar to the UMA SlotLibrary for those that know UMA). This Library consists of ElementData ScriptableObjects. Each ScriptableObject can be a body-part, an item of clothing, or an attachable item.
Elements are added together to produce a build. When adding an Element, a single multiplier color can be given, or three colors can be given used in conjunction with the Element’s splat-map image to provide dyeable clothing similar to most MMORPGs.
Attachments are an easy way to have things like weapons, backpacks, or inventory bags working with UMA, without being part of the internal UMA build and atlases. They are prefabs that are parented to one of the nine (currently) attachment points.
That’s the basics of UMAElements. The idea being to make UMA easily accessible to more people, as it can be quite a complex system.
Looks great, however I can’t get the Test CS dye-able shirt demo to work.
When I press C all I get is: “Unsupported texture format - needs to be ARGB32, RGBA32, RGB24 or Alpha8”.
Hi Secret, for dyeable clothing, the texture for the splat map needs to be set to read/write and RGBA32 in the inspector, as does the diffuse texture for the UMA Overlay. That should enable the texture merger to work.
I’d set these options in the code if I could, but I’ve not seen any way to do that. Let me know if that works ok, or if you’re still having issues.
Nice work Whippets, very useful system
I have some ideas, to improve your system
in your method HumanoidBuilder.Update() we have to use Name of object
it cause some problems when we have 2 object at the same name, better option will be using GameObject instead of string
when we choose attachment position will be good to add rotation to items, as sample sword work good, but rifles need small rotation good idea is to customize local rotation
I think a better solution to item rotation is to just add it as a child to an empty gameobject and just adjust the rotation that way. Then you dont have to input the rotation as numbers for every single item : )
i thought to realize with it, but some items need other rotations when are in hand and other when are not active
just see screens:
in hand
on the left shoulder blade
I found 3rd issue, when we attach item as DefaultPosition None and set on it, item is deattach and lay on the ground on scene at 0,0,0