Open sl-service-account opened 4 years ago
Vir Linden commented at 2020-04-01T18:52:12Z
Bringing this in for possible consideration during muscadine development.
Kyle Linden commented at 2020-04-03T21:13:24Z
Set Needs More Info for more comments.
Information
Since there was recently talk of work possibly returning to Muscadine sometime in the near future I felt I should finally outline how Animesh attach points support should work on the LSL side of things and offer examples of use cases that would benefit from the feature.
Attach points when applied to non-rigged links in an Animesh linkset would allow them to behave similar to attached prims on a user which can follow animations.
The same attach point hierarchy that user avatar skeletons have would be added to the Animesh skeleton, although I believe this already exists in some form due to how some rigged-to-attach-point content works in animesh format. Its just not fully implemented.
The llSetLinkPrimitiveParamsFast() function, particularly with its PRIM_LINK_TARGET ability, is adequate enough to facilitate the scripted changing of a link's attach point data.
llSLPP* function constant syntax is as follows:
PRIM_ANIMATED_ATTACHMENT, integer attach_point, vector attach_pos, rotation attach_rot
attach_rot - this is the visual local rotation the link will have with the attach point
A link's physical local position & rotation should not be used as the attach point position/rotation due to reasons explained below.
All links in a linkset should allow setting of attach point data.
Benefits:
Stowing and drawing attachments. This is moving an object from one attach point to another. With the ability to change an attach point, pos & rot on the fly, no longer will there be a need to alpha cycle multiple copies of the same object to achieve this effect.
Things to Consider:
Since individual links can have assigned attach points, there is no animated child prim hierarchy like there is with attached linksets. The 3.5 meter attach position limit might have to be increased to facilitate certain applications.
Other Information:
This supersedes what was outlined in BUG-134018.
Links
Duplicates
Related
Original Jira Fields
| Field | Value | | ------------- | ------------- | | Issue | BUG-228403 | | Summary | [Muscadine] A specific discussion on how Animesh attach points should work with examples of benefits. | | Type | New Feature Request | | Priority | Unset | | Status | Needs More Info | | Resolution | Unresolved | | Reporter | Lucia Nightfire (lucia.nightfire) | | Created at | 2020-03-30T23:49:30Z | | Updated at | 2023-03-15T18:12:50Z | ``` { 'Build Id': 'unset', 'Business Unit': ['Platform'], 'Date of First Response': '2020-04-01T13:52:11.648-0500', 'How would you like the feature to work?': 'Since there was recently talk of work possibly returning to Muscadine sometime in the near future I felt I should finally outline how Animesh attach points support should work on the LSL side of things and offer examples of use cases that would benefit from the feature.\r\n\r\nAttach points when applied to non-rigged links in an Animesh linkset would allow them to behave similar to attached prims on a user which can follow animations.\r\n\r\nThe llSetLinkPrimitiveParamsFast() function, particularly with its PRIM_LINK_TARGET ability, is adequate enough to facilitate the scripted changing of a link\'s attach point data.\r\n\r\nllSLPP* function constant syntax is as follows:\r\n\r\nPRIM_ANIMATED_ATTACHMENT, integer attach_point, vector attach_pos, rotation attach_rot\r\n\r\n- integer attach_point - this is a value between 0 and 55, 0 being the default "not attached" value which will not allow the prim to follow animations\r\nThe values represent what is found at http://wiki.secondlife.com/wiki/Template:LSL_Constants_Attachment\r\nOnly visual attach points will be handled by the viewer, HUD values can be set, but will be ignored\r\nRigged mesh also ignores any visual pos/rot changes.\r\n- attach_pos - this is the visual local position the link will have with the attach point\r\n- attach_rot - this is the visual local rotation the link will have with the attach point\r\n\r\nAll links in a linkset should allow setting of attach point data.\r\n\r\nBenefits:\r\n\r\n- Existing mod, non-rigged content in SL can become useful in animesh applications.\r\nA big problem now is a majority of the users in SL have little to no modeling, rigging or weighting experience.\r\nAnything a user wants to put in an animesh character\'s hand or on top of their head or on their face requires the user to first find the mesh online or create the mesh them self, then rig, weight and upload it.\r\nThis object is then permanently bound to the rigging location and cannot be adjusted, nor resized.\r\n- Attach points allow adjusting of an object\'s pos/rot/size on an attach point. A gun, knife, sword, ball or hat used with one character can work with another character without needing to rerig,weight,upload a new model due to body or body part size differences.\r\n- Particle/sound/light/settext origins & particle targets. Without attach points, these origins remain at the link\'s physical location in the linkset and do not follow the animation playing.\r\nThis means if your NPC is shooting a rifle, there can be a particle flash and sound coming from the gun muzzle and not from the NPC\'s crotch.\r\n- Clickable/selectable links. It\'s hard enough to click or even select an animesh object. Attached links allow clicking of an "animated" hitbox or clicking of a particular limb or body part, whatever rigged mesh the attached prim is covering and following.\r\n- Moving attach points with animations. This allows for applications that use juggling, dribbling, passing or catching of a ball/object. This cannot aesthetically be done with setting prim position rapidly. It cannot aesthetically be done with bones when rigged hands/fingers are present.\r\n- Picking up and/or dropping objects in a scene. Thanks to animesh not having the 15 degree lateral rotation buffer that user avatars have this is more aesthetically feasible. Can be done with the linking functions for global scenes or turning on/off an attach point for local scenes. Both may require changing the link\'s local pos/rot in the background while an attach point is active to match the pick-up/drop point in-world.\r\n- Stowing and drawing attachments. This is moving an object from one attach point to another. With the ability to change an attach point, pos & rot on the fly, no longer will there be a need to alpha cycle multiple copies of the same object to achieve this effect.\r\n\r\nThings to consider:\r\n\r\nSince individual links can have assigned attach points, there is no animated child prim hierarchy like there is with attached linksets.\r\nThe 3.5 meter attach position limit might have to be increased to facilitate certain applications.', 'Original Reporter': 'Lucia Nightfire (lucia.nightfire)', 'ReOpened Count': 0.0, 'Severity': 'Unset', 'Target Viewer Version': 'viewer-development', 'Why is this feature important to you? How would it benefit the community?': '?', } ```