[BUG-11368] [Feature Request] - Created Agents: The solution for animated mesh pets, NPC's and more. #1572
Comments
Kadah Coba commented at 2016-10-04T04:35:44Z Can the comments on this be opened on this for those without special access? There are a lot of creators that would invest in this type of feature for a variety of applications and it would be a shame if good input just ends goes to /dev/null instead. |
Whirly Fizzle commented at 2016-10-04T17:50:32Z Others can comment on this issue now. |
Kadah Coba commented at 2016-10-06T05:59:04Z None privileged users cannot make comments still. |
Whirly Fizzle commented at 2016-10-06T10:42:09Z Hmm it appears that feature requests in an NMI state can still only be commented on by the filer and those with extra JIRA privs. A Linden will need to fix the feature request workflow to fix that. I'll move this over to a "bug" report & then everyone should be able to comment. |
Whirly Fizzle commented at 2016-10-06T10:45:38Z, updated at 2016-10-06T10:47:32Z Ok try commenting now :) |
Stupid commented at 2016-10-07T02:37:29Z Test |
Jasdac Stockholm commented at 2016-10-09T13:29:06Z Alright, here's some feedback:
Why? I'd expect them to work like a normal linkset. If the created agents don't use the stock body I would expect a land impact of 1. Then adding land impact based on the attachments like you would with any other linkset.
This would make the feature completely useless for any games other than sim-locked experiences. If there should be a limit at all, let the region owner decide a max number. |
Lucia Nightfire commented at 2016-10-09T20:09:30Z Since created agents will be quasi objects, it isn't impossible for them to have both agent and object qualities that will allow pathfinding functions to directly affect them as well. The land impact values, render cost, limit per region values were to deter render lag and crashes via abuse by numbers. Think of the render memory and FPS issues people currently have when entering a area with dozens of agents wearing dozens of complex rigged mesh. If LL can implement both https://jira.secondlife.com/browse/BUG-37668 & https://jira.secondlife.com/browse/BUG-40520 then such limits might not be as critical. |
Jasdac Stockholm commented at 2016-10-09T20:30:54Z I think I see what you mean with llCreatedAvatarApplyControl(), you mean it raises the control() event? Render cost I have no issue with. Land impact still seems excessive to me. I see your point with the render memory bug, but having an arbitrary region limit allows people to easily rez a bunch of small created agents, denying anyone else from playing in that sim. Something I would say is an equally big issue. In that case I'd rather wait for LL to fix BUG-37668 & BUG-40520 before working on or releasing this, as a sim limit would significantly gimp the feature. With 64 land impact today you can make some seriously good looking alpha stepping animations. In order to compete I don't think having a forced land impact of more than 32 would be reasonable. |
Kadah Coba commented at 2016-10-11T06:49:37Z "Created Avatar" is rather ambiguous, "Scripted Agent" would be more descriptive. Preface, I am not an expert but I know and understand better than most users much of the sim-viewer communications and how agents are handled within the viewer. Most of my points here are taking in to account the technical standpoint of implementing this feature within existing platform design without massively ballooning the scope. For clarification, by "rezable games" I mean a thing that is not experience based or locked to a physical grid location owned by the game. It would be a game or something similar which someone would rez themselves or as part of a HUD, either on their own land, friends' land, group land, or acceptable sandbox, with any of those potentially being on mainland or a private estate. Creation and general stuff: Land impact (LI): Render Avatar Complexity: Region limits: Permissions: Movement/controls: Animations: Attachments: As an attachment: Wearables: Name tags: Editing: Backwards compatibility: Physics: |
Kadah Coba commented at 2016-10-11T06:57:48Z I know it would be helpful to have use cases exampled and detailed. They're "user stories", which fits in to the whole agile software development thing. Please add some. :) |
Penny Patton commented at 2016-12-02T04:24:51Z, updated at 2016-12-02T04:31:57Z Regarding Land Impact cost of agents, I agree that the LI cost should be the same as the combined LI of its attachments. If that kills its usefulness for content creators who want to use them as display mannequins than, well, I'm afraid we should be blunt about this. Those creators need to get better at optimizing their content. Just because avatars have no land impact limits doesn't mean content creators should go crazy with polygons. This is one of the reasons SL runs so poorly. Hell, introducing NPC agents and making their LI the sum of their attachments could be a good kick in the behinds of content creators to get smarter about optimization. Any arbitrary limits on the number of NPC agents to a parcel/sim should be dismissed. Any such limits should be based on their impact on sim performance. I'm not a technical person, so I can't imagine what the impact would be. But if an unscripted, unanimated NPC agent has the same impact on a sim as an unscripted prim, then the only limit I would see would be their LI cost on the parcel. If adding scripts and animations adds a greater impact to the sim beyond scripting and animating prims, then the devs should figure the best way to handle that. I'll add to that, anyone who owns land should be able to add NPCs to their land. Whether they own a solitary mainland parcel, or they rent from an estate. Being able to create, animate and script NPC Agents would be a game-changer for SL, giving us the ability to create a level of engagement and immersion that has hitherto been entirely impossible in SL. |
Penny Patton commented at 2016-12-02T05:14:57Z As for User Stories I can think of a lot of ways I'd implement NPCs in a sim. Currently, SL feels like a collection of dioramas filled with statues. When prim/mesh objects are animated in SL the result is very crude, like a badly made animatronic. It's not believable or engaging. NPC agents would change that. Use case: Forest Sim Use case: Tour Guide Use case: A better alternative to bots |
Penny Patton commented at 2016-12-02T05:35:04Z OH! Another use case: Rezzable NPCs We should be able to rez and de-rez NPC agents just like we can already do with objects. I own a mainland parcel, 4096sq.m., but I've used a holodeck system so I can swap active areas of my home. If SL were to gain NPC agents I'd love to be able to include NPC agents in my holodeck packages, so when you rez a particular scene, you also rez the NPC agents for that scene. I already do this with a mesh robot who floats around a scripted path when certain scenes are rezzed. Replacing the mesh statue with an animated NPC agent would make it a much more believable part of the environment. Content creators could also use this to rez NPC agents who only appear during scripted events, so you don't need to have every possible NPC for a sim rezzed at all times, only when they're required to interact with visitors or perform scripted events. This would allow people more flexibility in how they use their NPCs, and put less of a burden on the sim by allowing NPCs to be de-rezzed when not needed. |
Lucia Nightfire commented at 2017-02-04T06:00:34Z, updated at 2017-02-04T09:19:23Z Among the many things LL will be discussing at their big meet up all next week, this feature will be one. It has been proposed that NPC's could use existing accounts with a scripted means of logging them on/off. This would greatly ease the implementation process, but would severely hinder key applications. With an NPC having only agent qualities and no object qualities, we won't be able to use them as attachable pets, nor will we be able to take them into inventory or sell/transfer them to others or create applications that incorporate NPC's into products. This pretty much forces the remaining applications to be solely land ownership focused. I don't agree with this approach. Taking the easy road here will only produce yet another lackluster feature that could have had an enormous impact on all manner of commerce in Secondlife if it was just taken seriously. Yes, it would be a ton of work implementing NPC's that can use the existing avatar skeleton, existing rigged attachments, existing animations, existing AO's, use feature specific functions for control and can also perform as an object that can be rezzed, taken, worn, transferred or sold, but I think Secondlife is still worth the effort as users certainly still have interest in this platform. This isn't something we should only push off to Sansar in hopes that it will give that platform some interest. I told a developer to mirror these comments over to the MAINT jira for review when they bring this feature up for discussion. If you have any opinions regarding/countering the use of existing accounts as NPC's, please let them be known. |
Kadah Coba commented at 2017-03-17T00:08:32Z I concur. If a resident account is required to make a single NPC, then the feature adds nothing that isn't already being done with bots, only moving where the bot is hosted. All that would do is make it slightly easier to do what some already do, but likely with far less features since I could safely assume that the LL hosted bots wouldn't support RLV or any of the custom exiting bot scripts (external script that run on the bot clients). I don't think it would be all that much work to add object based agents. To the viewer they would be pretty much like any other agent but with extra flags and data to the effect that they are NPCs. Simulator side is another mater I cannot speak for, but I have the feeling it wouldn't be to massive even if they're would be limitations like unable to cross regions (though the idea of having rideable mounts like horses that actually look good and animate well without horrid sim performance would be nice to see and also an interesting new market). It would be nice to be able to make experiences (or something like them since EXP is rather limited) filled with NCPs that look good and don't have to use most of the sim's script time and massive storms of prim update packets for primitive animations (pun intended). |
Kadah Coba commented at 2017-03-21T22:46:39Z This likely needs to be set to "Info Provided" but I think that will also block off access again. |
Lucia Nightfire commented at 2017-03-22T02:55:50Z It would block access, but theres no need to set it to Info Provided since there is already a MAINT order for this request. Animated mesh is now discussed at that Content Creator user group meeting. |
Kadah Coba commented at 2017-03-24T23:33:59Z Thanks for the update. I haven't been able to attend any user group meetings in years due to work hours conflict. |
Lucia Nightfire commented at 2017-05-12T00:01:32Z Vir Linden announced that work has begun on animated mesh in the Content Creator UG today. Here is a video of the live stream: |
Extrude Ragu commented at 2017-06-02T08:38:14Z, updated at 2017-06-02T12:39:28Z Hello, If we are going to add 'Object-Agents' or 'Created Agents' , could you please let agents Sit on the attachment points of the created agent? (IE, RHAND, LHAND etc). This way we can bring some more unique content to SL that might not be obvious to SL Devs. Think for example of animated theme park rides. One could repurpose a bunch of the agent's bones for a Merry go around, or if you're really pushing it, one could go so far as to make a rideable roller coaster using bone animation, where the agent sits on an attachment point to be taken around. Which couldn't be achieved with any decent quality with the current tools available. I also don't believe that the animation commands are necessary. Just use the existing animations for avatars, and auto-grant permissions requests from the owner. It also means that scripts are more interchangeable. Please also consider making the tags above 'created avatars' optional or invisible, in case we would like to use them as non NPC's such as swaying trees and other things |
Lucia Nightfire commented at 2017-06-02T20:08:33Z @extrude Ragu It appears animated mesh will be object based, not agent based so a new animation function will be necessary. I don't think LL is going to invest in sitting on attach points any time soon. I've been thinking of filing a request for a function that can temporarily rig a sitter to a bone ID with local position and rotation offset. This will allow fluid movement feedback with animations played by the animated mesh the sitter is sat upon without the need to make custom rider animations that fake the movement which would be hard to keep synchronized. You should attend the Content Creator UG to ask questions and submit ideas. |
Kadah Coba commented at 2017-06-02T23:48:25Z Being able to set sit targets that are relative to bone positions on an animated object would be useful. There would be the caveat the an avatars actual server side position will not correlate to the apparent visual position since animations are client side. |
Lucia Nightfire commented at 2017-06-21T05:28:28Z Filed a request for the function, llSetLinkSitRigging() at https://jira.secondlife.com/browse/BUG-100864 Feel free to comment there with any ideas. |
Vir Linden commented at 2017-07-06T14:47:46Z Our apologies, it appears this jira has been a victim of a spammer. We've cleaned up the offending comments, sorry for the mess! |
Please do not triage for two weeks. Give people time to comment. Thanks.
Problem
For years now, users have been asking for a way to animate mesh versus substandard methods such as alpha cycling and puppeteering.
There are jiras mentioning feasibility with custom skeletons, custom mesh and custom animations, but a much simpler means is possible: Created Agents
Solution
Created Agents are essentially the same as regular agents or bots, just without an internet connection to the server. They have their own inventory similar to an object's inventory, and can attach the same things a regular agent can, albeit with a much smaller attachment slot limit.
Created Agents are a new object type that can be rezzed with the Build menu just like prims or Linden plants. See Fig 1
You can choose a male of female base agent to create.
Once rezzed, you will see a default avatar using default animations specific to the gender you choose.
This created agent has a tag similar to agent's that displays "Created Agent" as well as their object name and can be right clicked for options such as:
If rezzed:
Edit
Take (since created agents are a new object type, they can be taken into inventory and re-rezzed or attached or put into objects to be scripted rezzed)
Take Copy
Attach (created agents can be attached like an object)
Attach HUD (created agents can be attached to HUD slots. This is for apps that use personal assistant mascots or for experience based HUD games that use 2D "in-game" characters, NPC's, monsters, etc.)
Delete
Return
If attached:
Edit
Detach
When using Edit, the created agent can be selected like an object and inside it's inventory you will see the default body shape, skin, body parts, alpha mask, mesh attachments currently attached in bold like your own inventory.
You can right click these inventory items and detach, remove, drop in new items, right click and attach them.
You can also create a New Script in this created agent's inventory or drop in already compiled scripts.
New script functions are used to move and in-turn, exercise animations and animation overrides on created agents.
New script functions are used to attach/detach items from their inventories.
These functions must be called from a script in the created agent's inventory, not from their attachment's inventory or a rezzed object, etc. All targeted inventory items must be inside the created agent's inventory.
No run-time permissions are necessary for these operations.
Here are examples of the new functions that will be used:
Controls
llCreatedAvatarApplyControl() - Applies only U,D,L,R,F,B movement and L/R rotating controls. No mouse button controls. Control is active until changed. These controls exercise base and set animation overrides like a normal agent's. Movement can also be faked with llMoveToTarget().
Animations & Overrides
llCreatedAvatarStartAnimation()
llCreatedAvatarStopAnimation()
llCreatedAvatarSetAnimationOverride()
llCreatedAvatarResetAnimationOverride()
llCreatedAvatarGetAnimationOverride()
Attaching/Detaching
llAttachFromCreatedAvatarInventory() - All object type attachments function as temp attachments despite showing as bold in their inventory. No-copy items cannot be attached.
llDetachFromCreatedAvatar()
llAttachToCreatedAvatar() - this is attaching from world, only possible if target object and created agent have an experience set (BUG-11356)
llCreatedAvatarDropToPos() - only possible if created agent has an experience set (BUG-11356) and is over land with the same experience allowed
llCreatedAvatarGetAttachedList() - operates like llGetAttachedList()
Note: Since attaching is temp, there is no state saving of attachment link params or script memory on detach.
Removing an item from a created agent's inventory detaches it if it is attached.
Other
llCreatedAvatarSit() - only possible if created agent and target object/attachment have an experience set (BUG-11356)
llCreatedAvatarStand()
llGetCreatedAvatarInfo() - operates like llGetAgentInfo()
Other Points of Interest
Created avatars have a much smaller attachment allowance, only a dozen slots total compared to an actual agent's 38 and includes all item types including body parts.
This is to encourage primarily rigged mesh use and prevent resource abuse. No HUD slots are used.
Created Agents cannot attach created agents.
If attached, created agents have a base render weight value of 25000 with no attachments.
Created agents have a base land impact of 64 when rezzed.
Limit of 50 created agents allowed in a full region total. Once the limit is reached, users won't be able to rez or attach additional created agents nor be allowed to enter the region while wearing one or sitting on one.
Scripts in created agents can request run-time permissions or experience permissions just like normal objects.
Created agents can have their attachments sat upon by users. (SVC-6100)
Benefits
Substandard methods of mesh and body animation will be made obsolete.
No more render and resource heavy objects with dozens of complex mesh links and alpha cycling protocols.
No more resource heavy stored link position and rotation multi-link SLPPF() limb movement with interpolation ugliness.
No more devoted hardware and bandwidth for running bots with lacking and non-intuitive RegAPI.
Using an actual agent class object base will allow for the ultimate pets, breedables, ridables, NPC's, monsters, game enemies, target dummies, worn product demonstrations, mannequins or adult companion/interactive objects.
Thanks in advance for any consideration. Comments welcome.
Attachments
Links
Related
Original Jira Fields
The text was updated successfully, but these errors were encountered: