|
|
|
I think this is fixed.
I had a hack in the avatar controller where I was actually setting the avatar "keyframed" (much like typical static content in SL) to get it to actually stop when standing on a slope – otherwise it would slowly creep down the hill, even for very shallow slopes. I was finally able to get the avatar to stop on a hill without using the keyframe hack, so I pulled it out --> scripted pushes should now move the avatar when it has "stopped". Verified fixed in current Second Life Server 1.18.2.71480 beta
Hmm, maybe spoke too soon.
There is one minor issue, a little less likely to occur than before. 1) Place the following script into a prim timer() { llSetColor(<1.0, 0.0, 0.0>, ALL_SIDES); llStopMoveToTarget(); }} That's one issue. Related 1) Follow the previous repro, while standing on slopped ground I've fixed this in the internal repository; it should be in the next update to the Havok4 preview.
The problem was that when LSL actions (hover, moveto, buoyancy, etc) were created/deleted the code was only trying to wake up the objects that owned the scripts, in this case attachments which were not in the physics engine. I had to add logic to detect and walk up to the avatars to which they were attached and activate its RigidBody. There was some oddities in how Havok4 would sometimes not wake up the body even though we had tried to set it active, but I already had some hackery for getting around that problem, so I invoked it in more places (around the avatar) and that seemed to solve that weirdness. Changed status to "Fixed" – I'm going through the Issue Tracker and updating issues that've been publicly fixed! I made a new bug report about this issue before I realized I could reopen a closed report. As indicated on SVC-1994, I am encountering this issue with a swim attachment I made. llSetForce is not affecting the avatar while hovering, but does work if the avatar is moving when the force is applied.
Incidentally, note that llSetForce does work if the force is large (like 20 or so) but isn't working if the force is smaller (for my swim I was slow movement, with a force of 9.) Perhaps the reason you thought this bug was fixed was that you were only paying attention to large forces? I was performing some tests with my (now no longer working) flight assist and i have some extra detail about it.
Seems, any avatar with flight controls disabled (and processed by a script instead) are 'damped' down to no movement. Applying forces to an avatar while it's damped means it moves very little or none at all. It seems the threshold to 'breaking out' of this lock is to make the avatar move the next physics loop of around 20meters/second I had to use llSetForce(400,FALSE) just to do this! My script 'ramps up' the force it applies over time, to simulate acceleration but the new havok means i sit still while the forces ramp up until i break out of the lock. Then i'm suddenly (VERY suddenly) accelerating to about 45 meters per second until i slow down. physics behave normally again while i'm moving but if at any point my speed falls below about 20m/Second, the damper kicks back in and I can't move again until i really amp-up the force again. Strangely enough, this damper works on UN-assisted flight. I can use my assist to go up to 2km, well over the flight limit and then stop. If I then take off my assist, i will NOT fall! This damper seems to override even gravity! If i use my movement controls, I will return to normal, losing altitude even if i try to go up, but the moment I stop using the controls, i stop falling! I would expect to fall to the flight limit and then hover there. I know it's a damper of some sort because while my flight assist is ramping up the force, my avatar will make subtle movements in the desired direction, and then stop again. On sims with high lag, it takes even longer to break out of the damper which allows my flight assist to continue ramping up the force, but a constant force of 350 or so over a long enough period of time will break your avatar free and allow you to fly again.
I could be wrong, but I'm afraid this isn't fixed. I recently encountered a situation where a small low-mass object was suffering these effects, like a buildup of friction. The object was to bob up and down 0.05m in either direction, slowly, so as to simulate a hover. I used almost the exact same script as a fully working object I had that was larger, and covered more distance, and the script worked in this small object too, for a matter of seconds. After a few bobs, without losing energy (it stays at a constant 1.0) the object simply stops moving altogether. It does not move at all unless somehow interacted with, such as a collision, a left click, a right click, or even a camera shift (which is very odd) and then it resumes bobbing for a few more seconds, only to stop bobbing again. I have llOwnerSay in the at_target event to notify me of when it reaches its "up" and "down" positions, "click" and "clack" respectively, and those activate when I interact with the object or walk around with my avatar shifting the camera (not colliding with the object). It doesn't do it in bursts either, as though it were "catching up". It just starts for a few seconds, and stops again.
(quote of my problem as described elsewhere) Further comment – Andrew, if you would like I can provide you with the scripts I'm using for replication.
I'd like to make note that, strangely, even right-clicking objects around the immobile physical object triggers it to bob a few times before stopping again. Something isn't right here. Btw,the physical object is using llMoveToTarget to effect the bobbing motion.
So is this bug still on the todo list to fix? I really hope that after Torley closed the bug in December this issue didn't fall off the radar, because it definitely is not fixed. I mean, Andrew was quite helpful when the bug was first reported, but no Linden has been here since I reopened the issue.
Same offer as Brandon, if you need me to send you a copy of my swim attachment then let me know. It seems that physics calls work on standing avs now, but if an an avatar comes to rest while flying it's still immobilized.
Adding to Zrephel's comment, physics calls are working now on an avatar touching the ground, but not one hovering in midair. The subtle difference from what Zrephel reported is that the av doesn't need to be standing; in the testing I just did, an av that was flying but sunk to the ground will work. Hopefully that bit of knowledge will help to track down this bug.
Specifically, the testing I just did was to try to use my swim attachment. It works with avs in flying mode in order to float them to the surface of the water. I found that physics calls worked fine when swimming on the ground (ie. the flying character is sliding on the ground) but still don't work right when swimming in water (ie. hovering above ground at water level.) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SVC-734, notSVC-760