secondlife / jira-archive

2 stars 0 forks source link

[BUG-100521] Provide a programmatic way to reset skeleton #105

Open sl-service-account opened 7 years ago

sl-service-account commented 7 years ago

How would you like the feature to work?

This is for the record from one of those content creation campfire meetings, requesting this to be logged.

The feature request is to be able to reset skeleton programmatically. The use case for this is:

  1. you created a rigged mesh with bone translation
  2. you use an animation to align the bone properly again when your customer wears it
  3. when your customer detach the rigged mesh, you call llResetSkeleton() or something to put skeleton to the original form from before.

Why is this feature important to you? How would it benefit the community?

Without this capability, customer of that rigged mesh usually has to reset skeleton manually from the viewer menu. And that only work from the customer viewer, others will see this avatar in strange deformed shape.

I do not know enough to present all benefits, please perhaps leave this open for a while such that people can comment and discuss. I am especially worried bone translation only get displayed properly on one user viewer and not on others and that reset works the same. So the API may have to figure out a way to make sure that everyone see the same shape.

Links

Related

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-100521 | | Summary | Provide a programmatic way to reset skeleton | | Type | New Feature Request | | Priority | Unset | | Status | Accepted | | Resolution | Accepted | | Reporter | SoniaVileva (soniavileva) | | Created at | 2017-04-25T11:10:26Z | | Updated at | 2017-05-08T22:46:20Z | ``` { 'Business Unit': ['Platform'], 'How would you like the feature to work?': 'This is for the record from one of those content creation campfire meetings, requesting this to be logged. \r\n\r\nThe feature request is to be able to reset skeleton programmatically. The use case for this is:\r\n\r\n1. you created a rigged mesh with bone translation\r\n2. you use an animation to align the bone properly again when your customer wears it\r\n3. when your customer detach the rigged mesh, you call llResetSkeleton() or something to put skeleton to the original form from before.\r\n', 'ReOpened Count': 0.0, 'Severity': 'Unset', 'Target Viewer Version': 'viewer-development', 'Why is this feature important to you? How would it benefit the community?': 'Without this capability, customer of that rigged mesh usually has to reset skeleton manually from the viewer menu. And that only work from the customer viewer, others will see this avatar in strange deformed shape. \r\n\r\nI do not know enough to present all benefits, please perhaps leave this open for a while such that people can comment and discuss. I am especially worried bone translation only get displayed properly on one user viewer and not on others and that reset works the same. So the API may have to figure out a way to make sure that everyone see the same shape. ', } ```
sl-service-account commented 7 years ago

SoniaVileva commented at 2017-04-25T17:03:09Z

With more reading, I think the follow is a better solution:

https://jira.secondlife.com/browse/BUG-20027

instead of calling a new function.

I'd image that it will work as follow:

  1. Run your bone translation animation in a loop in low priority to put bones into proper positions. llStartAnimation(reset4myRig)

  2. Use llStopAnimation(reset4myRig) such that the rig will restore back to the original positions before.

This approach is better as it does not require to worry about the case of sending the reset to all other viewers. All other viewers just have to play the animations and stop play the animations as it is current doing with the enhancement suggested in 20027.