The following notes are taken from the Content Creation User Group meeting, held on Thursday, September 21st, 2017 at 13:00 SLT at the Content Creation User Group wiki page.. The meeting is chaired by Vir Linden, and agenda notes, etc, are usually available on the
Medhue Simoni live steamed the meeting to You Tube, and his video is embedded at the end of this article. Time stamps to the recording are included below, and clicking on any of them will launch the video in a separate browser tab at the assigned point. However as these notes present the meeting in terms of topics discussed, rather than a chronological breakdown of the meeting, time stamps may appear to be out of sequence in relation to the recording.
Animesh (Animated Mesh)
“I like the name ‘animated objects’ because I think it’s unambiguous, but it takes a long time to type!” – Vir Linden joking about the name “Animesh”.
The goal of this project is to provide a means of animating rigged mesh objects using the avatar skeleton, in whole or in part, to provide things like independently moveable pets / creatures, and animated scenery features via scripted animation.
- Animated objects can be any rigged / skinned mesh which is correctly flagged as an animated object (so it has a skeleton associated with it), and contains the necessary animations and controlling scripts in its own inventory (Contents tab of the Build floater) required for it to animate itself.
- The capability will most likely include a new flag added to an existing rigged object type in order for the object to be given its own skeleton.
- At this point in time, this is not about adding fully functional, avatar-like non-player characters (NPCs) to Second Life.
- Animated objects will not (initially):
- Have an avatar shape associated with them
- Make use of an avatar-like inventory (although individual parts can contain their own inventory such as animations and scripts)
- Make use of the server-side locomotion graph for walking, etc., and so will not use an AO
- Use the avatar baking service
- The project may be extended in the future.
- It will involve both back-end and viewer-side changes, likely to encompass new LSL commands to trigger and stop animations (held in the object’s contents).
Current Progress – Animesh Constraints
“It’s not [been] the most exciting week,” Vir commented about his most recent focus on the project. “What’ I’ve been working on lately is complexity limits and other constraints.”
[2:48-4:19]As noted in previous CCUG meeting notes, some constraints on Animesh are required to prevent undue impact at either the simulator or viewer end of the system. These constraints will be in addition to any already in place in SL (e,g, Land Impact, overall limit of the number of attachments an avatar can wear, etc), and include:
- Limiting the overall complexity of an Animesh object
- Limiting how many Animesh items an avatar can have attached at any one time (currently set to one in the upcoming project viewer for testing purposes)
- Limiting the number of triangles an Animesh object (attached or in-world) can contain, possibly to around 20K initially. Interestingly, some limits in Sansar are defined in terms of tri / poly limits.
With complexity and number of tris, the limits have yet to be fully defined, and Vir welcomed any well-made mash models could serve as Animesh examples in order to try to help baseline the initial limits.
[4:45-5:10 and 8:55-9:49] Currently, there are no new limits for the scale (or size) or an Animesh object beyond the existing constraint re objects and avatar skeletons already in place. Some feel that additional constraints / viewer limits may be required in order to handle “titan” Animesh creatures (e.g. creatures of 64m in height, which may also require bounding box adjustments). Vir is prepared to look at this, but would like to see how things go with testing via the project viewer.
[5:22-5:41 and 6:18-6:47 and 10:41-11:06] The triangle limit will apply to all Animesh objects regardless of whether they are in-world or attached, and will be applied at the time the objects are flagged as Animesh. So if someone tries to link together a set of existing rigged mesh items and flag them as Animesh (or which contain an Animesh item) which exceed the limit, the flag Animesh flag will not be set. This should leave existing content unaffected and avoid content breakage.
[12:14-13:17] Some see the proposed 20K limit is two low and suggest 30K or even 50K, to allow for clothing, accessories, etc., to Animesh characters. The counterpoint to this is to set a limit which encourages optimisation, and to have people consider impact on the simulator / on others.
[14:24-15:32] A request for the viewer to provide meaningful feedback when Animesh limits are reached, preferably with a pointer back to some wiki information. Limits won’t actually be reached on mesh upload, but when objects are flagged for use as Animesh post-upload, so would require some form of viewer notification.
[15:34-16:20] Requests have been made to obtain poly counts of objects via LSL to help track things or even in the viewer UI. Vir currently uses his own diagnostic display to help indicate such things, but currently, no such updates, LSL or UI are planned, although the debug ShowRenderInfo could display the required information if more directly exposed and Vir will file a JIRA on this, although it might fall outside the current scope of work.
[22:11-22:35] It was also pointed out that tri / poly counts are variable based on LOD. Vir is currently focused on the tri count of the highest LOD for an object
[13:18-13:44] Vir’s approach to all of the constraints / limits being discussed at this time is to start as tight as possible, and then make adjustments and loosen things as testing with the project viewer begins / offers reliable feedback and data. It is easier to relax constraints and allow people greater creative freedom, than to start with a loose set of limits and then have to tighten them (potentially breaking test content, and adding to people’s overhead in having to rebuild it).
Time Frame for Animesh
[19:29-20:00] The constraints mentioned above and trying to fix the transform matrix when handling Animesh attachments. There are also a couple of bugs he feels need fixing before the project viewer appears. However, the hope is now that the viewer will be appearing sooner rather than later.
[48:52-49:28] There are a couple of irritants in the viewer Vir wants to fix before releasing a project viewer for Animesh testing. Ther are some corner cases where the viewer can be awkward, but these are not considered blockers to a project viewer appearing, and can be cleared-up in due course.
[27:45-28:42] There are still concerns as to the performance hits on things like real-time shadow casting with Animesh skeletons following avatars (pets, etc.) or in being attached to avatars (and vice-versa). Vir isn’t too concerned by this at the moment, as the code is already handling much of what will be required with Animesh: every time an avatar sits on something, it is effectively updating every frame, so with Animesh this will be much the same. However, as with everything else, this will be subject to testing.
Bakes on Mesh
Extending the current avatar baking service to allow wearable textures (skins, tattoos, clothing) to be applied directly to mesh bodies as well as system avatars. This involves server-side changes, including updating the baking service to support 1024×1024 textures. This may lead to a reduction in the complexity of mesh avatar bodies and heads.
[31:28-32:00] The updates to the service to manage 1024×1024 textures and compositing is with LL’s QA team, who ar testing to ensure the system can handle the compositing correctly, and the back servers won’t fall under when loaded with handling 1024×1024 textures in bulk. Progress with the rest of the project is dependent on this.
[36:25-36:59] The rest of the work will focus on applying the baked textures (which will include alphas, just as is the case with the system avatar now, but will not include materials) to mesh avatar models.
[39:09-40:55] A possible follow-on to the current work on bakes on mesh is to extend the capability to include Animesh objects as well, although this will require Animesh objects to have a notion of a body shape. It might even be possible to push the system into other uses.
Environment Enhancement Project (EEP)
A set of environmental enhancements, including the ability to define the environment (sky, sun, moon, clouds) at the parcel level; a new environment asset type that can be stored in inventory and traded through the Marketplace / exchanged with others; scripted, experience-based environment functions, an extended day cycle and extended environmental parameters.
[30:32-31:12] Rider has been working on getting his settings objects – environment assets – correctly passing into Windlight. Once he has this working smoothly, he’ll feel a little more comfortable in talking potential time lines on when things like a project viewer are likely to appear. However, he did point out that everything is currently in “Goth compatibility” – black environment settings against a black sky!
[49:38] A discussion on whether creators will in future be forced to upload only manually created LOD for their models, rather than auto-generating them. Short answer: No, but people are encouraged to optimise LODs where manually or automatically generated. The uploader also has numerous constraints on upload, not all of which are well documented or which provide adequate / any feedback when they occur. It’s acknowledged that such situations could be handled better. However, issues of tracking the number of bones a mesh is rigged to can be tracked through Avastar and MayaStar prior to upload.