Skip to content
This repository has been archived by the owner on Mar 28, 2024. It is now read-only.

[BUG-11132] [BENTO] Requests for additional bones and attachment points #1375

Open
2 tasks
sl-service-account opened this issue Jan 5, 2016 · 18 comments
Open
2 tasks

Comments

@sl-service-account
Copy link

sl-service-account commented Jan 5, 2016

We've had some requests in the forums for additional bones and attachment points. Filing this to track the various requests in one place.

Links

Related

Original Jira Fields
Field Value
Issue BUG-11132
Summary [BENTO] Requests for additional bones and attachment points
Type New Feature Request
Priority Unset
Status Been Triaged
Resolution Triaged
Reporter Vir Linden (vir.linden)
Created at 2016-01-05T14:42:42Z
Updated at 2019-11-17T18:53:51Z
{
  'Business Unit': ['Platform'],
  'Date of First Response': '2016-01-05T09:03:33.481-0600',
  'How would you like the feature to work?': 'The avatar should support the requested new joints.',
  'ReOpened Count': 0.0,
  'Severity': 'Unset',
  'Target Viewer Version': 'viewer-development',
  'Why is this feature important to you? How would it benefit the community?': 'Additional joints would extend the capabilities of the mesh avatars that could be created.',
}
@sl-service-account
Copy link
Author

Vir Linden commented at 2016-01-05T14:43:52Z

Additional spine joints have been requested multiple times, especially for the neck. One proposal suggested changing the meaning of mHead and mSkull to turn one of them into a neck joint.

@sl-service-account
Copy link
Author

Vir Linden commented at 2016-01-05T14:44:25Z

Toes

@sl-service-account
Copy link
Author

Vir Linden commented at 2016-01-05T14:44:55Z

Single per-foot ball of the foot joint. It appears that the existing mToe joints should work for this.

@sl-service-account
Copy link
Author

Vir Linden commented at 2016-01-05T14:46:57Z

Nipple attachment points. It wouldn't be possible to do this in a way that would work for the default avatar, given the existence of avatar physics. Might be something that could work for mesh avatars.

@sl-service-account
Copy link
Author

Vir Linden commented at 2016-01-05T14:47:52Z

Additional ear joints for floppy ears.

@sl-service-account
Copy link
Author

Gaia Clary commented at 2016-01-05T15:03:33Z, updated at 2016-01-05T18:26:00Z

Add 3 mBones on the symmetry axis to make animations of face expressions easier:

mFaceLowerLipCenter
mFaceUpperLipCenter
mFaceForeheadCenter

About Lips and Eyes

So, do we loose something (for humans) when we only have 4 lip bones?
And do we gain something (for creatures) when we use 4 Eye brow bones?

Here is an alternative bone setup proposal for eyes and mouth:

mFaceLipUpper (centered)
mFaceLipLower (centered)
mFaceLipRight (corner)
mFaceLipLeft (corner)

mFaceEyeBrowUpperRight (centered)
mFaceEyeBrowInnerRight (corner)
mFaceEyeBrowOuterRight (corner)

mFaceEyeBrowUpperLeft (centered)
mFaceEyeBrowInnerLeft (corner)
mFaceEyeBrowOuterLeft (corner)

mFaceEyeLowerRight (centered)
mFaceEyeLowerLeft (centered)

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.

@sl-service-account
Copy link
Author

Veron Helstein commented at 2016-01-05T18:01:07Z, updated at 2016-01-05T18:05:10Z

I whould like to see toes as well ... make nails with heads while you are at it :)

btw: I'm all for more complex wings like suggested in 10988

@sl-service-account
Copy link
Author

Teager commented at 2016-01-05T19:50:09Z

It was brought up in the thread that my original request to parent the facial bones to mSkull instead of mHead wouldn't work, because some mesh hair creators rig their hair to mSkull instead of mHead or HEAD.

I ammend my original request to instead request a new parent facial bone - faceBase - in between mHead and all of the facial bones, to achieve the same purpose of allowing an extra neck bone without breaking anything.

@sl-service-account
Copy link
Author

aki.shichiroji commented at 2016-01-07T22:25:37Z

RE: neck bones: Since some issues concerning backwards compatability were raised concerning the addition of neck bones, is there any reason why we can't - rather than splitting existing neck bones - at the very least one or two extra bones be added above mSkull, and to accept animations for them?

Being able to animate mToe would also be very much appreciated.

@sl-service-account
Copy link
Author

Vir Linden commented at 2016-01-07T22:39:20Z

Is there a problem with animating mToes currently?

Adding additional joints along the existing spine would be ideal, but currently causes some bugs. We will be doing more investigation on it.

@sl-service-account
Copy link
Author

Teager commented at 2016-01-08T00:43:11Z

The mToe bones can be rigged and animated, as proven by several nonhuman avatars. As far as I'm aware the only thing preventing animation of the mToe bone is mesh body creators not rigging to it, and the only thing preventing them from rigging to it is lack of animations that use it. Perhaps if the standard sl avatar were rigged to mToes, this practice might become more common.

@sl-service-account
Copy link
Author

Vir Linden commented at 2016-01-08T14:04:27Z

Updating the standard avatar is outside the scope of Bento, but could be something to consider for future work. I think the foot placement code works with mFoot rather than mToe, so keeping someone on tiptoe synced to the ground might also require some tweaking (like adjusting hover height)

@sl-service-account
Copy link
Author

Vir Linden commented at 2016-01-20T13:54:14Z, updated at 2016-01-21T16:06:33Z

Request for more wing joints - fingers. Rolling this in from BUG-10988:

How would you like the feature to work?
I would like to see more wing joints on the skeleton, enough for dragon, demon, or back bat wings.
the base joints should be fine, the finger joints just need to be added
here is a bat vs bird skeleton image
http://evolution.berkeley.edu/evolibrary/images/evo/bat_bird.gif
the extra finger joints could also be re-purposed as tentacle or other miscellaneous appendage joints.
Why is this feature important to you? How would it benefit the community?
I dabble in Furry Avatar creation and this would make lots of dragon, demon, bat, etc avatar creators happy.
Original Reporter:
OldVamp

@sl-service-account
Copy link
Author

Vir Linden commented at 2016-01-21T18:23:58Z

Gaia Clary from the feedback thread:

From all what i tried so far i found that having those center bones in place has 2 advantages:
The automatic weight creation creates much more useful results
The squarish mouth animations can be fully avoided
So if you'd ask me, i would do the following 3 changes (ordered by "most wanted"):

Add visual center bones (mFaceUpperLipCenter, mFaceLowerLipCenter, mFaceForeheadCenter
Add Extra bones for the ears (flapping ears)
Add structural BoneRoots (mFaceUpperRoot, mFaceCenterRoot, mFaceLowerRoot)
When asked which bones could be removed i tend to say, the lower cheak bones might be less important (could be replaced by the lip corner bones if needed)

@sl-service-account
Copy link
Author

Gaia Clary commented at 2016-02-02T17:26:24Z, updated at 2016-02-02T18:03:06Z

Here is a proposed avatar_skeleton.xml and a related avatar_lad.xml:

http://blog.machinimatrix.org/wp-content/uploads/2016/02/avatar_skeleton.xml
http://blog.machinimatrix.org/wp-content/uploads/2016/02/avatar_lad.xml

These files are based on the original Bento xml files and they
have been modified according to suggestions from

Cathy Foil (Proposed to reduce the joint location precision)
Gaia Clary (Proposed the 3 center face joints and 2 tails)
Matrice Laville (Added some editing to the avatar_lad.xml)
Medhue Simoni (Added a couple of suggestions, like 2 ear bones, moving the cheeks, ...)

the above skeleton has been used to create this video:

https://www.youtube.com/watch?v=GxGPPMvBm0c

Here is a detailed list of changes:

== Reduced joint position precision to 4 digits ==

According to Cathy this is sufficient.

== New bones in the face center ==

We added 3 bones on the symmetry line:

mFaceLipUpperCenter
mFaceLipLowerCenter
mFaceForehead

With those new bones the automatic weight from bones feature from blender
(weight from bone heat) gives much better initial results compared to not
having those bones in place. Also those bones helped (me) to make more
subtle changes on the lips. Especially the Oh and Ah phonemes have made
the lips much more rounded.

Note: From all our changes i think this one is the absolutely
most important change of all.

== New Root Bones ==

We added 3 root bones

mFaceRootTop
mFaceRootCenter
mFaceRootBottom

We used these bones here mainly for organisation and easier layout.
So there is no strong reasoning to have them for weighting.
They could be useful for creatures where the mouth part needs
to be moved to some other area on the mesh. It may also be of
benefit when translation animation is not supported or when
the animator does not want to use translation animation.

Note: This is the least important change.

== one more Bone on the ears ==

I found it a good idea to have those extra bones for flapping
ears (creature creators will want that)

== Moved Cheek bones downwards ==

Medhue's reasoning sound right. When i was working on this modified
face rig i found the new cheek position to work much better.

== Added an additional Tail ==

The reasoning for this is that adding one more pair of limbs
can not be done easily by reusing the Wings. And reusing the
current tail does not work either when we want to have a pair
of limbs. So we replaced the 6 Tail bones by 2*5 bones

mTail1Left, mTail2Left, mTail3Left, mTail4Left, mTail5Left
mTail1Right, mTail2Right, mTail3Right, mTail4Right, mTail5Right

Although the names imply a left/right symmetry we have chosen
the rest pose to by center symmetric. I am a bit unhappy with
this but it might be good for practical purposes.
Maybe there is a better solution around.

== Removed unnecessary WingRoot Bones ==

We assume that we will finally get the Bone translation animations.
In that case we do not need 3 WingRoot bones. Our alternative
contains only one wing root instead of 3 as it was first proposed.

== Moved joints to character surface ==

When we only have rotation animation, then we must move the
joints (Bone heads) "into" the head because we need a
rotation angle to mimic a translation on the surface.
The main problem with that is:

  • Having the joints closer to each other and farther away from
    the surface results in much more spreading of the bone weights
    over the bones. This needs much more work on the weights(we have
    the face weighting tool for compensate for that)

  • The rig looks much more cluttered

  • The rotation animation only allows for moving the Vertices
    on spherical surfaces which means that you can get distortions
    much faster. Although i found it was not such a big issue
    with human faces. We believe this is mostly because the
    human head is more or less a sphere anyways.

    When we use translation animation then it makes much more sense
    to move the joints on the surface. This avoids many problems
    with weighting (see above) and it makes the rig easier
    to use because now the bones are all on the character's
    surface and not hidden inside it.

@sl-service-account
Copy link
Author

kayla Mekanic commented at 2016-02-02T18:57:40Z

Request to add two extra bones for the lips.

For the lips, I would recommend 2 bones for upper lip and 2 for lower lip, instead of
just 1. 6 lip bones in total. It would make it more possible for face expressions like sneering. So instead of just 1 center bone each for upper and lower lip, you will have two.

mUpperlipLeft
MUpperlipRight

MLowerLipLeft
MLowerLipRight

@sl-service-account
Copy link
Author

Gaia Clary commented at 2016-02-02T19:15:01Z

I mentioned only the changes that we made based on the first Bento proposal. So in fact the new proposal contains 8 lip bones instead of the 6 from the original proposal:

mFaceLipCornerLeft, mFaceLipCornerRight
mFaceLipUpperLeft, mFaceLipUpperRight
mFaceLipLowerLeft mFaceLipLowerRight
mFaceLipUpperCenter, mFaceLipLowerCenter

@sl-service-account
Copy link
Author

kayla Mekanic commented at 2016-02-03T09:03:12Z

Even better!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant