Tag Archives: Content Creation

SL project updates 2017 12/2: TPV Dev and Content Creation meetings

The Heart of the Seablog post

The notes in this update are taken from the following sources:

  • Content Creation User Group meeting, held on  Thursday March 23rd, 2017 at 1:00pm SLT
  • The TPV Developer meeting held on Friday, March 24th, 2017 at 12:00 noon SLT.

A video of the TPV Developer meeting is included, and timestamps to it are included in the text, where relevant. Notes from the Content Creation User Group appear towards the end of this update.

SL Viewer Pipeline

Maintenance RC Re-issue

On Thursday, March 23rd, the Lab released a new Maintenance RC viewer – version 5.0.5.324882 – to replace the faulty March 16th release.  As such, it includes the same set of updates, and I’ve written an overview of the core changes.

Voice RC

[0:19] The Voice RC viewer, version 5.0.4.324770, has a problem with the SSL Certificate Authorities update included with it. This triggers some code deep within the viewer which should not be triggered. This tends to affect TPVs for than the official viewer (the issue was actually noted by Firestorm). It’s be at least a couple of weeks before this matter is resolved, and until it is, the Voice RC viewer will not be progressing, and the Lab is unlikely to expand the cohort of users running it. Alongside of this, but separate to is, is an issue which is giving the viewer a higher than expected crash rate. which is also being looked into. Additionally, among the updates to this viewer and not included in the release notes, is support for the Opus Interactive Audio Codec, although server-side support is still required. This should eventually see further Voice quality improvements.

64-bit Project Alex Ivy

[3:10] As noted in part 1 of this week’s update, the 64-bit viewer was updated on Friday, March 17th to version 5.1.0.503537. This viewer is showing a significantly lower crash rate, although it does have some other issues. It should have a further update in the next two weeks.

360 Snapshot Viewer

[4:06] It appears unlikely that the 360 snapshot viewer will be update in the next week due to the ongoing work with the 64-bit viewer.

Asset Fetching Via HTTP

Vir Linden has been focused on the viewer side of this work, which will see the remaining inventory asset classes – landmarks, gestures, animations, shapes, sounds and wearables (system layer clothing) – switch from UDP delivery through the simulator to HTTP delivery via the via the Content Delivery Network(s) the Lab uses.

[4:42] The viewer for this work may be appearing in week #13 (week commencing Monday, March 27th). However, this is dependent on some back-end web configuration work being completed so that the required simulator changes can be correctly enabled on the Main grid.

Once these remaining assets have been shifted to delivery to the viewer via HTTP / CDN, the remaining UDP messaging for asset delivery will be turned off on the simulator end. This may be around July / August time (to be confirmed once the HTTP updates have reached release status), and will mean any older viewers still using UDP messaging for asset data fetching will be unable to do so.

New JIRA – Soon

[14:35] There is a new JIRA update coming, in line with recent updates made by Atlassian. It is currently on internal testing at the Lab, but there is no time frame as to when it will make a public appearance.

FMod Studio

[16:00] Around the start of the 64-bit viewer project there was a potential for an open-source contributed project for using Fmod Studio with viewer audio. This is likely to be re-examined, and if found suitable it may be up for adoption. However, given it will require a licence, which is likely to take a while to be processed by the Lab, it will not prevent the 64-bit viewer progressing forward toward release. Instead, the code module will be integrated as and when the licence has been obtained.

Content Creation Meeting Round-up

Animation Transitions: as noted in my March 9th CCUG meeting notes, people have been noting issues with animation playback, some of which appear to be related to llSetAnimationOverride, one of the server-side functions for controlling your animation state (see  BUG-7488 as an example).

Vir has been looking at this, but no definitive cause has been found. One suggestion is that it might be related to  Walk Adjust cutting in, which can occur when transitioning from standing to almost any other state when using llSetAnimationOverride. Although is that some transitional animation, such as a pre-jump or landing might be accidentally set to loop, causing an apparently freeze / lock. Vir will continue to poke at this.

Avatar Rendering Calculations:  work continues on refining the rendering cost calculations for avatars. However, this work is still not ready for shipping. Theses adjustments are twofold: to account for more “recent” changes which have been made since the system was last properly evaluated, and to address known issues in how the calculations are made.

Applying Baked Textures to Mesh Avatars: this is still on the short list, but is not an adopted or active project within the Lab as yet.

Rigging Animated Attachments to the Skeleton: there are issues trying to rig animated attachment to the avatar skeleton (e.g. a set of nunchaku or a gun that twirls before being holstered). While they may work OK using a specific avatar shape, problems can occur should the shape be changed (e.g. the nachaku  / gun no longer accurately positions relative to the hand). Medhue Simoni suggests items like this might be rigged and animated to the relevant attachment point instead.

NPCs / Animated Objects: this is still not a formal project at the Lab, but there has been some discussion on the potential feature set, were it to become a project.

Scripted method to position bones: see BUG11407. VIr’s concern with this approach would be the level of complexity / risk of conflicts with animations / need to expand the scripting capabilities on the back-end in order to make full scripted positions of bones useful. However, within the meeting, it was seen as being more useful in being able to fine tune poses for things like photography (e.g. to prevent hands vanishing into breasts or thighs), and thus supplant something like Anypose. As a result, Vir’s agreed to look at tools like Anypose and have a fresh look at the JIRA.

Other Items

Bento Ridable Horse

Strawberry Singh has all the information on a new Bento Rideable horse, which has a release had of Saturday, March 25th. As the name implies, this is a horse which makes full used of the Bento skeleton extensions (so when worn, it is an extension of your avatar).  Berry has produced a tidy video on the horse, and I’ll finish this update by embedding it – read Berry’s blog post for the specifics.

Advertisements

SL project updates 2017 10/2: Content Creation User Group w/audio

The gathering: people gather for the CCUG, including a ridable dragon, a work-in-progress by Teager (l) and a wearable dragon, also a WIP by Thornleaf (r)

The Content Creation User Group meeting, Thursdays, 13:00 SLT

The following notes are taken from the Content Creation User Group meeting, held on  Thursday March 9th, 2017 at 1:00pm SLT at the the Hippotropolis Campfire Circle. The meeting is chaired by Vir Linden, and agenda notes, etc, are available on the Content Creation User Group wiki page.

HTTP Fetching

As I’ve noted in several recent SL project updates, the Lab is shifting the fetching landmarks, gestures, animations, shapes, sounds and wearables (system layer clothing) away from UDP through the simulators and to HTTP via the CDN(s).

The simulator side of the code is already in place on Aditi and awaiting further testing (see here for more). Vir is heading-up the viewer side changes required to support this work, which is now getting “petty close” to being available in a public viewer (most likely a project viewer). I’ll continue to update on this work through my various SL project update reports.

Rendering Costs

Vir has also been looking at the viewer-side rendering costs of various avatar models to improve the overall rendering cost calculations. This is more a data gathering exercise at the moment, but it is hoped it will lead to improved calculations when determining the overall rendering complexity of models, and will likely mean that, for example, the cost of rendering rigged meshes will at some point be updated.

This isn’t directly related to the potential of animating objects (e.g. for non-player characters). While the Lab is apparently still pondering on this as a possible project, it would mean back-end changes to calculate the land impact of avatar models used as NPCs, rather than alterations to the viewer-side rendering cost.

Animation Transitions

There have been, and continue to be, a number of issues with animation playback, some of which appear to be related to llSetAnimationOverride, one of the server-side functions for controlling your animation state. Some of these were reported early on in Bento, which exacerbated some of them (e.g. quadrupeds crossing their forepaws).

Issues can also occur with jump animation states (pre-jump, jump and landing), as has been reported in BUG-7488. For example, During the meeting, Troy Linden and Medhue Simoni pointed to problems: for Troy, it was with respect of an avatar “sticking” in the landing animation, rather than returning to the expected standing animation; Medhue reports issues in general playback, and whether the transitions will actually play correctly.

It not clear if these issues are all a part of the same problem, but feedback from the meeting is being relayed back to those at the Lab poking at things.

Information and Tools

People are still having problems finding Bento information on the SL wiki – such as the skeleton files. This is partially due to the files being on the Bento Testing page.  It’s also not easy for new creators to find information on suitable tools (e.g. Avastar. MayaStar, etc.).

One suggested solution (allowing for the wiki currently being locked from general edits) is to have a general SL tools page where the various tools, etc. can be listed with links to their respective websites. This could include free tools: GIMP, Blender, Wingz 3D, etc.), plus tools which are not specific to SL can be used within (e.g. Maya, Zbrush, etc), and then add-ons like Avastar and Mayastar.

Such an approach, coupled with a clean-up of the Bento information, might be suited to being included in an overhaul of the wiki Good Building Practices pages the Lab is working on as and when resources are available. Troy has made a note to take these ideas back to the Lab.

Other Items

Transparency Rendering Cost

There was some discussion on whether the rendering cost of a rigged mesh should remain high if it is set to transparent. Some felt the cost should be lower, and Vir noted that the system avatar has a special UUID for an invisible texture when can reduce the rendering cost of the system avatar. However, rigged meshes may not be subject to this check, which may also depend on how the mesh is made transparent (i.e. via a texture or via the transparency setting). He also noted that rendering as transparent could add cost over rendering a rigged mesh as opaque.

There was some discussion on whether simply having the mesh in memory, whether or not it is rendered, could add to its complexity. Vir indicated that as he’s not precisely sure how things are handled, he’d have a look at the code.

Calling Animation UUIDs via Script without the Animation Residing in Inventory

A question was asked whether it would be possible to have a script call an animation via the animation’s UUID without the animation being physically in the parent object’s inventory. The short answer to this is “no”.

While animations can be pulled from objects with modify permissions and used elsewhere, many items with animations (chairs, beds, etc.), tend to have animations in them set to No Copy, limiting the ability to freely re-use them. If animations could be freely called via script using their UUID, this protection would be eliminated, as anyone with the UUID could use the animation as often as they wished, regardless of whether or not a version of the animation resides in their inventory.

This conversation edged into the issue of people being able to pull Copy permissioned inventory from a No Modify object by opening it; however, that is something of a separate situation, which was not discussed further.

Avastar Status

AvaStar is now at release candidate 4, with RC 5 on its way, which may be the final RC before a release.

.ANIM Exporter for Maya

Aura Linden is re-working the code on her open-source Maya .ANIM exporter. She was originally working on it in Maya’s MEL scripting, which would make it compatible with all versions of Maya.

However, after encountering some problems, she is now coding it in Python. This means the exporter will only initially work with versions of Maya supporting Python  (version 8.5 onwards). It may be that once this work has been finished, Aura hopes to be able to go back and complete the exporter in MEL for older versions of Maya.

Mayastar Update

Cathy Foil will have an update for Mayastar appears shortly. When the .ANIM exporter is available (above), it will be folded in to Mayastar, although it is not exclusively for Mayastar.

Splitting the Avatar Shape into Different Elements

This was suggested some time ago as a possible Bento follow-up as a means of making it easier for users to mix and match heads and bodies by allowing different underpinning avatar shapes for both, which could be worn simultaneously. This was seen as particularly useful for users who are uncertain about customising their form using the sliders, or where creators provide No Modify shape with their head or body product, limiting the suer’s ability to modify one or the other. N definitive proposal has been put together on how this might be achieved.

Supplemental Animations

This was also the subject of early Content Creation meetings with Vir as a possible Bento follow-on project. The idea is to allow “supplemental” animations to run alongside the animation states keyed by llSetAnimationOverride(), effectively allowing them to play together, rather than conflicting with one another as is the case at the moment. This is still be considered, but no work has been carried out as yet.

Next Meeting

As Vir is out of the office in week #11, the next Content Creation meeting will be on Thursday, March 23rd, 2017 at 13:00 SLT.

SL project updates 2017 8/2: Content Creation User Group w/audio

The gathering: people gather for the CCUG, including a ridable dragon, a work-in-progress by Teager (l) and a wearable dragon, also a WIP by Thornleaf (r)

The gathering: people gather for the CCUG, including a Bento ridable dragon, a work-in-progress by Teager (l) and a Bento wearable dragon, also a WIP by Thornleaf (r)

The following notes are taken from the Content Creation User Group meeting, held on  Thursday February 23rd, 2017 at 1:00pm SLT at the the Hippotropolis Campfire Circle. The meeting is chaired by Vir Linden, and agenda notes, etc, are available on the Content Creation User Group wiki page.

Core Topics

  • HTTP asset fetching
  • Animating objects
  • Applying Baked Textures to Mesh Avatars

HTTP Fetching

As previously noted, the Lab is working on moving landmarks, gestures, animations, sounds and wearables (system layer clothing) from UDP delivery via the simulator to HTTP delivery via the CDN(s). This work is now progressing to the stage where initial testing is liable to be starting soon. It’s not clear if this is internal testing with the Lab, or whether it will involve wider (Aditi testing) as well. As things progress, expect the viewer-side changes to appear in a project viewer and then progress through the normal route of testing / update to RC and onwards towards release.

Potential Project: Animated Objects

As noted in my last Content Creation UG meeting notes, the Lab is taking a speculative look at using the current avatar skeleton to animate in-world objects to provide a means for users to more easily create animated objects (e.g. non-player characters – NPCS -, plants and trees responding to a breeze, providing mesh animals which do not rely on performance hitting alpha swapping, etc) – see feature request BUG-11368. for some of the ideas put forward which helped prompt the Lab’s interest.

It is important to note that this is still a speculative look at the potential; there is no confirmed project coming off the back of it, the Lab is currently seeking feedback on how people might use the capability, were it to be implemented. No in depth consideration has been given to how such a capability would be support on the back end, or what changes would be required to the viewer.

One of the many issues that would need to be worked through is just the simple matter of how an object might be animated to achieve something like walking, running or flying. These require the simulator to make certain assumptions when handling an avatar which are not a part of object handling. There’s also the question of how the skeleton would be applied to an object.

Having animated objects does give rise to concerns over potential resource / performance impacts. for example, someone having a dozen animated pets running around them as animated objects could potentially have the same resource / performance overheads as thirteen actual avatars in a region.

One possible offset to this (although obviously, the two aren’t equitable) is that mesh animals / objects which currently use a lot of alpha flipping to achieve different “states” of “animation” (such a the squirrel which can jump from the ground and swing on a nut holder and jump back down again, or the peek-a-boo baby bears, etc., all of which are popular in gardens and public regions) could be made a lot more efficient were they to be animated, as the resource / performance hitting alpha swapping could be abandoned.

It was suggested that rather than having the full skeleton available for animated objects, it might be possible to use a sub-set of bones, or even the pre-Bento skeleton. Agreeing that this might be done, Vir pointed out that using the full skeleton would perhaps offer the most flexible approach, and also allow the re-use of existing content, particularly given that things like custom skeletons (also mooted) would be too big a project to undertake.

A closer look at Teager's WIP ridable dragon, which has yet to be textured

A closer look at Teager’s WIP Bento ridable dragon with Teager aboard, which has yet to be textured

Applying Baked Textures to Mesh Avatars

Interest is increasing in this potential project, which would allow baked textures – skins and wearble clothing layers – to be applied directly to mesh avatars via the baking service. This also has yet to be officially adopted by the Lab as a project, but there is considerable interest internally in the idea.

As I’ve previously reported, there is considerable interest in this idea, as it could greatly reduce the complexity of mesh avatar bodies by removing the need for them to be “onion skinned” with multiple layers. However, as I noted in that report, a sticking point is that currently, the baking service is limited to a maximum texture resolution of 512×512, whereas mesh bodies and parts (heads, feet, hands) can use 1024×1024.

These is concern that if the baking service isn’t updated to also support 1024×1024 textures, it would not be used as skins and wearable using it would appear to be of lower resolution quality than can be achieved when using applier systems on mesh bodies. Vir expressed doubt as to whether the detail within 1024×1024 textures is really being seen unless people  are zoomed right into other avatars, which for most of the time we’re going about our SL times and doing things, isn’t the case.

Troy Linden wears a Bento octopus "backpack"

Troy Linden wears a Bento octopus “backpack”

This lead to a lengthy mixed text / voice discussion on texture resolution and extending the baking service to support mesh avatars (were it to go ahead), which essentially came down to two elements:

  • The technical aspects of whether or not we actually get to see the greater detail in 1024×1024 textures most of the time we’re in world and in re-working the baking service to supporting 1024×1204 across all wearable layers from skin up through to jacket.
  • The sociological aspect of whether or not people would actually use the baking service route with mesh avatars front , if the texture resolution were left at 512×512, because of the perceived loss of detail involved.

Various compromises were put forward to try to work around the additional impact of updating the baking service to support 1024×1024 textures. One of these was that body creators might provide two versions of their products if they wish: one utilising appliers and 1024×1024 textures as is the case now, and the other supporting the baking service and system layers at 512×512, then leave it to users to decide what they want to use / buy. Another was a suggestion that baking service support could be initially rolled out at 512×512 and then updated to 1024×1024 support if there was a demand.

None of the alternative suggestions were ideal (in the two above, for example, creators are left having to support two product ranges, which could discourage them; while the idea of leaving the baking service at 512×512 falls into the sociological aspect of non-use mentioned previously). Currently, Vir appears to be perhaps leaning more towards updating the baking service to 1024×1024 were the project to be adopted but, the overheads in doing so still need to be investigated and understood.

Other Items

.ANIM Exporter for Maya

Cathy Foil indicated that Aura Linden has almost finished working on the .ANIM exporter she’s being developing for Maya. The hope is that the work will be completed in the next week or so. She also indicated that, in keeping with Medhue Simoni’s advice from a few weeks ago (see .BVH Animations and Animation Playback), she was able to overcome some of the issues being experienced with fine-tuning .BVH animation playback, although there are still problems.

The .ANIM exporter will be available for anyone using Maya, and is not something dependent upon Mayastar.

Avastar 2.0 in RC

The upcoming fully Bento compliant version of Avastar is now available as a release candidate.

IK Constraints

Tapple Gao has been looking at IK (Inverse Kinematics) constraints within Second Life. These aren’t widely used within existing animations – although up to about eight constraints can be defined – largely because the documentation doesn’t appear to be too clear. Tapple hopes to improve this through investigation and then updating the SL wiki.

Next Meeting

The next content Creation meeting will be in two weeks, on Thursday, March 9th, at 13:00 SLT.

SL project updates 2017-7/2: Content Creation User Group w/audio + HTTP assets

The Content Creation User Group has re-formed out of the Bento User Group, and is held at the Hippotropolis Camp Fire Circle. Imp costumes entirely optional :D .

The Content Creation User Group has re-formed out of the Bento User Group, and is held at the Hippotropolis Camp Fire Circle. Imp costumes entirely optional 😀 .

The following notes are taken from the Content Creation User Group meeting, held on  Thursday February 16th, 2017 at 1:00pm SLT at the the Hippotropolis Campfire Circle. The meeting is chaired by Vir Linden, and agenda notes, etc, are available on the Content Creation User Group wiki page.

Core Topics

  • HTTP asset fetching
  • Potential project: animated objects

HTTP Asset Fetching

In 2013 / 2014, the Lab made a huge change to how avatar appearance information and texture and mesh assets are delivered to users, shifting them away from UDP (User Datagram Protocol) delivery through the simulators, to HTTP via Content Delivery Networks (CDNs) – see my past reports on the HTTP updates. and CDN work.

As was indicated at several TPV Developer meetings recently (see here for an example), the Lab has been looking to move more asset types for delivery over the CDN, and this work has now started, with a focus on animations and sounds. This should see improvements in both the speed and reliability of assets, which should be particularly beneficial to animations.

The work is in the early stages, and progress will be tracked through my SL project updates.

Potential Project: Animated Objects

A topic of common conversation at various user group meetings is that of animated objects – e.g. objects which can be animated but which are not necessarily part of the base avatar mesh, and / or things like non-player characters (NPCs).

Decent NPC a possible future project? Lab wants feedback on use-cases for animation objects

Decent NPC a possible future project? Lab wants feedback on use-cases for animation objects

While it is still very speculative, the Lab is considering how this might be done and what sort of applications people would use such a capability for. One idea has already been extensively documented – “created agents”, which are avatars which do not necessarily have a connection to a viewer in order to operate – see feature request BUG-11368.

The main aim would be to use the same base avatar skeleton for this work, as well as it being compatible with existing rigged objects, rather than introducing something like custom skeletons (seen as a much bigger project). A lot would also depend up things like performance impact (if the simulator is operating a certain volume of NPCs or ridable objects, for example, then these could impact on resources which might otherwise be used by avatars, etc).

One potential way of achieving desired results would be to animate rigged meshes using the avatar skeleton, but without necessarily having the actual avatar base mesh underpinning it. For example, when we use a mesh body for our avatars, we use the base avatar, but hide it with an alpha mask, with the avatar skeleton animating the worn mesh. With an animated object utilising the skeleton, there is no real need to have the underpinning base avatar, as it would in theory never be seen.

One issue is that many mesh models are multiple parts, therefore some means would be required to control them, and this could be lost without the base avatar, together with the ability to attach static objects to something like an NPC. Hence the idea put forward in BUG-11368; the “created agent” would effectively be a special object class, providing the means for multiple animated meshes to operate in concert.

It is unlikely that the bone limit for a given object would be raised to accommodate animated objects, as this is pretty much a limit imposed by people’s graphics cards. During testing, the Lab found that if too many joints are defined for a single object, some graphics cards are unable to render the object correctly. This impact has actually already been seen with some Bento content (FIRE-20763).

Other aspects which would have to be considered are things like Land Impact. Avatars don’t have a land impact, but that may have to change in the case of animated, avatar-like objects – again, seen the performance concerns above. There are also some concerns over possible griefing vectors.

Performance-wise a potential benefit would be animated objects would not require alpha swapping, which requires a fairly hefty performance hit – but this could be countered to a degree (and depending on where you are and how animated objects are used) but the volume of animated objects around you.

Right now the idea is still being discussed internally at the Lab – there is no defined project. However, if you have views on things, attending the Content Creation meetings would be a good place to get them heard.

Other Items

Applying Baked Textures to Mesh Avatars

Still under consideration is a project to allow baked textures to be applied directly to mesh avatars (see here for more). This is still under consideration, but has yet to be formally adopted by the Lab as a project.

Modelling for Efficient Rendering

The subject of efficiency and LODs was the focus of an extended conversation. As I reported in my last Content Creation UG meeting report, Medhue Simoni has been producing a series on the use of Level of Detail (LOD) to help with generating rendering efficient models in Second Life. All three parts of the series are now available on his YouTube channel, and he and I will be discussing them in this blog in the very near future.