Jump to content

Setting an Object's position to below land-height?


SirCloudy
 Share

You are about to reply to a thread that has been inactive for 3460 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Hi,

I'm currently developing a little project and part of which involves a ball following the owner. This ball follows the owner until it is clicked on, then its position offset (relative to the owner) will move it below the ground. This bit works, however when the owner offset is changed to a value which should make the object follow the owner below the ground, it doesn't work.

Now, I've set the object to phantom, yet it still seems to collide with the land. Is there any way of turning land collisions off, so the object can pass both under and above land height like it is... phantom-ing through other prims?

I've noticed llSetRegionPos() defaults below land Z values to 0, but even llSetPos() has the same behaviour.

Thanks in advance.

Link to comment
Share on other sites

Land collisions can be effectively turned off with llVolumeDetect. In a physical object, using this function will cause physical objects to fall through the ground. Unless some measure of control is used, such as llSetBuoyancy and/or llSetPhysicsMaterial and playing with some of the parameters, you risk losing the object as it can fall completely out of the world.

I'm not sure if what you want to do is possible without a lot of kludgy hacks. But I'm interested in how this project works out.

Link to comment
Share on other sites

Changing a position with llSetPos or llSetRegionPos is no movement. You only change a number in the objects data field. Physics is not involved here. You can "move" through and inside of other objects. Phantom is meaninless here, it works with and without that setting.

There are some limits:

You can only use it if physics is OFF.
If you go on another parcel or sim - object entry has to be allowed
If you go over 4096m - DELETED.
If you go over the sim border and there is no sim - not possible with llSetRegionPos - with llSetPos - RETURNED (don't depend on that)
If you go over the sim border and there is another sim - not possible with llSetRegionPos - with llSetPos - works
If you go under the ground - not possible

So you cant move it under the ground level because that violates one of the laws of SL:  "There shall be no object under the ground" :D

 

Link to comment
Share on other sites

If you simply intend to make the follower less obvious at times, you can do that most easily by making it transparent.  If you're really set on hiding the follower by moving it somewhere, move it inside the avatar that it's following.  Shrink it at the same time.  Nobody will know that it's there.  As Nova says, the one thing you can't do is make it follow you underground.

Link to comment
Share on other sites

No idea if this helps with the current application, but just in case: Although the position of the root prim's origin can't be set below ground level, there can be child prims well below that. Hence one could make a child prim be the visible follower, and the object's invisible root prim some meters above.

Link to comment
Share on other sites

I've solved the issue now. Thanks everyone who replied, the help is appreciated. :D

An FYI for anyone whoever digs up this thead on Google with the same problem:

By using a child prim attached to the root prim X meters below itself, I hid the root prim by shrinking it as small as possible, changing the alpha to 0 then moving it inside the owner.
All this while the child prim is below ground and visible creating a 'pseudo-below-ground-object'.

 

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 3460 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...