✨ Feature Requests

  • Search existing ideas before submitting- Use support.secondlife.com for customer support issues- Keep posts on-topicThank you for your ideas!
Reselect Previous Object Selection
When a user has selected multiple objects and accidentally deselects them, provide a command and/or keyboard shortcut to restore the immediately previous selection. The viewer could retain the UUIDs of the previous selection until a new selection is made. Why this would be useful: A lot of the time, when moving store content around or building, it is very easy to lose your selection of objects. You can then spend quite a bit of time having to manually re-select everything. It can also happen when moving parts of a build. Sometimes, due to lag, moving something too quickly, or other unexpected behavior, the entire selection can become deselected. If you were working with a large number of objects, you then have to go back and find and select everything again. A “Reselect Previous Selection” option would make building, organizing, and moving content significantly faster and less frustrating. I know you can drag a selection box around objects to select multiple items more quickly, but this isn't always practical. On regions with dense builds, dragging a selection box can select all kinds of unrelated objects. You then have to manually deselect the things you don't want and reselect anything that was missed. Having the ability to simply restore the previous selection would avoid all of this. For example: Select 30 objects > accidentally deselect > press a keyboard shortcut > the same 30 objects are selected again. Even keeping the last 3 selections in a small selection history would be extremely useful for builders, content creators, and residents. Thanks
10
·
Content Creation
·
tracked
Update animesh size by manual edit and script
Currently we can't update animesh size and have to upload multiple versions of the mesh in different sizes, and upload all animations for each size. I did some research in the viewer's code, and it appears to me that it's extremely easy to add a feature to adjust the global size of an animesh by modifying the llcontrolavatar.cpp file. Here is the current setGlobalScale() function: void LLControlAvatar::setGlobalScale(F32 scale) { if (scale <= 0.0) { LL_WARNS() << "invalid global scale " << scale << LL_ENDL; return; } if (scale != mGlobalScale) { F32 adjust_scale = scale/mGlobalScale; LL_INFOS() << "scale " << scale << " adjustment " << adjust_scale << LL_ENDL; // should we be scaling from the pelvis or the root? recursiveScaleJoint(mPelvisp,adjust_scale); mGlobalScale = scale; } } And here is a modified version that currently takes into account the X size of the main prim: void LLControlAvatar::setGlobalScale(F32 scale) { if (scale <= 0.0) { LL_WARNS() << "invalid global scale " << scale << LL_ENDL; return; } scale *= mRootVolp->getScale().mV[0]; if (scale != mGlobalScale) { F32 adjust_scale = scale/mGlobalScale; LL_INFOS() << "scale " << scale << " adjustment " << adjust_scale << LL_ENDL; recursiveScaleJoint(mRoot,adjust_scale); mGlobalScale = scale; } } Note that I replaced mPelvisp by mRoot because using mPelvisp does not correctly adjust the animesh's movement during the animation." It works wonderfully. Of course, this modification as it stands could affect many existing animesh objects, so we need to add a parameter to the object, 'ANIMESH_SCALE_FACTOR', which would be set to 1 by default, adjustable via script and by manual editing of the object. We would then have something like this: scale *= mRootVolp->getAnimeshScaleFactor; Here is a gif, you can take a look, the 4 dogs are all the exact same animesh, I only changed there main prim X scale : https://gyazo.com/de2dc2904bcb4e6b8737514aa7db7d2c
13
·
Content Creation
·
tracked
A function to save back rezzed object into its rezzer's inventory without having to derez
Currently we can use llDerezObject(object_key, DEREZ_TO_INVENTORY) to update the object in the rezzer, it would be very nice to have something similar but without the derez part, maybe something like: llUpdateInventoryObject(key object_id); My actual use case: I'm working on a single mesh object that should have an updated copy linked to multiple other objects when I decide to make the update. Right now: the object is derez by its rezzer the rezzer rez back a first copy to replace the one that just been derezzed the rezzer rez multiple other copies that will do their jobs. (link itself to its target, do some stuff, break link and derezz itself) It is working fine BUT.. the script I was working on no longer exists. I have to close it, select the new copy and open the script in it. Find back the lines where I was editiing. I know this is a very particular use case but I'm pretty sure we will find other use cases once we know this is possible. Precisions about my personnal use case: You my think I only need a single object to do this kind of job but the fact is that my object is transfering its LSD data to each other objects, this can only be done once because on unlink it loses its LSD data. I know I can manually save a copy into rezzer's inventory using the viewer top menu "Build" > "Object" > "Save back to object contents" but the point here is to use a script capability to automate everything that can be automated
2
·
Content Creation
·
tracked
Load More
→