Jump to content

They gave us the bento skeleton and the ability to translate bones, but "reset skeleton" is done viewer-side. Why can't it be server side?


iPro
 Share

You are about to reply to a thread that has been inactive for 1358 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Is there any good reason for this? Why should the user have to log out and log back in to reset their skeleton for everyone else to see them as un-deformed? Is there a jira on this? Would be great if this could be done by script too.

Edited by iPro
typo
Link to comment
Share on other sites

There are infinite joint positions and rigs out there. Playing an undeform script isn't always the solution. It rarely is. Even changing the avatars shape can offset the location of joints. For example. if I animate+translate an anim for breasts size 50 and a user with size 90 breasts uses the animation, her breasts will be shrunken down to size 50 sizes.

Link to comment
Share on other sites

1 hour ago, iPro said:

There are infinite joint positions and rigs out there. Playing an undeform script isn't always the solution. It rarely is. Even changing the avatars shape can offset the location of joints. For example. if I animate+translate an anim for breasts size 50 and a user with size 90 breasts uses the animation, her breasts will be shrunken down to size 50 sizes.

the undeformer animation that we use in a script is the animation that will restore the skeleton to the defaults that work for our particular avatar. A tinie avatar for example has a different undeformer animation than a standard human. A anthro avatar with goat legs has a different animation to the others. And so on

edit add:

with a human shape the most simple undeformer is a T-pose that moves every bone (that is not already) to the standard T-Pose position. When this is played it is broadcast to everyone else in the view. When it stops playing the bones are where they should be for a standard human avatar and the next animation played (in our AO for example) plays as it should and our avatar behaves in everyone's view as it should

for a non-standard avatar then we need an undeformer animation that will put the bones into the non-standard positions which work with our particular non-standard skeleton

Edited by Mollymews
  • Like 1
Link to comment
Share on other sites

  • 1 month later...
On 11/19/2020 at 10:01 AM, iPro said:

The question is, "Why can't "reset skeleton" be done server-side?"

Because the server isn't even aware of the existence of such a thing as the skeleton. Skeletons are viewed and managed viewer side only. However, the system might be changed with the viewer sending a reset message to the region and the server broadcasting it to the other agents in the same region. I can see, though, a new griefing tool given birth by such functionality. Although reset skeletons requests aren't likely to be used often, a griefer could exploit it to choke the simulator with hundred of requests per second, and probably that's why such a feature was not implemented. 

  • Like 1
Link to comment
Share on other sites

5 hours ago, OptimoMaximo said:

Because the server isn't even aware of the existence of such a thing as the skeleton. Skeletons are viewed and managed viewer side only. However, the system might be changed with the viewer sending a reset message to the region and the server broadcasting it to the other agents in the same region. I can see, though, a new griefing tool given birth by such functionality. Although reset skeletons requests aren't likely to be used often, a griefer could exploit it to choke the simulator with hundred of requests per second, and probably that's why such a feature was not implemented. 

Thank you so much for taking the time to understand my question! This makes sense and they could limit requests to prevent griefers from exploiting this.

Link to comment
Share on other sites

On 11/19/2020 at 7:20 AM, Mollymews said:

with a human shape the most simple undeformer is a T-pose that moves every bone (that is not already) to the standard T-Pose position. When this is played it is broadcast to everyone else in the view.

Uh I missed this one. Although it may seem that simple, animations use absolute position values for joints relative to the avatar root. That doesn't take the shape sliders into account, which work by scaling joints on one axis, and that gives the illusion of joints location change.... BUT there is such a thing like scale, rotate and translate specific pivots, and that's where the issue explained above kicks in. The animated position takes all pivots and places them somewhere, regardless of the fact that they don't have the same coordinates and, as result, you'll get your shaped bones repositioned in their scaled form using the scale pivot location, causing an awkward stretch - compression of the mesh. This is why, when making a custom avatar that has nothing to do with the default human, like a quadruped for example, the only way to avoid issues is to always start from a neutral shaped female skeleton. 

Edited by OptimoMaximo
  • Like 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1358 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...