Inara has an update from the last meeting that looks complete and has audio from the meeting. See: Project Bento User Group update 2 with audio. She has broken the audio clips up by topic, which is handy.
For those short on time, the meat from the meeting:
- More bones will likely be added.
- At some point the Lab will ‘probably’ decide which bones based on a user poll.
- There is some IK bone problem with the toes.
- Oz is unlikely to allow IK bone changes as that would very probably break existing content.
- Using a pose other than the standard T-Pose and basic bone positions seems to cause random problems for random users. Some see the avatar deformed in odd ways while others don’t. The fix is for the one wearing the avatar to remove and re-wear it.
- Shape sliders do not work correctly with avatars based on a pose other than the standard T-Pose. Instead of the slider changing bone length as intended, it changes bone thickness. Not a usable situation.
- There are requests to allow weighting to more than 4 bones, the current limit. Vir Linden says they have looked at doing that. The required changes are far to complex, both viewer and server side. So, that is not going to happen as part of Project Bento. May be as some future project.
- Presently fitted mesh must include all 26 collision bones. As there is a 110 bone limit for animating a single mesh, this can be a problem. Oz Linden is looking to see if that can be changed.
- There are requests to add bones into the existing skeleton. The key in the idea is ‘into’ rather than ‘onto’. Skeletons are built as trees or chains of bones. So, pelvis to spine, to neck, to head is an existing chain. Changing to pelvis to spine to collar to neck to head is adding IN a bone. This adding a bone between the spine and neck would break existing content. Adding new branch like pelvis to spine to wing root to right-wing is adding ON a branch, which is not a problem… or an easy one for the Lindens to solve. They are looking to see if there is a way to add IN bones. If they can do it without breaking existing content, then we are likely to see some new bones added IN.
The project is moving forward. There is lots of user input being accepted for consideration by the Lab. We went through a similar process with mesh and pathfinding. This one seems to be more open and Vir and Oz seem to be more receptive to suggestions.
I can’t put my finger on explicit examples of the ‘receptive’ difference. So, I’ll call it a subjective opinion. But, the explanations of why something cannot be done are more… well defined… than in previous development iterations, at least I think so.
The Chain Problem
The problem with adding IN a bone has to do with making all existing animations unusable. The Lab simply won’t do that.
What happens is an animation tells the system how to move the pelvis which moves the spine and all the bones out to the end of the chain. The spine-move then propagates to the end of the change, the neck move to the head and the head the head. We now have the head in a position designated by the animation, which is dependent on each preceding bone in the chain.
Now add in a collar bone. The existing animation moves are good up to the collar. Then what happens? The viewer has to know otherwise things go sideways. It can’t even decide to do nothing. It just throws up it hands and crashes. Basically a ‘I didn’t expect this and have no clue what to do’ reaction. ERROR, bye, you figure it out.
Can the Lindens program the system to skip a bone that has no movement or is not included in the animation? May be. They are looking at that problem. If they can solve it, we can add IN bones.
While it seems simple to tell the viewer to skip a bone, it isn’t that simple. Part of the process is figuring out how to build the avatar based on where bones are. The viewer optimizes what it does based on knowing how the avatar is built. So, lots of stuff has to change when the routine changes. Lots of code makes assumptions as to what is possible. All those assumptions have to be looked at.
Plus there is the challenge of what users will do if they know the system will skip bones it doesn’t know about… It gets complex.