I thought what I would do today is show you a little of how to make a fountain with my programmable fountain kit. So, first things first, just what is a programmable fountain?
Well, you’ve probably seen a few in the real world. Fountains where each jet of water can be controlled to squirt water to different heights and turn on and off on demand. They can make some really pretty displays, both in the real and virtual worlds. In fact I find these things mesmerising. I can spend ages tinkering with the programs for them and watching them play out.
And now, so can you. Now, if you already have one of my fountain kits in second life you probably have the type which uses two different scripts one for each jet of water and one to control them. If on the other hand you have bought one of these kits recently, or if you are in InWorldz you will have my newer version, which uses just one script for the whole fountain. Either way most of the instructions are the same for both types.
The ever present disclaimer
I can’t teach you to build. If you want to make a fountain you will need to already be a sufficiently accomplished builder to create the design of the fountain and build it in world. Now you can make a fountain without a great deal of skill as a builder, as you can make the moving water jets the real feature of it. I have made completely invisible fountains before, for example to line either side of a pathway. But as a minimum you will need to be able to know how to rez prims, to understand prim rotation settings and know how to link prims into a linkset.
Ok what will you need to make your fountain, well each jet of water comes from a single prim and you will need an additional prim, which is not a water jet, to be the root prim of the fountain and contain the controller script. That is always my standard advice, here’s why. The script works by looking through each prim in the finished object to find the ones which will be a water jet. It knows which ones they are because you will give them a set name which it looks for. Now each prim in a linkset can have its own name, and most of the time no one will even see that. But the name of the root prim is the name the whole object will have. So, if you want to call your finished fountain something memorable you will need to have the root prim free to take the name. Of course, if you are making them for yourself, or for a custom installation in a sim or something of that nature, you may not care what the object ends up called, so long as it works. If that is you, the ignore my advice to have an extra prim for the root. On the other hand if you plan on making these into objects to sell, you would be best advised to use the root prim to name the whole design. As each jet must have its own prim very large displays can quickly use up a lot of your prim allowance.
Just where do you think you are squirting that ?
Each water jet is ‘fired’ from the top of a prim which is at 0 rotation. Now, the rotation of the prim matters, you can rotate a jet prim around its Z axis freely, but if you rotate in the X or Y the jet of water will still fire along the Z axis, but now the Z axis wont be pointing up anymore. This will matter most if you plan to use sculpted prims to be the source of your water jets, as the point on the sculpt where you want the water to appear to be coming from may not be on the Z axis. If this is the case in your build you can still use the sculpt, but you will need to hide another prim inside it, to be the real water jet.
So let me skip over a lot of work on your side by saying simply ‘Build your fountain design in prims, but do not link it yet’. Once you have all the prims laid out in the pattern for your build edit each one which will be the source of a water jet and change its name to “Fountain”, without the quotation marks, but do make sure the F is a big F. The picture here shows you how it should look.
The next task is linking them together, but wait a moment and lets talk about linking and link numbers. When you want to link several prims together, you start by selecting one prim, then holding shift, clicking on each of the other prims in turn and finally choosing the link command. What you may not know is that each prim in a link set has a link number. The root prim is always link number 1 and the numbers go up until the highest number is the same as the number of prims in the set. Even if you did know that, you may not know why any particular prim gets the link number it ends up with in the finished build. The answer to that is simple, link numbers are assigned in reverse order to how you selected them before you linked them. So the first prim you selected will get the highest link number and the last prim you selected gets link number 1, the root.
By now I’m sure you’re saying “Well that’s all very interesting, but why does it matter?”
Here’s why. Each water jet in your fountain will be numbered, and those numbers will be used to program the fountain. So, imagine you wanted a row of 6 water jets and you want each one to fire in turn up and then down the line, or maybe you want all the odd jets to fire and then all the even numbered ones. This is much easier to make work if the jets are numbered in order, rather than in a random pattern and the order they are numbered in, is the same order they appear in the link numbers.
This may sound complicated, but it really isn’t just remember to make sure you select each fountain jet prim in a sensible order and all will be well.
In the diagram you can see 6 prims, each one is a sculpted bottle and each one is labelled here with a letter and a number. The letters show you the order the prims were selected in, from A to F and the numbers show the numbers which will be assigned to the jets.
OK, so how far have we got. We’ve built the prims and linked them sensibly, now we just need to add the scripts and a program for the fountain to follow and we are almost done.
If you are using the old version of the scripts, drop a fountain particle generator script into each prim the will be a water jet.
Whichever version you are using its time to put the controller script in to the fountain you will also want to drop at least one fountain program in the same prim and the water splash sound effect too.
At this point the scripts are going to start nagging you about permissions. You will need to turn off either transfer or copy permission from the scripts before you can continue (I’d suggest having the same set of permissions for all of the scripts or things are going to get confusing)
Once the permissions are changed the fountain will read the notecard program and start to play. Thats it, you are done. I will tackle the subject of the programs another day, but for now you will find instructions in the kit on how they work and you can take a look at the sample. If you would like more sample notecards, just ask I usually have a few on me.