secondlife / jira-archive

2 stars 0 forks source link

[BUG-234984] LSL Feature Request: New statements for creating and playing back synthesized animations. #11804

Closed sl-service-account closed 4 months ago

sl-service-account commented 5 months ago

How would you like the feature to work?

Proposal Description. Implementation of scripts to experiment with the following functions. Partial playback of animation (setting start and stop times), EaseIn, EaseOut, Looping, LoopIn, LoopOut, Bone information, and Priority override. Preloading of animations and confirmation of their completion.

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

SL's animation playback scripts have remained very primitive and unchanged for the last 20 years. I think it is time to add new functionality, and this time I would like to propose the implementation of a new script that can be executed on the viewer side. (This is a function that should be executed on the server side, but since the scale of the modification is likely to be large, I am daring to propose something that can be executed on the viewer side this time.) This year SL has been able to obtain beautiful screens by supporting PBR Materials, and I would like the next step to improve the animations.

Problems. Currently, it is difficult to prepare the necessary animations, except for users who can create their own animations. This leads to the purchase of commercially available animations, but in such cases, it is rarely necessary to use everything from the beginning to the end of the animation. Scripts can make the animation stop early, but what is really needed is only part of the way through, and only some of the bones of the animation.

For this reason, I have long felt the need for a function that would allow me to extract a portion of the motion from multiple animations and merge it together to create the motion I need.

Technical Benefit. With this function, anyone can get the animation they need by synthesizing even existing animations, making it easier to create machinima, dance videos, VLogs, and other animated works the way they want. Poses can also be created by setting the start and stop times to the same and activating Looping. This helps the photographer to create poses. Although it is possible for photographers to create poses themselves, they are not experts in creating poses. In this respect, poses cut from animated images are dynamic and can easily be used to get the poses needed. The ability to play back the animation in slow motion with a sequence of poses also makes it possible to accurately adjust the start time of the animation and the position of objects when setting up a scene in which avatars or avatars and objects are in contact during the creation of a movie. For example, it helps to adjust the position of the hands and legs when avatars fight each other, or to correctly align the bat and ball when an avatar hits a ball with a bat.

Effect on the market. In the past, some would have wanted to make a video but had difficulty obtaining the animation they needed, so they compromised with animation of unintended movements, or gave up on the production. Photographers also struggle to obtain unique poses that are different from others. In such a situation, the implementation of this function will change the situation. At the very least, it will be a great benefit to video and photo shooters who use animations and poses. Also, animation is a labor-intensive process to create a good motion of the whole body, but it is easy to create various motions of some bones. So there could be a market for such animations. If it encourages new animation creators and photographers, the trend will circulate. The result will be a reflection of SL as a whole. The Art, Music and Photography forum and the Machinima forum will be revitalized. SL videos will increase on YouTube and other video posting sites.

Considerations. Since scripts are executed on the viewer side, necessary animations must be downloaded in advance. Therefore, a function is also required to preload animations to the viewer side and check if they exist. Scripting is not that difficult to implement, since all that is required is to extract a portion of the animation once downloaded to the viewer side, override EaseIn, EaseOut, Looping, LoopIn, LoopOut, bone information, and priority, and then replace it with a conventional animation file. It is not that difficult to implement. However, throughput will not be improved because all of the animation data will be downloaded, even if only a portion of it is used. Still, since there is no need to consider communication latency, animation synthesis will be accurate, and high quality animations will be generated, so there will be no more shooting failures.

On the other hand, there is a possible way to do this on the server side. That is, only the necessary parts of the animation are cut out on the server side. This reduces the amount of data transmitted and lowers throughput, which is a great benefit to the user but increases the load on the server. In addition, the latency caused by the communication will delay the composition of the animation, so accurate composition will not be possible. In this case, it may be necessary to use the Ease setting to cover up the inadequacy of the animation composition. The implementation of this will be difficult, as it will not be handled solely by the viewer. However, if this can be done, there is an advantage of being able to use composited animation for animations seen by others, such as AO, Game, Experience, Combat System, and so on.

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-234984 | | Summary | LSL Feature Request: New statements for creating and playing back synthesized animations. | | Type | New Feature Request | | Priority | Unset | | Status | Closed | | Resolution | Unactionable | | Reporter | Sloverdrive (sloverdrive) | | Created at | 2024-01-15T12:30:10Z | | Updated at | 2024-01-26T03:10:04Z | ``` { 'Build Id': 'unset', 'Business Unit': ['Platform'], 'Date of First Response': '2024-01-16T05:47:15.889-0600', 'How would you like the feature to work?': 'Proposal Description.\r\nImplementation of scripts to experiment with the following functions.\r\nPartial playback of animation (setting start and stop times), EaseIn, EaseOut, Looping, LoopIn, LoopOut, Bone information, and Priority override.\r\nPreloading of animations and confirmation of their completion.', 'ReOpened Count': 0.0, 'Severity': 'Unset', 'Target Viewer Version': 'viewer-development', 'Why is this feature important to you? How would it benefit the community?': "SL's animation playback scripts have remained very primitive and unchanged for the last 20 years.\r\nI think it is time to add new functionality, and this time I would like to propose the implementation of a new script that can be executed on the viewer side.\r\n(This is a function that should be executed on the server side, but since the scale of the modification is likely to be large, I am daring to propose something that can be executed on the viewer side this time.)\r\nThis year SL has been able to obtain beautiful screens by supporting PBR Materials, and I would like the next step to improve the animations.\r\n\r\nProblems.\r\nCurrently, it is difficult to prepare the necessary animations, except for users who can create their own animations.\r\nThis leads to the purchase of commercially available animations, but in such cases, it is rarely necessary to use everything from the beginning to the end of the animation.\r\nScripts can make the animation stop early, but what is really needed is only part of the way through, and only some of the bones of the animation.\r\n\r\nFor this reason, I have long felt the need for a function that would allow me to extract a portion of the motion from multiple animations and merge it together to create the motion I need.\r\n\r\nTechnical Benefit.\r\nWith this function, anyone can get the animation they need by synthesizing even existing animations, making it easier to create machinima, dance videos, VLogs, and other animated works the way they want.\r\nPoses can also be created by setting the start and stop times to the same and activating Looping.\r\nThis helps the photographer to create poses. Although it is possible for photographers to create poses themselves, they are not experts in creating poses. In this respect, poses cut from animated images are dynamic and can easily be used to get the poses needed.\r\nThe ability to play back the animation in slow motion with a sequence of poses also makes it possible to accurately adjust the start time of the animation and the position of objects when setting up a scene in which avatars or avatars and objects are in contact during the creation of a movie.\r\nFor example, it helps to adjust the position of the hands and legs when avatars fight each other, or to correctly align the bat and ball when an avatar hits a ball with a bat.\r\n\r\nEffect on the market.\r\nIn the past, some would have wanted to make a video but had difficulty obtaining the animation they needed, so they compromised with animation of unintended movements, or gave up on the production.\r\nPhotographers also struggle to obtain unique poses that are different from others.\r\nIn such a situation, the implementation of this function will change the situation.\r\nAt the very least, it will be a great benefit to video and photo shooters who use animations and poses.\r\nAlso, animation is a labor-intensive process to create a good motion of the whole body, but it is easy to create various motions of some bones.\r\nSo there could be a market for such animations. If it encourages new animation creators and photographers, the trend will circulate. The result will be a reflection of SL as a whole.\r\nThe Art, Music and Photography forum and the Machinima forum will be revitalized.\r\nSL videos will increase on YouTube and other video posting sites.\r\n\r\nConsiderations.\r\nSince scripts are executed on the viewer side, necessary animations must be downloaded in advance.\r\nTherefore, a function is also required to preload animations to the viewer side and check if they exist.\r\nScripting is not that difficult to implement, since all that is required is to extract a portion of the animation once downloaded to the viewer side, override EaseIn, EaseOut, Looping, LoopIn, LoopOut, bone information, and priority, and then replace it with a conventional animation file. It is not that difficult to implement.\r\nHowever, throughput will not be improved because all of the animation data will be downloaded, even if only a portion of it is used.\r\nStill, since there is no need to consider communication latency, animation synthesis will be accurate, and high quality animations will be generated, so there will be no more shooting failures.\r\n\r\nOn the other hand, there is a possible way to do this on the server side.\r\nThat is, only the necessary parts of the animation are cut out on the server side.\r\nThis reduces the amount of data transmitted and lowers throughput, which is a great benefit to the user but increases the load on the server.\r\nIn addition, the latency caused by the communication will delay the composition of the animation, so accurate composition will not be possible. In this case, it may be necessary to use the Ease setting to cover up the inadequacy of the animation composition.\r\nThe implementation of this will be difficult, as it will not be handled solely by the viewer.\r\nHowever, if this can be done, there is an advantage of being able to use composited animation for animations seen by others, such as AO, Game, Experience, Combat System, and so on.", } ```
sl-service-account commented 5 months ago

CaithLynnSayes commented at 2024-01-16T11:47:16Z

You have my full support on this. It's fantastic. I just hope you won't get the default "we're not going to do this right now" message. :/ 

sl-service-account commented 5 months ago

Kyle Linden commented at 2024-01-26T03:10:04Z

Issue copied to https://feedback.secondlife.com/feature-requests/p/lsl-feature-request-new-statements-for-creating-and-playing-back-synthesized-ani