Flying Island?
|
Jessica Qin
Wo & Shade, Importers
Join date: 16 Feb 2005
Posts: 161
|
05-23-2005 07:48
So last night someone brought up the concept of a flying island, and I was intrigued. Not just a floating island -- but one that can move around up there in the sky, cross sim borders, etc.
Has this been done? Has this been done well?
I know about the 31 prim limit on physical vehicles, and I know that there are schemes for non-physical movement for larger objects, as well. What I'm wondering is this: how do you make a floating island that AVs can stand / walk around on while it's moving (and not fall off)? I really hate the entire "everybody right-click/sit before I go" thing. Would moving sloooowly work well enough? I foresee spending some time experimenting in the sandbox, but if anyone has any wisdom they'd care to share, I'd appreciate it.
TIA,
Jess
|
Synergy Belvedere
Prim Reaper
Join date: 7 Jul 2004
Posts: 253
|
05-23-2005 09:01
If you can link the whole island together, simple script commands (llSetPos()) will work just fine. If you have more than one linked object, you'd have to use two move scripts (or more for more link groups) to move all the objects together in tandom.
So you're seeing here that the island couldn't be too big for one.
As far as movement, without the avitars sitting, they'll either fly off the island if it moves too fast, or if it moves slowly you'll see them doing the walk in place thing. This cannot be changed as it's simply the way that SL deals with objects colliding into avitars. A moving floor that you stand on is considered a type of collision.
Nifty idea, but would be tough to implement and make it feel natural.
_____________________
---------------------------------------------------------- --The mind's eye is limited only by its focus--
|
Jeffrey Gomez
Cubed™
Join date: 11 Jun 2004
Posts: 3,522
|
05-23-2005 13:36
I used to have one that functioned with llSetPos. The problems are the same that affect vehicles - every so often you cross a sim border, the thing blows up... and you're back to square one. My guess is wait for monocode or easier sim crossing first, unless you desperately want to discover these bugs yourself. 
_____________________
---
|
Keknehv Psaltery
Hacker
Join date: 11 Apr 2005
Posts: 1,185
|
05-23-2005 13:38
Hmmm... I have an idea. What if it was one big physical object, and people would attach an object to their avatar to get it to work? The object would listen for certain messages, and would be able to apply force and such upon the avatar in order to follow the motion path of the island. Thus, you could have a full 31-prim object with no sitting that would allow people to stand on it.
|
jester Knox
Sculpter of Water
Join date: 22 Apr 2004
Posts: 204
|
05-23-2005 13:43
when the new continent opened up i saw someone fly past on an island. it was divided into slices and each slice moved independently, while trying to stay together, similar to the zeppelin that someone (i forget who) occasionally flew in the sandboxes. so its possible
jester
.
|
Keknehv Psaltery
Hacker
Join date: 11 Apr 2005
Posts: 1,185
|
05-23-2005 13:46
Seriously, I think the entire thing could be coordinated with listens and such... Commands that would tell the included object how far and quickly to move, so that everything would move in conjunction.
|
Logan Bauer
Inept Adept
Join date: 13 Jun 2004
Posts: 2,237
|
Hmm
05-23-2005 20:52
I think (and correct me if I'm wrong), while you can manage to stand and walk around when an island or any large object is moving VERY slowly, once you try to cross a sim border, if you aren't sitting, you'll fall through as the island is re-rezzed into the next sim. With my airship people can walk around when it's going slow, but I don't recommend this because people easily fall through at a sim border, even when going, well, as slow as I dared go.
So, yah, a sensor would have keep track of who is close enough and "riding" and then re-position the av "passengers" at sim borders, at least.
|
Jessica Qin
Wo & Shade, Importers
Join date: 16 Feb 2005
Posts: 161
|
05-24-2005 11:03
Thanks everyone (esp Logan for running experiments with me last night)(BTW, your airship is seriously cool).
It sounds like a tough problem, but I'm not giving up just yet. If nothing else, re the sim crossing problem, if the island moved extremely slowly (and really, it's not like it's supposed to be rapid transit), you could sound a klaxon and alert everyone; maybe use sensors to pick up where everyone is and materialize 'stasis chambers' for everyone (ala what the crew of the C57D had when they decelerated in Altair space in Forbidden Planet).
Logan and I were also discussing the possibility of actively tracking all passengers and applying complementary forces or maybe rezzing invisible prims to keep everyone's AV steady during regular movement. Kinda far out, but an interesting concept.
From the experiments last night one thing seems clear, and that's that the island -- I'm talking an as-yet theoretical one where an AV doesn't have to sit when the island moves -- can't be a physics-enabled vehicle: the interaction between the AV and the deck is seriously annoying, even at low speeds. Still to be answered: how does an AV interact with misc kinds of slow-moving non-physical objects?
Jess
|
Zindorf Yossarian
Master of Disaster
Join date: 9 Mar 2004
Posts: 160
|
05-24-2005 13:35
Non-physical objects cannot move smoothly, so your AV will not really interact with them during movement. They move instantaneously from point A to point B.
Suppose that you had a house on the island, and someone was standing one meter north of it. If the island moved two meters north, the person would be inside the house. If it moved one meter north, the person would be inside the wall, and would be popped out.
If the avatars did not walk along with the island's movement, they would eventually fall off of the back of it. A push script may solve this problem by pushing everyone forward enough that they move with the island. But I can't see any truly graceful solution.
_____________________
Badass Ninja Penguin: Killing stuff it doesn't like since sometime in May 2004.
|
Keknehv Psaltery
Hacker
Join date: 11 Apr 2005
Posts: 1,185
|
05-24-2005 13:51
Yes, I thought of that idea of complementary movement. If you push something in the same direction as the object is going, wouldn't it follow correctly? Admittedly, one must account for mass and such, but it would be possible.
|
Jessica Qin
Wo & Shade, Importers
Join date: 16 Feb 2005
Posts: 161
|
05-25-2005 06:03
If anyone's interested: I did some experiments yesterday with some somewhat interesting results. I built a non-physical 'trolley' that moved in a simple back-and-forth / up-and-down pattern and then attempted to ride it. It seems like, upon placement, non-physical objects don't interact with an AV until the AV collides with the object. And each time the np object moves, that counts as another 'placement'. In practice, walking around seems to work pretty well for dealing with altitude changes -- but for whatever reason, if you walk too hard into a wall, you'll tend to walk through the wall and exit ignomiously on the other side. Obviously, the value of slash-h in SL is pretty darned high  I tried building a couple of varieties of 'thumper' attachments to continuously trigger collisions -- one, which spat out a series of physical temp-on-rez cubes, worked pretty well for altitude changes, you could stand still on the floor and move up and down with it -- but they still didn't keep my AV from walking through walls. Actually, I would have been content to have been merely pushed by walls -- erecting temporary low walls to hold people in place during movement, say, would have been an interesting scheme. I also played a bit with using llPushObject() to try to keep my AV synched up with the motion of the platform, and while my efforts were crude and unsubtle, there might well be some possibilities there. Does anyone offhand have a good value for the average 'mass' of an AV? Jess
|
Keknehv Psaltery
Hacker
Join date: 11 Apr 2005
Posts: 1,185
|
05-25-2005 11:27
You probably know that most events will return values like llDetectedKey() and such, correct?
There is one that is perfect for your purposes--llDetectedMass(), which will give you the mass of detected objects. As far as I know, it works with the sensor event, but it may well work with others as well.
|
Jessica Qin
Wo & Shade, Importers
Join date: 16 Feb 2005
Posts: 161
|
05-26-2005 06:20
From: Keknehv Psaltery You probably know that most events will return values like llDetectedKey() and such, correct?
There is one that is perfect for your purposes--llDetectedMass(), which will give you the mass of detected objects. As far as I know, it works with the sensor event, but it may well work with others as well. No kidding? This one's not documented on the Wiki so far as I can tell, but I'll give it a shot. <flip><flip><flip> I see there's also a llGetObjectMass() that takes a key, that plus llDetectedKey() would work in a pinch, as well. Thanks! Jess
|
Keknehv Psaltery
Hacker
Join date: 11 Apr 2005
Posts: 1,185
|
05-26-2005 11:37
|