• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: SVC-56
Type: New Feature New Feature
Status: Open Open
Priority: Critical Critical
Assignee: Unassigned
Reporter: AJ DaSilva
Votes: 321
Watchers: 34
Operations

If you were logged in you would be able to see more operations.
2. Second Life Service - SVC

New Feature -> LSL -> Agent -> Rotation Control

Created: 19/Mar/07 06:34 PM   Updated: 20/Sep/09 10:39 AM
Component/s: Physics, Scripts
Affects Version/s: 1.13.1.5, 1.13.3, 1.13.4, Havok4 Beta, 1.26 Server
Fix Version/s: None

Issue Links:
Duplicate
 
Relates
 

Sub-Tasks  All   Open   
 Sub-Task Progress: 

 Description  « Hide
There is currently no way to control agent rotation via scripting. There should be.

 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Lex Neva added a comment - 20/Mar/07 08:33 AM
For starters, llLookAt() and llRotLookAt() would be nice. I'd also like to see llApplyRotationalIImpulse() and llSetTorque work.

TigroSpottystripes Katsu added a comment - 27/Apr/07 09:44 AM
this would be extremely helpful for lots of purposes, specially those related with animation, but not only that

Vincent Nacon added a comment - 02/May/07 12:20 AM
That should help with attachment hugger and kissing better to get them line up right for animations.

Voted


Han Sontse added a comment - 18/May/07 04:27 PM
I personally would not want to see this done unless it only applied to the owner of the script... This has major grief potential just as llPushObject does now.... also note.... that the rotational impulse component of an llPushObject does not work on agents.

endymion underall added a comment - 11/Jun/07 06:34 AM
I agree with Sontse about the griefing potential, but I think that if this was addressed in the same way as llPushObject is (with regions being set to allow/disallow these functions for avatars other than an object's owner), the problem would be addressed.

dibbs Dovgal added a comment - 22/Jun/07 07:23 AM
I agree that this would be extremely useful.
And I do not see any griefer issues if it were applied in the same way that animations are: ie with a getPermissions requirement. This should work exactly as permission take controls, permission Animate etc. do. Thus the AV would have to provide permissions, either explicitly or implicitly.

It would also be useful to be able to get a rotation heading directly from an AV. Currently I can do so by getting a rot from an attached HUD, but it would be nice to not need that.


Toran Cult added a comment - 22/Jun/07 09:48 AM
We used to have this at one time. Is broken now and I need it badly for several prjects I am working on, not to mention fixing old scripts.

WarKirby Watanabe added a comment - 05/Jul/07 08:46 AM
I disagree about griefing. Really. Someone ROTATING you, is hardly the most heinous crime.

I think this should be implemented in 2 ways. As in, both of them.

1. llLookAt etc. Should work with PERMISSION_TRIGGER_ANIMATION. Since it is, to uneducated eyes, a form of animation.

2. llApplyRotationalImpulse . Should require no permission, but not work in no push zones. Or on an avatar who's seated/non phys


Argent Stonecutter added a comment - 09/Aug/07 01:15 PM
I see absolutely no reason to even consider griefer issues NOR to add the burden of asking permissions.

Why?

Because all the calls needed already exist, they are all simply rotational variants of calls that can move avatars around linearly, or unimplemented parameters to calls that can move avatars linearly. For someone to use these for griefing they'd have to convince you to attach a prim to yourself, and once they do that the script's already able to orbit you, accelerate you laterally fast enough that you lose connection to the sim, and so on. Being able to rotate you as well adds no new danger, and the requirement that the prim be attached to you means you can't be shot or bombed into a spin.


Vincent Nacon added a comment - 23/Aug/07 12:32 PM
Actually....it may not orbit you... but it can crash you from client side if you were spinning too fast that your client crashes from trying to view everything around you at once if you were in mouselook.

...but of course, I hardly don't see how this can be griefer's way to abuse people. Maybe in a prank joke for wearing something.

I'm all against permission trigger.... they are too much of a hasle to script.


WarKirby Magojiro added a comment - 04/Sep/07 01:56 AM
Permission triggers are a hassle, yes. But requiring it to be done from a worn object is too limited.

simply have the permission auto granted for attachments like animation permission. And unattached objects have to ask.


Day Oh added a comment - 18/Oct/07 01:59 AM
If a permission isn't required for an attachment to move the avatar, why is it suggested for rotating it?

WarKirby Magojiro added a comment - 02/Nov/07 09:16 AM
Actually, I agree with argent. llPushObject doesn't need permission. Why should this.

No permission needed.


Haravikk Mistral added a comment - 07/Nov/07 02:29 AM
I would like llLookAt() and llRotLookAt() to work with agents again. As for permissions, surely this isn't an issue? Using those two functions it would only work from within attachments anyway, which are typically given permission for most things right away.

darling brody added a comment - 20/Nov/07 09:51 AM
I agree that being able to rotate the agent who is wearing the script is desiable and has zero griefer uses.

For a hugger you can use llMoveToTarget to position your agent in front of the other agent. llGetObjectDetails will give you the other agents rotation so you can work out where to move to.
The only thing missing is being able to correctly rotate yourself to face them.

The same goes for any other situation where you need to place your avatar at a location and facing the correct direction.

The only way to do it now it so rez an object around them and have it bump into one side of them to turn them. Hardly accurate, and not very friendly to anyone else who gets in the way.

I Vote yes.

Darling.


Thomas Shikami added a comment - 08/Dec/07 10:17 AM
I Vote for it, but should only work from attachments on the owner

Strife Onizuka added a comment - 08/Dec/07 04:46 PM
Sounds like a good idea to me. I don't see a problem with changing the existing functions to work on avatars.

Though it should be noted that agents only turn on one axis normally (the z axis). The other two axis are kept locked. Should the other axis be unlocked for these functions? Or maybe we should have a special avatar turning function where the x & y axis can be locked or unlocked by a boolean.


WarKirby Magojiro added a comment - 08/Dec/07 04:46 PM
Just make it physical rotation, is all. SO that it doesn't affect you if you're sitting.

If you're standing and unprotected, there are plenty worse things someone can do to you already. Spinning doesn't add any problems.


Argent Stonecutter added a comment - 08/Dec/07 08:18 PM
I think the real problem is that the sim doesn't control unlinked agent rotation, the viewer does... the sim just passes the facing information it gets from the viewer around, and other people's viewers adjust the avatar's appearance to match.

Winter Ventura added a comment - 21/Mar/08 04:45 PM
Is this really a "New Feature" if it's asking for the repair/reinstatement of functions in LSL that are documented as "Broken?"

Soft Linden added a comment - 19/Apr/08 03:48 PM
Reopened SVC-2204 and made a sub-task of this. I believe this is the main feature people want.

Rohacan Hirons added a comment - 12/Aug/08 12:06 PM
Hi,

I voted too.
Just my vision :

  • tchat allow everyone to tell shit to others, why not break it too ?
  • gestures, llPlaySound(),... allow everyone to make horrible sounds, why not break llPlaySound() and gestures ?
  • some people kills other people... Oh just break humanity, it's a simpler way to fix it XD
    -....

I don't understand why llPointAt() is more a problem that other way to piss of people ?
If your wear an object that make you crash with spinning too fast, relog, quick depos it and make a report

(sorry for my poor english... hehe, break me too )


Talvin Muircastle added a comment - 29/Jun/09 09:11 AM
This is important for certain projects to make Second Life more Accessible to people with disabilities, as well.

Cinco Pizzicato added a comment - 30/Jun/09 07:37 PM - edited
How would it work?

Glad you asked.

You request permissions: PERMISSION_MOVE_AVATAR.

When permissions are granted, you treat the avatar like any other physical prim. llRotLookAt() would give the desired rotation control. llMoveToTarget() would be essentially the same as 'Go To...' in the pie menu. llSetPos() and llSetRot() would be useful for less realistic simulations. Ignore X- and Y-axis rotation information; use Z only. Ideally, physics commands would replace current flight enhancement techniques.

One downside for the accessibility application is that the user of the script would have to give permissions each time a HUD is worn, eg. Policies could be implemented much like with permissions for other HUD apps, or with chairs that always get permission to animate. Glad I don't have to iron all that out just now.


Kelindra Talamasca added a comment - 30/Jun/09 07:43 PM
Echolation is used by blind RL with clickers, there needs to be methods for them to do this other then just the available pluggins which should also have browser UI options

TigroSpottystripes Katsu added a comment - 30/Jun/09 07:56 PM
that echolocation thing has nothing to do with this proposal, does it? Having actual collision geometry data avaibale to scripts would be great, but lsl isn't capable of doing the sound tricks required to shape a sound in response to the environment to that level, blind people would probably get a better feedback for the environment by using the vOICe ( http://www.seeingwithsound.com/ )

anyway, back to the topic, how do you propose llSetRot and such would work when the object isn't an attachment? I think it would be better to have new commands specificly for rotating the avatar, physicly and not (of course only when permission is granted, and for attachments permission could be auto-granted like how it happens with some of the other permissions)


Cheshyr Pontchartrain added a comment - 30/Jun/09 08:42 PM
I've been wanting a way to do this for ages, along with implementing the broken look_at target in llMapDestination (third parameter that does nothing.) Heck, I'd be happy if rotating the prim an avatar is sitting on actually changed their rotation. But it doesn't. Sometimes yes, but 90% of the time you stand up facing the same direction you faced when you sat down.

@Cinco: I don't think we need any further permission requests. The ones we have are burdensome enough and llMoveToTarget() works quite well now without crippling it. Your suggestion would in fact break all existing flight assists, among other things.


Joel Savard added a comment - 30/Jun/09 10:38 PM
Enclosing content of a notecard that explains the value of adding this feature to the disabled community in Second Life:

Several individuals and groups in Second Life are working on scripts that make it easier for people with disabilities to use this immersive environment. However, Linden Scripting Language has some inherent limitations that the scripters, and those who use the scripts, must somehow overcome.

One of these is that LSL cannot easily change the direction that your avatar is facing--your "rotation". This was possible at one time, but it is no longer available.

Why is this important?

Someone who is Blind or Visually Impaired can check to see which way they are facing, but if they wish to face a particular direction, they must guess at how long to hold down the arrow keys. It is possible to set a "target" rotation that will notify you when you reach a particular facing, but it is still very easy to overshoot. So, the "simple" act of turning to face a doorway or to face someone with whom you are speaking may not be so simple for them.

Someone with motor impairment that affects fine motor control may likewise have difficulty turning. Imagine directing your avatar's facing by saying "Turn left" or "Turn right" instead of using your keyboard. This is just one example of how someone with motor impairment might use Second Life, of course.

Facing a specific direction in a smooth and realistic manner could be difficult in either case. If you know that Joe Avatar is at 47 degrees from your position, you could issue a command to "face 47 degrees", and your avatar would be "looking" at him. This makes social interaction smoother and more realistic, as well as making travel and interaction with objects in-world easier.

The desire to have Avatar Rotation returned to LSL is not limited to the Disability Community. Others have already begun this effort.

http://jira.secondlife.com/browse/SVC-56

If you log in to this site with your SL Username and Password, you can vote for this issue. Voting does not compel Linden Lab to address our concerns in the way that we desire! However, they did create this site because they want user input. They do pay attention to these votes, and they tend to focus on those issues that receive the highest number of votes.

Please, consider adding your vote.

Thank you,
Talvin Muircastle


Talvin Muircastle added a comment - 01/Jul/09 05:08 AM - edited
Kelindra and Tigro: this is not about echolocation or sound, at least not exactly. It is about turning your avatar to face a specific direction.

Still, they could be used together. For example, my wife, Dianna Muircastle, has been practicing with vOICe to open the door to her office. From the center of her office (which is her home position) it is almost due SouthEast.

She has tools already that tell her which way she is currently facing, and that tell her which way she needs to face to have the door directly in front of her. The problem that this feature would address is making those two numbers match.

The first try to open the door took her close to 30 minutes. Now she can manage it in about 2 minutes on average.

Think about that: taking an average of 2 minutes just to get yourself lined up properly to open a door that is in the place where you wake up every time you log in to SL.

If she could change her avatar facing with precision, I think that could be shaved down to seconds. Door is at 5 meters at X degrees, so type /3 face X, /3 go 5, double-check to make sure she is lined up properly on the door, and click.

EDIT: I double-checked this with Dianna. She corrected me: 2 minutes is a GOOD day, not an average. 5 minutes is more average now.


Winter Ventura added a comment - 01/Jul/09 07:36 AM
Think of the awesome hugger we could finally have.

Argent Stonecutter added a comment - 01/Jul/09 08:35 AM
It's not as simple as having non-physical prim position commands control the avatar, because then you'd lose the ability to control the prim. Now you could have the prim take and release permissions over and over again, but it would be much simpler to stick to the physical movement API, particularly since the avatar has fewer degrees of freedom than a prim.

If there's a missing API to set the Z rotation of the avatar, add a new call.


Day Oh added a comment - 01/Jul/09 08:55 AM
I'm surprised nobody's said anything. It seems like this according to the design: the simulator tells a client an avatar's position, but rotation is the opposite: the client tells the sim the avatar's rotation.

Think of your viewpoint with your camera behind you... and how even if things push you around, even if they make the avatar appear to rotate momentarily, you never experience the camera turning around. If it happened I bet it would grab your attention!


Argent Stonecutter added a comment - 01/Jul/09 09:51 AM
Yes, it would have to be implemented by having the sim send a message to the client asking that the avatar be turned to a specific facing.

Hiro Pendragon added a comment - 01/Jul/09 10:15 AM
Major issue? With all the bugs out there, and the need for HTML to be finished and countless other features? Downgrading to normal priority.

I'd like to hear from Linden Lab as to the feasibility as well as impact. It is not like avatar animations as those are done client-side. Controlling the head, I'd imagine, yes. Controlling the body's rotation? Not so sure.


Sling Trebuchet added a comment - 01/Jul/09 10:21 AM
I started to clean up a collar script for someone... and a temper tantrum when I discovered the LSL function to turn the avatar lacked a certain something - like working.

MichaelZ Market added a comment - 01/Jul/09 12:32 PM
I believe this is a valid problem that needs to be solved

JoeUTSA Palianta added a comment - 01/Jul/09 01:15 PM
I think this would be most useful especially if someone is somewhat visually impaired - I'm always in favor of ways to help those that may be especially challenged by the virtual technical environment.

Cheshyr Pontchartrain added a comment - 01/Jul/09 11:17 PM - edited
Could we please stop the priority wars? Normal was just fine for this issue. It is frustrating, and inconsistent in the way avatar rotation is handled even when sitting, but it is not a major priority. And those trying to pull the handicap trump card should turn their attentions elsewhere. Fixing sound and voice chat is more useful for the visually impaired. I don't see any use whatsoever for rotating a blind avatar. If you can't see, you aren't walking around a 3D environment designing clothes and building houses.

Those issues aside, if someone knows where the JIRA for llMapDestinations()'s failure to use the third rotation parameter is, could you link it to this one? Ditto for anything regarding sit/stand's unstable behavior vis-a-vis avatar rotation. They're all related. I'm guessing that fixing one fixes many if not all of them.


Talvin Muircastle added a comment - 02/Jul/09 03:48 AM
Cheshyr: rotating a blind user's avatar with any degree of precision is very difficult for them. I am one of the people making assistive tech for people with disabilities, and this is one of the major complaints I have received. This has nothing to do with designing clothes and building houses, but there are most definitely Blind and Visually Impaired people walking around in Second Life. I am married to one of them, and I work with others. There are also people with severe motor impairment in Second Life, and I have worked with them as well. For them, it IS a Major Issue.

As for "Fixing Sound and Voice Chat", I have heard no complaints about either. Nor do all Blind people use Voice Chat.

If you are interested in learning more about these issues, please contact me in-world for a demonstration of some of the LSL-based technology that Blind people use to navigate Second Life and an explanation of how this will fix a Major problem for them.


Cheshyr Pontchartrain added a comment - 02/Jul/09 08:07 PM
I meant no disrespect. In high school I had a blind friend who I frequently went to movies with to act as a narrator, explaining what she couldn't figure out from the dialogue and sound effects. However, the key point there is a human was doing the narrating. I don't know of any computer system able to describe a virtual environment, or even a still photograph in any meaningful way.

Changing the priority on this issue because a handful of users might need it to navigate seems like overkill. The same madness that led my former boss at the Registry of Motor Vehicles to force me to make the website accessible to the blind "in case they needed to renew a driver's license." I don't know what drugs they feed government decision makers, but they're bad ones.


TigroSpottystripes Katsu added a comment - 02/Jul/09 09:34 PM
from what I've read of reports of the vOICe users, it can provide somthing quite close to actual sight after enough training

and I imagine that with the right settings (perhaps a custom Windlight sky/lights, or perhaps some tweaking of the rendering system itsel)f, Second Life could become even easier for the vOICe beginners than RL

I don't think the fact people with disabilities have just a bit more dificulty than the rest of the people with aiming their avatar after the same amount of training justifies bumping up the priority here, in RL it isn't uncommon for blind people not stare or face the same direction a sighted people would in a given situation, and people with motion related disabilities depending on the severity can only turn and aim themselves with the help of others. But many others use joysticks or other types of input devices to move and I don't see why that approach wouldn't work with SL as well

it should also be possible to use AutoHotkey combined with a purposely made hud to assist with doing certain movements in SL

I don't think this ability is any more important to people with disbilities than it is for the rest, what is needed to overcome the lack of this feature is just about the same for both types of people, being blind is no excuse to suck at videogames, haven't you heard about that guy that had his eyes removed when he was a kid? I don't mean to offend anyone, what I'm trying to say here is that I believe the difficulty some people report with aiming themselves is just lack of practice, if they had been practicing using these type of controls for a similar amount of time as the rest of the people they would probably turn just about as easilly, gotta play more, and "watch" more other people doing it as well with whatever means they got avaiable


Talvin Muircastle added a comment - 03/Jul/09 06:06 AM
We're getting off topic. If you would like to discuss alternative forms of assistive technology, please contact me off these boards. It's been tried, and this is the option that the customer base has stated would work best for them, hence the increase in votes. I'm happy to discuss that further, but let's stick to the JIRA rules and keep this board for discussion of this specific item.

As for the classification as "Major": It was set to Major when I first got here. This topic has been up since 2007, reopened at least once, and set to Major by someone who presumably had no knowledge of the disability issues. Over 150 people have voted for it since without feeling it needed a downgrade.

The person who did downgrade it cited that they wanted other things first as a reason. JIRA does not include a "vote against" option: if you want something else first, go vote for that instead! Nor is arguing against the interests of People with Disabilities going to get very far, either: one survey shows that as much as 20% of the SL population self-identifies as having a Disability of some sort, and we are working to bring more in. We have as much right to have our voice heard here as anyone else.

As soon as the downgrade occurred, I reset it to Major. If you feel I abused the system by doing so, I suggest using the existing grievance channels already in place.


Couldbe Yue added a comment - 06/Jul/09 08:34 AM
Dear Linden Labs,

I think that's it's pretty shameful of you to use the disabled as part of your PR for Second Life, yet you don't even have the courtesy to assign someone to look at this feature. Despite the major benefits to a large minority of your community (I have no idea just how many of those 20% of physically disabled customers would directly benefit) and a general benefit to the rest.

But then, the company is not about being honourable is it?

C

if you've not come across the word honourable before, here's the definition:

Adjective

honourable (comparative more honourable, superlative most honourable)
Positive
honourable

Comparative
more honourable

Superlative
most honourable

1. worthy of respect


reddot99 Republic added a comment - 08/Jul/09 07:46 PM - edited
there was at one time a function for this, ''llPointAt(vector v?)'" so code is existing, just likely commented out

reddot99 Republic added a comment - 08/Jul/09 07:50 PM
updating with mention that this affects all server versions so far,

RED13 Raleigh added a comment - 10/Jul/09 11:46 AM
The need for mobility control for those with disabilities to enjoy second life outweighs any perceived benefit this may give to griefers.

Talvin Muircastle added a comment - 10/Jul/09 12:34 PM
The question of griefing was discussed a fair bit a while back. I cannot, off-hand, think of many reasons* why we need to be able to rotate an avatar except through something attached to the avatar or through something the avatar is sitting on. Setting rotation on teleport might be one, but as for "drive-by rotating": no. Avatar rotation should only be performed with implicit (attach/sit) or explicit permission.

All of the assistive tech that I am aware relevant to this is attached to the Av.

*(But if you know of a reason, please share!)


TigroSpottystripes Katsu added a comment - 10/Jul/09 04:51 PM
huggers and other coordinated avatar motion without poseballs and such is one of the possibilities

perhaps simply allowing avatar rotation along the Z axis to be physical would work perfectly, for objects not attached the angular impulse part of llPushObject woudl do it, unless the land has push completly blocked (instead of just weakened), and attached objects would use the the physics commands that affect rotation on the prim that run the command, push doesn't need permission, and nor those the translational phys commands that also work on an avatar if run from an attachment


TigroSpottystripes Katsu added a comment - 15/Jul/09 02:01 AM - edited
somthing I put together just now:
(edit: I'm removing the code tags, I don't like horizontal scrolling)

edit2:gonna try to make it less mangled without having to have horizontal scrolling

edit3: I should've RTFM to start with, now it should look good on the page (also the preview button was underused,sorry). I've managed to make everything looks right except there is no indenting, and it will look mangled by email (without the pjira rendering engine), I've just tested and copying the stuff between the /////////s (after rendered by pjira) and pasting back into SL works just like the original, if indentations are really important for you, or you don't wanna come to pjira and copy the text from here, you can use the original one, the only changes are presentation and a couple of typos

/////////////////////////////////////////////////////////////
//HOMING AVATAR proof of concept
//Originaly by TigroSpottystripes Katsu

//do whatever you want with this code

//2d topology only, no jumps nor flight requirements nor obstacles taken in consideration

//tested only with Emerald Greenlife viewer with Restrained life functionality enabled

//too simple, doesn't do any checks nor anything, just the basic algorithm to do the job and any extra code necessary to make a working proof of concept

//How to use: place the script on a prim you own, set the key of the target bellow, save the script, and start holding the forward key till you hit the target

//key of target avatar or object to home on
key target = "25e31276-cd5f-ae40-58bc-b9174ce540a5";

default

{

state_entry()

{

llSetTimerEvent(0.2);

}

timer()

{

vector tpos = llList2Vector(llGetObjectDetails(target, [OBJECT_POS]),0); //target position, if going to specific coordinates instead of going after an object or avatar, replace everything after the = sign and before the ; with the vector of the destination

vector opos = llList2Vector(llGetObjectDetails(llGetOwner(), [OBJECT_POS]),0); //owner position, used to calculate the angle to face the target position

float ang = -llAtan2(tpos.x-opos.x, tpos.y-opos.y)+ PI_BY_TWO; //angle calculated based on relative position of the target to the owner, for some reason it's 90 degrees off, PI_BY_TWO==90 degrees

llOwnerSay("@setrot:" +(string)ang+"=1");//sends the command to set the rotation for the client to process, needs Restrained Life functionality

}

}

//////////////////////////////////////////////////


Feynt Mistral added a comment - 20/Sep/09 07:30 AM
Updated to critical because this stops some REALLY important scripting things from happening, and by this time in SL's life it really should have been addressed.

Talvin Muircastle added a comment - 20/Sep/09 09:43 AM
I am going to disagree on the "Critical" matter, myself.

According to the guidelines, "Critical" is for "Generally, most crashes (particularly if they're easy to reproduce and affect many), content loss, significant memory leaks, greatly reduced performance, etc."

"Major" is for "Major loss or impairment of function, including rarer crashes."

While I obviously consider this to be important, it is not at the level of "Critical" in my opinion.

As this question of Priority has come into question (and contention) more than once in recent memory, I ask that a Linden settle the matter.


Haravikk Mistral added a comment - 20/Sep/09 10:39 AM
Well, the issue with the priorities is that they are worded mainly for bugs.

I think for new features the best thing to do is try and rate it by how complex the feature is, as the number of votes should express the desirability/demand for the feature.

In this case the issue probably shouldn't be above normal, as it isn't likely that hard to implement. The main concern with it (and its derivatives) is that if we change rotational functions to affect avatars, then it could have unforeseen effects, for example in scripts that currently have these functions. Currently their rotational element will do nothing, but if it's suddenly activated what impact could that have? Some things could break as a result.