Gaia Clary wrote:
{snip}
Only 1 wing root but 2 tails
To allow a second pair of legs without need to create odd animations:
mWingsRoot
mTail1Left
mTail2Left
mTail3Left
mTail4Left
mTail5Left
mTail1Right
mTail2Right
mTail3Right
mTail4Right
mTail5Right
This change allows to add a second pair of legs which are attached to mPelvis instead of mChest.
This leads to 11 bones compared to the 9 bones we have now.
Also Creatures with tail and 2 pairs of legs could reuse the wings as tail and possibly get a wiggling tail "for free" (because of the automatic breath animation for the chest)
Alternative to the 2 tails solution: "constraints"
This idea came to our minds when we where working on the bone constraints for the Avastar IK Rig. The idea is:
Parent the Wings root to the Spine, but also add for example a (configurable) constraint to the local rotation of mChest to mWingRoot. If possible make the constraint target configurable, so that users can "clamp" the wings to mChest, or mTorso or mSpine, or mhead, ...
To explain this a little better: This idea does not change the topology of the Skeleton. It only adds bone movement constraints which make one bone (the driven bone) follow another bone (the controlling bone). Bone constraints are very common in animation programs, so maybe it is also doable in the Second Life Viewer. We use this technique in Avastar to separate the deform bone animations from the Rig (so we could add IK based animations)
Generalize constraints
If constraints can be implemented in general, then this concept could be generalized to work for all limbs, then users can for example constrain the root bones of the legs, arms, wings and tail to mSpine and create a 7 legged creature that can be animated without adding odd rules to the animation.
Thinking even further, if location constraints where allowed, then this idea allows to constrain any limb to any bone. Wings could then be constrained to eye brows for antennas, tail(s) could be constrained to chest for 4 winged creatures, etc.
I would like to voice my very enthusiastic support for either of these ideas, but more specifically the constraints to make use of the bones we already have.
Allow me to domenstrate a usage. For bento I am focusing on developing my own centaur body (human upper half, horse lower half.)
Now you'd think that using the extra limb bones (the wings) would be usable, and i shouldn't be having an issue. However this is not the case, because if i repurposes the wing bones as leg bones, which i could, i would be forced to apply a full-body animation to the centaur avatar because of the wing's parenting to the chest. This would mean that users could not animate the upper half with their own animations and would be stuck using whatever i made for them, meaning it would not be comaptible with a large amount of content they already own. Like for example, anything that would animate the arms like props and weapons, as well as pre-existing human poses to give unique personality to the upper human body.
Something that go quite well with a centaur is a bow and arrow set! and there's plenty out there, and i doubt my customers would want to be forced to use a limited amount of animations I could provide for them. That breaks the overall versatile second life experiance that draws so many users to begin with.
So this brings me to using only bones that parent to the lower body, or the pelvis, such as the leg bones, the tail, and the groin. I split the tail in two so each extra back leg would have 3 tail bones each, and moved the unused toe bones from the front legs to be a fourth bone for each leg, allowing me to animate all nessecary joints of the horse's legs. I also repurosed the groin bone as a very simple tail bone.
Now, this rig will function in second life (thanks to translations! ) if it's provided with the proper animations. Which is all fine and dandy, but since the toe bones are connect to the front legs, when I try to move a back leg I run into this issue:
The hoof stays behind.
The same thing happens when I move a front leg, but in reverse:
The back hoof moves with the front leg it's connected to.
Also, since the tail bone is all connected, when i move the leg that has the tail's parent bone, both of them move together.
In order to make animations for this bone setup, with current second life restrictions, I would have to manually, by hand. move every bone back in place when I try to animate every frame of the animation. That is extremely tedius, painful work, especially considering the solution would be simple, as Gaia has suggested in her post. The solution would be to allow to add custom constraints to these new limbs so we could use preexisting bones for new uses, or to change the tail to be two tails with 4 to 5 bones each. Unfortunately, the extra tail only benifits users like myself who would find use of it in a similar fashion, and thus the constraint concept would function much easier and kinder on all creators as a whole as it would allow anyone to repurpose any bone for any usage in their projects.