Build your own Valentines Day tour bird

Here is a complete set of scripts and sculpts to make a Valentines Day Tour
bird for two lovers! It can be made with as few as 8 prims. It
is easy to teach routes to, and you can expand it to chat to your visitors,
and even play sounds at different waypoints. Its ideal for use with
my chat to speech software.

To start, you will need to upload each of these sculpts and the head texture:

Head Sculpt

Neck Sculpt

Wing Sculpt

Bottom Sculpt

You also need this head texture:

Go ahead and upload each item to Second Life. Be sure you check the box
for 'Use Lossless Compression".

Create a new box, and change the type to Sculpted.

Once you have select type Sculpted, left click and drag the texture and drop it
onto the Sculpt Texture area.

Repeat for all 4 sculpts. You will end up with 4 prims of
different shapes. Once you have them all loaded onto a prim,
click the "Inside-out button" for those that are well, inside out.. and then
resize them to make the shape seen in the image below. Then
drag the texture for the head onto the head.

The image to the left is the original bottom. After a resize it appears as
shown on the right side.

You will need one more prim. Make a cube and stretch it across to make
a seat.

Now is a good time to add two spheres for pose balls. I know people
don't like pose balls, and prefer they are hidden. But the user needs a
clue to sit, so add two spheres.

Now shift-copy the wing, and select the "Mirror" button. Rotate
the wing into place.

Now you can color the bird white by selecting 'blank' texture, and color the
two pose balls to blue and pink:

Now sweep over all the prims until they are all selected. Click
the seat on and off and on again so that it is the last prim selected, and then
press Ctrl-L to link them all together

If you do this properly, the seat have a yellow outline in edit mode:

Now we are ready to add the scripts. There is a script for the pair of pose
balls, and a script for the seat. You can add more seats and pose balls
if you like. There is also a set of scripts to rez a bird, and to train it
for a route.

All the scripts are available at the Free LSL
Script Library # 1579.. I recommend that you download them there,
as HTML has issues with copy and paste. Click the link and then click download
on each script.

PoseBall Script:

Put this inside each pose ball. It will control the avatars camera to
give them a nice view, play the sit animation, and it tells the main
script someone is sitting.

Tip: edit the pose balls individually, and set them to the
mode so that when clicked, you sit on them. Your guests can
then just left-click the pose ball and they will sit. No groping and
fumbling until after the ride begins!

If you don't like the default sit pose, change the line #41 where it says

llStartAnimation

("sit")

and add your own animation to the pose ball. You will probably
have to adjust the TARGET and ROT vectors to sit properly. I usually
just edit the pose ball and turn it in the correct direction, and raise or lower
it slightly. Once you have the pose ball script running, sit on each
one and rotate and position them so you sit correctly.

Add this script to the seat, or root prim. Be sure you compile it in
MONO mode. If you don't check the mono switch, you can easily run
out of RAM on a long route. Compiling in MONO goves you an extra 48K bytes
of RAM to hold the route information.

The seats X axis must face forward. Don'tt worry about that now. After
your get it booted up, you will be able to rotate the seat to fix this.

You will use the Waypoint prim #10 to establish a path of waypoints for the bird to follow.
To start with, rez a prim ad name it '10', or any other number without the
double quotes, at a spot at the beginning of the ride.

Mark the prim as 'Phantom'. The bird will pass through the
#10 prim on its route.

Put the following script
in it. Take a copy of that prim back into inventory.

Left-click and drag
from inventory the '10' prim at a spot nearby, in the direction you want the bird to travel.
Do not use shift-copy! The prim you shift copy will be in reverse
order, as the original #10 moves, and leaves behind a copy. So just click and drag
out a new one each time you need another
waypoint.

Each prim will rename itself to the largest number found +10,
about 5 seconds after it rezzes. Since you started with prim #10, the second
prim will rename itself as #20, the next will be 30, and so on.

The bird has some special commands that it can use to chat with your riders. To get it to
chat to your visitors, go to your '10' prims and change the description ( not the
name) of #10 to "Beginning" and change prim #20 to "End".
Or pick any other saying, such as "welcome" and "goodbye". You can also
add text mentioning your store or sights to see. This text will be chatted
at the prim BEFORE the the one you store the text in.

You can also have it play a sound.Sounds will be played when the
bird spots the new destination. This is always one prim before you set the
sound file. There are several ways to do
this:

1) The simplest is to add a sound file to the seat. For
my example, I am assuming the text to be chatted is "Look at the nifty thing I
made", and your sound is named 'LookatMySkybox', without all the
double quotes. Now change the description of the The #30 prim to Look at the nifty thing
I made|LookatMySkybox. Separate the two with a pipe,
| and add the sound name. This only works when the sound file is
also inside the seat. The sound will play when it reaches prim #20, not
#30.

2) If your sound file has full permissions/rights, you can just copy the sound UUID from
inventory and paste it in after the pipe '|'.

3) In either case, there must be some of text there or the sound will not
play. If you want
a sound to play, and no text to be chatted, use a space, as in '(space)|SoundOrUUIDtoPlay

Recording the notecard

Once you have at least two prims in place, you can set up a test ride
for the bird. My advice is not to rush off and place hundreds of prims.
Try two, okay? Or maybe 4 in a square so you can see how fast
the bird will turn and plan your turns accordingly. If you built it
like mine, it will also be fat and wide to hold two big-assed avatars.
You need room to turn, too.

Drop this script into another spare prim, and touch it. It will interrogate all the #10 prims and give you a list of coordinates that you can copy and paste from chat.

Paste the chat into the notecards and save it. You can change
anything up to the first pipe "|" symbol. A comment for things like
Start and end is a good thing to do. I like to work on small route
sections. Marking the start and end points in the note card lets me
add routes and subtract them later as the sim changes.

You should see hovertext above the seat counting upwards to 100%. Once it
is finished, please take can take a copy of the bird into inventory.
This is the one you will rez for your guests. And if you goofed, (
as I did many times), and the bird runs off the Never Never land and you lose it, you will
have a copy. Trust me, Just try it at 1,000 meters in the air, and
stop all scripts in a physical, phantom object, and watch it fall thru the
floor, then watch it fall down down down as you desperately try to camera back,
and sweep grab it before you lose an hour or a days work. Its
happens. A lot.

Now all you have to do it to right click and sit on either pose ball, and in 10 seconds, the bird will travel to prim #10, then prim #20
and so on.

Once the bird reaches the end of the tour, it will disappear in one minute. You guests can hop off at any time, and it will wait a minute for them to hop back on before it poofs.

Adjusting the route

If you need to add a waypoint between two already issued boxes, do it
manually. Drag out a new copy of prim box #10, edit the box after it rezzes, and change the name to be a
number that is between the other two box numbers. For example, if you need to add a box between number 100 and 110, make it any
number from 101 to 109. Click the recorder
box and paste the new chat into a notecard. Make sure it works by taking
another wild ride. You can change the #10 prims all you want.

The bird is designed to skim along and go over ground very closely.
A #10 prims that is 0.5 meters square is perfect if they fit flat on the ground.
But the bird will not penetrate the ground or solid objects. If you
get stuck because a prim is too low, move the prim up slightly, click the
recorder, and remkae the notecard. The bird will not penetrate solid
objects, either. It will attempt to go through them for 30 seconds. After
30 seconds it switches to non-physical, jerky motion, and moves through the
object. It will also do that if it cannot reach the next #10 prim in
30 seconds. The cure for the latter is simple, add another prim
halfway between the others.

This pic shows a few things that can help:

Finishing and Cleaning Up

Once you are certain that this route, is done, you can clean up
all the #10 prims by typing '/300 die". It helps to shout it.
It hekops to fly around everywhere and shout it, or you will find them days
later, like I did. 100 meter shout distances is not that far.

So how do they get a bird ride?

You need a 'Tour bird rezzer'

Add this script to a prim to make a 'Tour bird rezzer'. Put this
script into any prim, and also add a copy of your tour bird. It keeps track of the number of tours given, and rezzes a new bird after one leaves the area.

Click it to get it started. If you click it, it will chat to you the number of tours given, and it will run a scan to see if a bird is nearby. If no bird is found, it rezzes a new one
in ten seconds.

Flies at an angle: You will need to rotate the seat so that the X axis of just the seat points forward.
If the bird drags you off at a weird angle, ( which is great fun for you and
whoever is watching, but somewhat impractical), then stop the scripts, edit it, turn
off PHYSICAL so it does not fall thru the ground/floor or whatever, ( you've
been warned lol) and
rotate the seat to point in the right direction. Then start the scripts again and
set it back to a physical object. It will zoom off to the beginning, so
ride it back home. It its still off ( it will be), stop the scripts, watch
yourself fall to the bottom of the lake, have a good laugh, promise to turn off
Physical next time, and rotate the seat again. Repeat until you have seen
all the lake bottoms in your area, and be sure to fall on some visitors
while you are at it, until your get the bird facing forward, upright, and off
the bottom of the nearest lake.

I ran out of memory with a stack-heap error! Okay, don;t panic. You did
flip on the mono switch when you saved it?

It takes off and heads for <0,0,0>, the SW corner of the sim.
It has something wrong in the notecard. A blank line will will do that. So
will typing in an extra comma or an extra period when you hand-edit it.
Its never ever happened to me....no more than once or twice each edit, anyway.

It rotates like craze at the end. If it acts crazy, but only at the end of the tour, edit the notecard and remove
the blank space at the end of it. There should not be a blank line
at the end. This little piece of advice cost me a week to figure out. But
you got a better script for that, as I rewrote most of it trying to figure that
part out.

It says there are two boxes named .... The recorder will complain if there are two boxes with the same name.
Track the errant box number down, and rename it to fit between two other boxes.
This can happen if you rez them too quickly.

I feel sick after riding it Up and down is fun! Make your bird climb a wall and go over a
roof. Place #10 prims at the intersection of the wall and floor,
wall and ceiling, and bottom gulleys in of roofs, and it will happily go straight up and
down. You can go around a spiral staircase if you place prims in short
runs.

I put out 150 prims and its missing some of my route. Don't put out too many prims at one time. Recorder prims with
more than 64 waypoints can miss messages ( the SL listen queue length is only
64) and you can end up with duplicate prim numbers. Make smaller routes
and copy and paste them into one notecard.