The ability to upload animated WEBP via the Build -> Upload menu.
The source code to img2webp is included in the open source libwebp source code tarball is available. The format is patent free and under the BSD-3 license. Img2webp can take a series of images and export an animated webp file. You can use this as the basis for the feature described here.
This will create an out.webp animated webp file with 40% compression factor (default is 75%) using mixed heuristics mode to determine when frames should be lossless and when they should be lossy automatically, with a 40 ms delay in between each frame from input*.png images in the current folder.
The upload tool would separate the frame layers of the animated image and their associated blend (combine, replace, etc) settings and frame time delays that are stored in the image format. Then, the upload dialog would merge them into a tiled image that can be played via the llSetTextureAnim method.
In addition, the upload would generate a template script where the parameters are provided to the method needed to play the animation in the texture with the correct number of frames and animation speed. The framerate and target face # would be adjusted via the dialog before it is generated. This script can be edited after upload by the user if additional changes were needed. Support for transparency that can be disabled or enabled would also be provided.
A preview window would be displayed during upload so that the user can see what the animation playback will look like (with a pause/play button and framerate editbox) and showing the resulting tiled texture before they finalize the upload.
If the user clicks the final "Upload ($L10) Animation" button the image and the script would appear in a cube prim in their Objects folder with the name "[Filename] Anim", which when rezzed would animate the texture on the cube. The uploaded texture and script would be available in the contents of the prim full permissions.
For reference, it would work similar to how this tool works. Except the new SL version would have obvious builtin viewer functionality, easier interface and preview capabilities.
It would be better to base this feature on WEBP than on APNG or GIF since WEBP has better compression, and faster encoding and decoding than png and gif, but still supports animation. It would be nice if you go to upload a series of png or jpg images, or an apng, a gif or a webp, and then it auto-converts it to an animated webp on SL's server-side for storage. Then when the viewer goes to fetch the webp it has webp support built-in for playing back the animation.
Why is this feature important to you? How would it benefit the community?
Right now, users have to manually create animation textures or find unsanctioned tools on 3rd party websites. This would finally provided official support for animation uploads. Considering that we already have sophisticated upload tools for Mesh uploads, it makes sense that animation uploads would also be first class citizens in the Upload dialog as well.
Original Jira Fields
| Field | Value |
| ------------- | ------------- |
| Issue | BUG-232711 |
| Summary | Animated WEBP upload with template script |
| Type | New Feature Request |
| Priority | Unset |
| Status | Accepted |
| Resolution | Accepted |
| Created at | 2022-09-29T02:14:57Z |
| Updated at | 2022-12-18T22:03:38Z |
```
{
'Build Id': 'unset',
'Business Unit': ['Platform'],
'How would you like the feature to work?': 'The ability to upload APNG and GIFs via the Build -> Upload menu.\r\n\r\nThe upload tool would separate the frame layers of the animated image and their associated blend (combine, replace, etc) settings and frame time delays that are stored in the image format. Then, the upload dialog would merge them into a tiled image that can be played via the llSetTextureAnim method.\r\n\r\nIn addition, the upload would generate a template script where the parameters are provided to the method needed to play the animation in the texture with the correct number of frames and animation speed. The framerate and target face # could be adjusted via the dialog before it is generated. This script could be edited after upload by the user if additional changes were needed.\r\n\r\nA preview window could be displayed during upload so that the user can see what the animation playback will look like (with a pause/play button and framerate editbox) and showing the resulting tiled texture before they finalize the upload.\r\n\r\nIf the user clicks the final "Upload ($L10) Animation" button the image and the script would appear in a cube prim in their Objects folder with the name "[Filename] Anim", which when rezzed would animate the texture on the cube. The uploaded texture and script would be available in the contents of the prim full permissions.',
'ReOpened Count': 0.0,
'Severity': 'Unset',
'Target Viewer Version': 'viewer-development',
'Why is this feature important to you? How would it benefit the community?': 'Right now, users have to manually create animation textures or find unsanctioned tools on 3rd party websites. This would finally provided official support for animation uploads.',
}
```
How would you like the feature to work?
The ability to upload animated WEBP via the Build -> Upload menu.
The source code to img2webp is included in the open source libwebp source code tarball is available. The format is patent free and under the BSD-3 license. Img2webp can take a series of images and export an animated webp file. You can use this as the basis for the feature described here.
https://developers.google.com/speed/webp/docs/img2webp
Example usage:
img2webp -o out.webp -q 40 -mixed -d 40 input??.png
This will create an out.webp animated webp file with 40% compression factor (default is 75%) using mixed heuristics mode to determine when frames should be lossless and when they should be lossy automatically, with a 40 ms delay in between each frame from input*.png images in the current folder.
The upload tool would separate the frame layers of the animated image and their associated blend (combine, replace, etc) settings and frame time delays that are stored in the image format. Then, the upload dialog would merge them into a tiled image that can be played via the llSetTextureAnim method.
In addition, the upload would generate a template script where the parameters are provided to the method needed to play the animation in the texture with the correct number of frames and animation speed. The framerate and target face # would be adjusted via the dialog before it is generated. This script can be edited after upload by the user if additional changes were needed. Support for transparency that can be disabled or enabled would also be provided.
A preview window would be displayed during upload so that the user can see what the animation playback will look like (with a pause/play button and framerate editbox) and showing the resulting tiled texture before they finalize the upload.
If the user clicks the final "Upload ($L10) Animation" button the image and the script would appear in a cube prim in their Objects folder with the name "[Filename] Anim", which when rezzed would animate the texture on the cube. The uploaded texture and script would be available in the contents of the prim full permissions.
For reference, it would work similar to how this tool works. Except the new SL version would have obvious builtin viewer functionality, easier interface and preview capabilities.
https://www.outworldz.com/Secondlife/Posts/Gif/Create-Gif-in-Second-Life.htm
It would be better to base this feature on WEBP than on APNG or GIF since WEBP has better compression, and faster encoding and decoding than png and gif, but still supports animation. It would be nice if you go to upload a series of png or jpg images, or an apng, a gif or a webp, and then it auto-converts it to an animated webp on SL's server-side for storage. Then when the viewer goes to fetch the webp it has webp support built-in for playing back the animation.
Why is this feature important to you? How would it benefit the community?
Right now, users have to manually create animation textures or find unsanctioned tools on 3rd party websites. This would finally provided official support for animation uploads. Considering that we already have sophisticated upload tools for Mesh uploads, it makes sense that animation uploads would also be first class citizens in the Upload dialog as well.
Original Jira Fields
| Field | Value | | ------------- | ------------- | | Issue | BUG-232711 | | Summary | Animated WEBP upload with template script | | Type | New Feature Request | | Priority | Unset | | Status | Accepted | | Resolution | Accepted | | Created at | 2022-09-29T02:14:57Z | | Updated at | 2022-12-18T22:03:38Z | ``` { 'Build Id': 'unset', 'Business Unit': ['Platform'], 'How would you like the feature to work?': 'The ability to upload APNG and GIFs via the Build -> Upload menu.\r\n\r\nThe upload tool would separate the frame layers of the animated image and their associated blend (combine, replace, etc) settings and frame time delays that are stored in the image format. Then, the upload dialog would merge them into a tiled image that can be played via the llSetTextureAnim method.\r\n\r\nIn addition, the upload would generate a template script where the parameters are provided to the method needed to play the animation in the texture with the correct number of frames and animation speed. The framerate and target face # could be adjusted via the dialog before it is generated. This script could be edited after upload by the user if additional changes were needed.\r\n\r\nA preview window could be displayed during upload so that the user can see what the animation playback will look like (with a pause/play button and framerate editbox) and showing the resulting tiled texture before they finalize the upload.\r\n\r\nIf the user clicks the final "Upload ($L10) Animation" button the image and the script would appear in a cube prim in their Objects folder with the name "[Filename] Anim", which when rezzed would animate the texture on the cube. The uploaded texture and script would be available in the contents of the prim full permissions.', 'ReOpened Count': 0.0, 'Severity': 'Unset', 'Target Viewer Version': 'viewer-development', 'Why is this feature important to you? How would it benefit the community?': 'Right now, users have to manually create animation textures or find unsanctioned tools on 3rd party websites. This would finally provided official support for animation uploads.', } ```