Hello,
I'm working on a pretty complex monster customization system for Unity Game Engine that would allow for 30+ unique characters composed of a Head, Body, Right Arm, Left Arm, and a pair of Legs. Any one of these categories must be interchangeable across all character types. So for example, a zombie body, with a werewolf head, ogre arms, and demon legs. The body is the part that connects all the rest and each body has its own unique pivot points for each limp, as well as a scaling factor for those limbs. I was planning to have each character be its own skin and use constraints to track the pivot points and scales. Lastly, the character has an up, side, and down facing direction (this is a top down game).
Since this is a pretty large and ambitious project, I want to be very sure that I am structuring the project correctly from the start.
Right now my project is set up like so:
• One character skeleton as root
• A slot for each body part (head, body, R. arm, L, arm, R. leg, L. leg)
• Each slot has an Up, Side, and Down placeholder
• Each character type has a Skin Folder and each typed body part has it's own Skin (Zombie Body Skin, Zombie Arm Skin, etc) and I use the Skin panel to mix and match one of each Body Part skin.
• Each Body Skin links to a constraint to rearrange the pivot points of each limb.
• I am using Animations to coordinate directional poses.
• I have all of this already importing nicely from Photoshop which is a big pro for me.
This works for most of my use cases. My only issue with this structure (so far) is that I worry about future extensibility and character type complexity. For instance, say I add in a Spider character and I want a pair of legs that are actually 6 legs instead of 2. To put it simply, it's as if I need to be able to swap out bone hierarchies with certain Skins. I don't think that's possible, so that is where I think this all falls apart. As far as I know, the only way to do this is to create all required bones and toggle/overload their use, but I worry about scope and performance over time. I also thought about each limb being it's own skeleton(and then I could create new skeletons for new limb types), but then I lose relationship between each body part, so that doesn't work.
I would prefer to use Spine since I already own Professional and would like to hire out animations more easily. I'm also more familiar animating in Spine. However, I am mainly a programmer, so I know that if I needed to, I could code all of this in Unity.
So I've come here wondering:
• Is there a better way for me to structure this to my needs?
• Should I be concerned about performance? I plan to have many instances of this character on screen at once.
• Should I even be using Spine for this over Unity Animation?
• Any "think outside the box" ideas?
I know that was a lot and this is an overloaded question. I very much appreciate anyone who can offer me any kind of recommendation. Thank you very much in advance!
-Eric