Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Possible idea for fixing unsit.

InuYasha Meiji
Half Demon
Join date: 14 Mar 2005
Posts: 127
08-09-2007 15:06
Since I don't see this coming anytime soon, coming from LL, I thought if I give out this idea a better programmer then myselg might be, nice enough to create this.

I wish to have a way of not springing from chairs and get off them without being shoved onto the next floor or outside of the house. My first thought was ask LL for not only to have a sittarget but a stand target setting.

Then you could give LSL a target to stand at once the stand up button was pressed. But trying to be real here, LL will never get all the bugs out of SL, to add something this good.

So, it is up to us, the SL community to make a work around.

I was thinking, I don't know myself how a cage works. I know it holds you to a specified space till you find a way out or re log. How about using this script used by griefers for something good.

You would sit on an item which can then put a small cage around you, invisible of course. Then start a timer in the cage that will make it let go a half second after the chair realizes you got up from it. Just long enough to bounce you back from flying through a wall, or flying to the next floor of a build.

Seems all the newbies and griefers get their hands on it. Why can't I find out how to cage someone for a good item?

I am willing to pay for a copy/mod/transfer copy of a cage. The part that holds you in place at least.

Thanks,

InuYasha Meiji :cool:
Qie Niangao
Coin-operated
Join date: 24 May 2006
Posts: 7,138
08-09-2007 16:10
I've had this problem too, sometimes preceded by that tell-tale "klunk" when sitting, that happens when the pose and the surrounding prims just aren't compatible. Some random musings:

There's this cool, newish LSL function, llSetLinkPrimitiveParams that can be used to move the seated avatar around while still sitting... and which seems capable of effecting a graceful dismount to that "stand target." But the problem is that if the avatar pushes the blue "Stand" button, they'll be unseated (and no longer part of the linkset) before the script can do anything.

- One might create a "Dismount" button HUD positioned somewhere near that "Stand" button, and that moves the AV to "stand target" position and then calls llUnSit. But the attaching of that HUD to the screen of an arbitrary sitter would be... cumbersome.

- An alternative would be to trigger the dismount in response to a touch of the seat prim (some already have "choose your pose" dialogs triggered that way), but kind of a "training issue" to get sitters accustomed to doing that.

- Or, the script could llTakeControls (some do that, too, to cycle through poses, etc) and redefine CONTROL_UP, say, to trigger the graceful stand (personally I've always found it passing strange for the thing I'm sitting on to take controls, though it's common enough, I guess).

Hmmm.... Historically, some furniture has given the avatar a gentle llPushObject just after they unsit, which is a little closer to the "cage" scheme (well, both use physics, anyway).
Shadow Subagja
Registered User
Join date: 29 Apr 2007
Posts: 354
08-09-2007 16:37
My understanding is that a lot of these rough dismounts have to do with the avatar's location being at the sit location when the dismount occurs, often creating an object-in-object scenario and having strange physics and object-ejections occuring.

1. if you use llSetLinkPrimitiveParams to move the seated avatar, when they stand do they stand from the original sit position or from the subsequent moved position? If the latter, would it not be plausible to move the sit position to a nice comfortable standing position in front of the furniture, then use this llSetLinkPrimitiveParams to move the avatar into a seated position

2. Animations can move within a large range from the avatar's actual location, so it should be possible to simply use seated animations that incorporate a standard offset from a nice safely dismountable sit position?

I haven't messed around with any of this much myself but I do notice myself getting ejected from a few of the rides of built from time to time.
InuYasha Meiji
Half Demon
Join date: 14 Mar 2005
Posts: 127
Thanks for the ideas, but
08-09-2007 18:05
I was thinking of an unsit style button. the chair could whisper to the person sitting which button to get up. But still trouble makers will ignore it and hit the stand up button anyways.

llSetLinkPrimitiveParams might be something I should look at. I forgot to read the new lsl command list. I never even noticed it before.

I don't want to add a push to my chairs, I may want to sell them, and I never know if they will go on push enabled land or not. I wasn't sure how cage works, whether it was a form of pushing so some kind of a script that held you within a prim space. So, I thought it may be the way to go.

-InuYasha
Qie Niangao
Coin-operated
Join date: 24 May 2006
Posts: 7,138
08-09-2007 18:20
From: InuYasha Meiji
I don't want to add a push to my chairs, I may want to sell them, and I never know if they will go on push enabled land or not.
Good point. Just FYI, though, llPushObject is more permissive than one might expect on no-push land. As one might expect, if the scripted object is owned by the parcel owner, push still works, but I've also found it to work on no-push *group-deeded* land when I didn't expect it to, seemingly whenever the scripted object is owned by any member of the group. But I wouldn't think it would work in a common rental situation where the land and scripted object are both *set* to the same group, but owned by different agents (although I've never tried it).
InuYasha Meiji
Half Demon
Join date: 14 Mar 2005
Posts: 127
Another piont in using push.
08-09-2007 18:33
Am I not still going to have trouble because how will I push the AV out of the chair, most likely forward, if someone hits the built in bottom of the screen, stand button. I will still have to make a stand up button, won't I. Button or key press, one of those.

InuYasha.
BamBam Sachertorte
floral engineer
Join date: 12 Jul 2005
Posts: 228
08-09-2007 22:46
From: Shadow Subagja
My understanding is that a lot of these rough dismounts have to do with the avatar's location being at the sit location when the dismount occurs, often creating an object-in-object scenario and having strange physics and object-ejections occuring.

1. if you use llSetLinkPrimitiveParams to move the seated avatar, when they stand do they stand from the original sit position or from the subsequent moved position? If the latter, would it not be plausible to move the sit position to a nice comfortable standing position in front of the furniture, then use this llSetLinkPrimitiveParams to move the avatar into a seated position

2. Animations can move within a large range from the avatar's actual location, so it should be possible to simply use seated animations that incorporate a standard offset from a nice safely dismountable sit position?

I haven't messed around with any of this much myself but I do notice myself getting ejected from a few of the rides of built from time to time.


I tested your first idea and alas it does not work. The sim unsits the avatar from wherever it currently is, not from the sit target. If the seated position causes the avatar to intersect an object then the avatar will get thrown, even if the sit target is a non-intersecting position. I don't have the ability to make animations but I think your second idea will work.
Kenn Nilsson
AeonVox
Join date: 24 May 2005
Posts: 897
08-09-2007 23:23
Personally...I've found that the "solution" is to simply not sit in an extremely restricted space...
_____________________
--AeonVox--

Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms chasing ghosts, eating magic pills, and listening to repetitive, addictive, electronic music.
Kornscope Komachi
Transitional human
Join date: 30 Aug 2006
Posts: 1,041
08-10-2007 01:05
The problem worsens with sculpt furniture as it can encapsulate the av and give a good "kick" on dismount.
Would making them phantom fix this?
_____________________
SCOPE Homes, Bangu
-----------------------------------------------------------------
Kenn Nilsson
AeonVox
Join date: 24 May 2005
Posts: 897
08-10-2007 08:32
From: Kornscope Komachi
The problem worsens with sculpt furniture as it can encapsulate the av and give a good "kick" on dismount.
Would making them phantom fix this?


Phantom scuplties would prevent the super-kick, but you'd also end up walking through the furniture and not have anything to sit on (unless you were using a poseball/etc).
_____________________
--AeonVox--

Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms chasing ghosts, eating magic pills, and listening to repetitive, addictive, electronic music.
Tiarnalalon Sismondi
Registered User
Join date: 1 Jun 2006
Posts: 402
08-10-2007 10:04
From: Kenn Nilsson
Phantom scuplties would prevent the super-kick, but you'd also end up walking through the furniture and not have anything to sit on (unless you were using a poseball/etc).


Last I checked you could sit on a phantom object if it has a sit target...could be mistaken however.

The changed event will still fire on the unsit obviously, so you could feasibly just make the seat go phantom if currentav == NULL_KEY, and then give lastav a small nudge forward.

If the furniture is being sold, then most of the time the person who owns it will be the one using it.

Unfortunately aside from moving the chair that's about the best you're going to do without more complex additions which might make the furniture itself undesirable in the end.

I mean, feasibly you could have it rez an alpha cage around where the av would be just after unsit and have the cage push or moveto a position that would be next to the chair and poof I suppose.

I've had to tell more than one person in the past when they asked me "why does your ship sometimes launch me 10m away when I stand up", to "blame SL", so really it's something that most should be used to in my opinion.

I would love a command of llStandTarget(vector pos, rotation rot) as a companion to llSitTarget though...the benefits would be far-reaching, but I think the implementation might be too far out of reach at present.
Atashi Toshihiko
Frequently Befuddled
Join date: 7 Dec 2006
Posts: 1,423
08-10-2007 10:44
The solution I have used was to turn the furniture phantom for about 1 or two seconds. The furniture is nonphantom most of the time so people can't walk through it, i.e. the collision behavior is normal etc, but when someone stands up the furniture goes phantom for a brief moment.

When it turns nonphantom again, if they are still standing in it, there is automatically a little nudge that (I assume) comes from the physics engine or something like that. For whatever reason, it seems a lot 'kinder' the way that the avatar reacts when inside a phantom object that turns nonphantom, than they do to being inside a nonphantom object when standing up.

-Atashi

p.s. you can definately put sit targets in phantom objects, that works just fine.
_____________________
Visit Atashi's Art and Oddities Store and the Waikiti Motor Works at beautiful Waikiti.
Tiarnalalon Sismondi
Registered User
Join date: 1 Jun 2006
Posts: 402
08-10-2007 10:52
I'll caution that you have to be careful with that method though. If you're dealing with something with very tiny pieces, the physics engine doesn't always boot someone intersecting one of those if it goes solid.

I've had someone move a floor prim that was 0.01m tall and caught me in my thigh....I had to hit the arrow keys like crazy before it bumped me out. I understand most of the reason for that, but I think with the smaller prims it sometimes has a hard time deciding which end you should be pushed to in order to get you out of it.
InuYasha Meiji
Half Demon
Join date: 14 Mar 2005
Posts: 127
Discovery!!
08-11-2007 06:28
I am going to try something cause I noticed it worked well when I didn't use an actual sit target. I created a really good kneeling animation, not a pose, and animation. The ab lowers itself down to the ground more slowly and dose not just drop down to the ground hard.

And then will get back up, not being lazy and for a better looking animation, I did not just run it backwards to get up. I used the opposite leg to move it and get back up.

Well what I did in SL was in the middle of the animation I set it so it would loop at half way through the animation, bring it was the point in which I was on the ground.

It was perfect. I would kneel down on the ground, and when I pressed stand up, it would release me from the kneeling loop, and I would smoothly get up from that position. It was beautifull.

I am hoping if I set the sit target for infront of the chair, and animate the AV from there to sit down into the chair as part of the animation, shouldn't he then stop looping and animate his way back to stand at his original standing point, if after the loop he animates to being back to the front of the chair???

-InuYasha.
Escort DeFarge
Together
Join date: 18 Nov 2004
Posts: 681
08-11-2007 07:55
What frustrates me is that the users are coming up with far more creative solutions than LL. My assessment of LL's competence as platform provider is reduced accordingly and along with that any empathy that I may have for their "pain" in creating this platform.
_____________________
http://slurl.com/secondlife/Together
InuYasha Meiji
Half Demon
Join date: 14 Mar 2005
Posts: 127
As you see I understand.
08-11-2007 13:58
I will tell you the resilts of my new animation on seats. The animation I told you about works great on a ground where you don't have a sit target per say. But when I created a small grass mat and used that same animation, it improves a little but still has weird effects. I am not sure if they are acceptable. I am hoping, I have never used a pole in the forum before so I will try. Let me explain.

With my new animation attached by sit target I hit the Stand up button on the SL screen near the bottom. My AV for just a second bounds up, like it was headed for the sky, but now stops and returns to the position it was in and slowly gets up from the sitting position perfectlt.

Bad: Still hops up for a second.
Good: Will return to prevoius position to get up calmly from its sitting position to stand up like a normal person would.

Since LL didn't allow us in Scripting to turn off the click Stand up, spring from chair result.
I want to know if my way is still better then that?

How hard would it really be for them to have added that to a status setting on a prim, so if you choose to sit on that prim, then you can stand with no shove to get up.

-InuYasha Meiji


PS, I can't seem to find where you add a poll question. Just let me know what you think, cause I could just make it click seat to get up. If you get up using the script then it works perfectly. It is the damn stand up button that messes it all up/
Qie Niangao
Coin-operated
Join date: 24 May 2006
Posts: 7,138
08-11-2007 17:30
Hmmm... I find it surprising that it didn't work just by virtue of the animation offsetting the avatar's apparent position from the sit target where the agent will land when unseated. My understanding of this whole problem has always been that it occurs when the sit target forces the agent's bounding box to collide with some non-phantom prim in the environment. By having the animation offset the avatar from the agent's location, I'd have expected you could control that, so that the sit target was comfortably away from the floor, the mat, etc. (I mean... the sim doesn't even *know* where the animation takes the avatar, does it?)

(Of course, with pre-existing animations, the other suggestions would be worth exploring further.)
InuYasha Meiji
Half Demon
Join date: 14 Mar 2005
Posts: 127
Apparently not.
08-12-2007 02:15
I don't think the sim has any idea where we are going. I made a chair and as usual sprung up when I hit stand up. I kept sitting and standing just to see if my landing point was always the same.

I generally did not always land at the same location. I even have some where the face or front was all clear and the back was behund my AV, but it still tried to take the hardest way out once I sprung up. You would think with the clear path being forward that it would go that direction. Damn thing jumped up, and tried to go over the back, and ended up continuing through the back wall.

Is anyone really surprised LL screwed this up?

Oh, I have a newbie question, pretty bad coming from me after two+ years of being here. It there any way I can just run an animation, and give it a place to run and a rotation, without a sit target? I know how to make a dance machine animate someone, could I tell it which way to face and where? If it is there, I might have missed it. It would just ask permissions first. The usual Yes/No box. But I almost would rather deal with that then deal with the stupid launching avatars. Be cause then I could just make the furniture get off the chair when clicked. and they wouldn't spring. I know it will not keep you sade from griefer attack. Just thinking about it and wanted to know if it were poible. Might help this problem we are working on.

=InuYasha Meiji
Jotheph Nemeth
Registered User
Join date: 9 Aug 2007
Posts: 142
08-12-2007 03:06
I don't think there's any way to rotate an avatar in code except by them sitting on something. Sit on the the seat and the seat can rotate, but no way to rotate the avatar itself.

I think there used to be a way but they removed the ability.

Possibly, just possibly, you could detect their position, and have the avatar do tiny animations such as a step to the left and a turn to the right (let's do the time warp again! sorry.) and repeat until they are in roughly the right position. But what a painful way to do it.
Chrysala Desideri
Scarlet Scriptrix
Join date: 4 Mar 2007
Posts: 65
odd unsit rotation problem
08-28-2007 14:31
I'm oddly enough having the opposite problem. on a warppos teleport i'm making, unsitting from the teleport "beam" phantom prim (or just having the beam die), i get rotated, completely messing up the nice rotation i had the beam set before dropping me and/or joining the choir invisible.

anyone know why that might happen? took me hours to understand that my rotations were being carried out fine and that this was happening afterward... once i'd put enough llSay debugs in to lag the script down a notch and see the play by play.

i mean WTF? most stuff i sit on does not rotate me, much less 180° upon unsit!
Boss Spectre
Registered User
Join date: 5 Sep 2005
Posts: 229
08-28-2007 20:07
In my experience making the Primsitter, I found that the main prpblems with avatars being trapped or ejected from sit positions comes when the sit target places the avatar inside the prims of the object. This is only required when the sit pose/anim uses a relative hips displacement which is above or forward, causing the "actual" position of the avatar to be inside or even below the object. You can see this actual position by turning off your sit script and sitting on the object, which will show using the standard sit pose at the actual sit target. The ejection that takes place is a collision "bounce" and so will not likely be completely deterministic.

The sit target is also where the bounding box of the avatar is located, so it can cause problems with physical vehicles when the avatar's feet are dragging out of the bottom.

If the avatar's actual sit pos is not in such a deep collision with the object's prims then the trapping or ejection does not occur once the avatar stands.


You can minimize this collision effect by either 1) If the pose is yout own creation, try redoing the pose anim so that the second frame's hip position is at or below / behind the first frame, creating less of a "shown above actual pos" situation, or 2) in the case of a static pose where you cannot edit the original anim, you could create a simple anim pose which moves the hips down or backwards with priority 4, and then alter your sit script to play this as well as your sit pose. (You might also have to change the rotation to overcome the hips displacement anim from overriding the pose's hip rotation) Then the avatar will not need to be embedded so deeply in order to be seen as in contact with the seat, and standing can be much more smooth. I have found that the BVH import code converts the coordinate of an anim from inches to meters, which will help you to gauge how great of an adjustment to make in coordinates. The maximum displacement that any animation can use is 5 meters.
InuYasha Meiji
Half Demon
Join date: 14 Mar 2005
Posts: 127
Making a wound even deeper.
08-30-2007 04:57
So, now supposedly if we don't sink avs into the chair at all it works better. the problem I see there is that I see a problem with not being able to tell who will sit in a chair and with what attachment that might still pierce the chair. Like a sword or something. So, that is still not a good idea to try to move the sit position to hover a user a little above the seat prim.

Sorry if I sound grumpy in this message, but SL has been acting up a lot lately. Search went down again, a sim I have been hired to work on still has 460 prims left, but got a server full error, not able to make it my home for a short time while I work, because LL changed the permissions you need to make a spot home. and on and on... Going INSANE.

oh, and I seem to have a totally different problem if I make the chair phantom and try to get up from it. I end up standing in the middle of the chair.

We got to convince LL to add a stand on target scripting function.

-InuYasha Meiji
Tiarnalalon Sismondi
Registered User
Join date: 1 Jun 2006
Posts: 402
08-30-2007 07:39
Based on the other threads regarding sit targets and animations, I came up with an idea. I can't test this out since I'm not home to make an animation and such...but...

If the hitbox for the AV stays where the sit target is, no matter where the animation is, then why couldn't someone set the sit target to be where they want the AV to stand up at, and adjust the animation to compensate? I know for those that cannot animate, this is out of the question unless they hire someone...but still..
InuYasha Meiji
Half Demon
Join date: 14 Mar 2005
Posts: 127
Not sure why, but I didn't get it to work.
09-17-2007 01:55
I tried that before at one time and I set the sit target for infront of the chair. The av goes to the front, the sit target, IO animated a turn to face ass to the chair and look over the shoulder to the right and sit down using one arm on the arm of the chair and lowering ass into the chair.

Even made a loop so the animation would just stick in the center and not get to the end. But when I hit the button I still spung up straight up from his ass position to end up standing in the chair.

We simply must request and vote on a new llStand target or over ride stand up button switch in the lsl.

Inu.
Valradica Vanek
Registered User
Join date: 1 Aug 2006
Posts: 78
Sculpties cause problems
10-17-2007 08:00
Ok, I had a vehicle with a sculpty seat and was having all kinds of launch problems. It usually worked the first time on and off the seat but if I got off then back on it would get progressively worse until somtimes I would be thrown into another sim!

I worked on if for hours, and part of the difficulty is that I had to make the part physical cuz its a vehicle.

After reading this thread all the way through, I changed the seat to a regular prim and Voila! - no ejections - amazing. Apparently the sculpties interfere with the Unsit in an unhealty way. Anyway - my problems are solved, but the seat is not a pretty as it was (/shrug)

for those of you doing vehicles, Have experimetented with getting off vehicles extensively and have come to the conclusion that there is only one way to gracefully exit the vehicle seat and then turn the vehicle non physical . I think I tried all permutations and landed here.

llSetStatus (STATUS_PHYSICS , FALSE);
llReleaseControls();
llSetVehicleType(VEHICLE_TYPE_NONE);
llSetStatus (STATUS_PHANTOM, TRUE);

The first three must be done in this order, or your results are spurious.
By turning the vehicle to phantom, it minimizes even the small kick I get from a seat. Since my "vehicle" is really a pose ball of sorts, it is not too weird.

I also messed with making the sit target so that none of the avatar inteferes with the seated object. You must understand that the avatar bounding box is what interferes with the prim and this is independent of the animation. By this I mean, you can create an animation that is completely outside the bounding box of the avatar. (This could be a really cool warfare tool, where your avatar appears to be 1 meter outside the actual target they have to hit to kill you. )
Moving the avatar animation outside the bounding box works really well, if you are creating your own animations, simply keep the avatar bounding box (llGetBoundingBox()) from possibly touching the product it self and make the animation move to the proper location for sitting. Then when you "get up" there is no ejection.