Get ready to get wet

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.

To Work!

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.


The End User Experience

I did something this morning that I very rarely do: I used Linden Labs own viewer to connect to second life.

As soon as I looked around, I screamed to myself and instantly started scurrying around the menus for the secret settings that bring the appearance of second life up to what I think of as acceptable levels. The first thing I do is find my RenderVolumeLOD setting and wind it up to about 4.0. This control determines the level of detail used to draw the meshes of everything you see in SL. The higher it is, the greater the detail drawn. Let me show you what I mean. These next two images are from screenshots of the same cylinder prim. Here it is rendered with a setting of 1.0

that isn’t a circle, its a hexagon. Now with a setting of 4.0

and now we can see its a circular post. It will also help you un-deform those sculpts made without thought to the impact of LOD. You can argue that the creators of those sculpts should have taken more account of LOD, but that wont stop low LOD tolerant sculpts from looking ugly to you. So, if your computer can cope, I suggest you increase the setting and enjoy a prettier second life.

But this experience got me thinking about the differences between each users experience of second life and how the things I create appear to others.

Secondlife, and its siblings, do not need a super high performance top of the line gamers computer in order for you to connect and have fun. Far from it, I can even connect from my little netbook, and there are even non-graphic viewers for people with seriously low spec systems or who want to connect from smartphones.

But, given the huge range of possible computer specs, operating systems and graphics cards in use, how can we as creators control the appearance of our creations to the end user?

Simple: we can’t.

All we can ever do is try and bear in mind the limitiations some people will be working under, we can set our graphics options down low, relog and take a close look at what we have done. Then its a choice, where do we draw the line, at what level do we just shrug our shoulders and say “sorry, if you want it to look better, you will have to adjust your settings” ?

…what ? you were expecting me to answer that ?

I’m not sure I can. I’m just going to encourage you to think about this as you create. Often as I’m creating a new sculpt and making sure it doesn’t degrade too much as the LOD drops I find myself bemoaning the lost vertex points that I could have done something useful with, or as I tweak a script to try and keep the particle counts low I sigh as some of the beauty is lost along with the lower count, but I’d rather have my work look at least acceptable to the standard viewer in its ‘out of the box’ state.

In world in Inworldz

I took a look at Inworldz as an alternative grid to Second Life at the beginning of the year, but I found it to be a little bit too laggy and too buggy at the time to really want a presence there.

But I’ve been back just lately and its much improved, the lag is no worse than SL and although there are still issues, for example some of my scripts still need to be tweaked a little to work there, it’s looking good.

There are also some very deliberate differences in the technology, which present interesting challenges in their own way. In Second Life sculpted prims are treated as slightly malformed spheres for purposes of collision detection. I’m used to that, by designing sculpts to have a slightly larger bounding box than their visible presence and which are designed to be very thin, it becomes simple to create sculpted walls or fences or bridges that act as barriers or can be walked upon with little issue. It’s not ideal but it works. You only start to become aware that the sculpts physical presence doesn’t match its visible presence when they are scaled up to be very large and you find the ‘corners’ that arent really there.

Inworldz however matches the sculpts physical presence to its visual appearance, not perfectly but it does a pretty good job of it. To the extent that my railings, when set to a realistic scale will stop me, but Sea, my friend with the Tiny Otter avatar can walk right between the bars. It also means that some of my sculpts, like the damaged versions of my boardwalks, with missing boards, become a hazard to walk across without falling through the gaps. Which is entertaining in its way.

There are other oddities too, the old trick of making steps from prims by using path cut to make a single cube (or other shape) into two steps works fine, so long as the prims are under 10m long, but once larger and attached to a linked build, they stop working as steps, the segment cut from the prim still being treated as being present for purposes of collisions.

At first the differences feel like bugs, but with a little time you realise they are no different to the dozens of quirks and oddities that you find in Second Life but which I at least have become so used to that I don’t question them.  I think operating in both worlds is going to make me much more sensitive to the oddities of both.

I’m still building my little store there right now, on a plot of land generously provided by Jeri Rahja. I’m having far too much fun with the build to hurry it into being a functional shop but Im sure I will be fully up and running in a few more days. My friends of course are here too, Sea stuck with Inworldz after Miriam and I both abandoned it earlier this year but now the three of us are back. If you visit our stores you can tell who we are…. just follow the sound of bickering to its source.

I’ll add a few pictures here as the build is readied.

its coming along nicely now, but expect it to change at any time

this one has a view over the board walk towards Miriam’s and Sea’s places

and a night time shot just because.

Of course my builds are using sculpts and textures created either by myself or my friends. Except one… see if you can spot it.

The Scroll Making Kit

This was a new direction for our sculpt sets, although we have on occaision included textures for use on sculpts this time we are trying to give you the tools you will need to make you own.

Texturing sculpts can often be tricky, every sculpt only has one ‘face’ even when the shape clearly has many sides, and making a texture that will cover each part of the sculpt without horrible distortion can be next to impossible without special software.

With the scroll kit we have tried to help this by including in the design a section of the sculpt which will texture as a flat square, well it will be ‘squarish’ depending on how the sculpt is sized, and a set of textures which can be downloaded and used in graphics applications to customise your creation.

Among these textures are some templates. These are just black squares on a transparent background. They are not intended to be used as actual textures but to show you where the flat areas of the sculpt are so you can easily add your own content without distortion.

Here’s a step by step guide:

Step 1. Download each of the textures from the pack. Just open each of the textures in the viewer, if you are using viewer 2 or later, click the save as button, if not choose “Save texture as” from the file menu.

Step 2.

Open your graphics package – We recommend GIMP – and load the textures as layers

Step 3.

Make the layers you don’t want invisible and you may need to change the order. Simple rule of thumb, the more full the image is, the further down the list it should appear.

Step 4.

Choose the template layer that matches the style of scroll you wish to create

Step 5.

Create a new layer (or more) for your content.

Step 6.

Create your content inside the area marked out by the template. You may need to pay attention to the orientation of the sculpt when creating your texture and rotate any content accordingly. In this example I’m going to put some text on to my scroll

Step 7.

Save your creation and try it on a sculpt. If your viewer supports temporary uploads or textures from disk, this can be a great way to try out your creation before paying the L$ fee to upload it.

Step 8.

Sit back and enjoy the glow that comes with making something new. Oh yes and show off to your friends.

Come in, come in.

This is the TiggerWorks, I’m Tigger, come in and be welcome.

Tigger is an avatar in the virtual world of Second Life, and TiggerWorks is my little project come store which gives me an excuse to be creative, when the mood strikes me, or lazy, when it doesn’t.

Lots of people are familiar with MMOs and online games but Second Life is different, in second life everything you see around you (well almost) is created by the residents. Of course few of the residents are professionals in the field of creating 3d worlds and the quality of what you see can vary wildly, from the crude – in every sense – to the breathtaking. The great thing is that anyone can have a go, try their hand at creating something straight from their imaginations and meet, collaborate and befriend other residents in the process.

Second life is whatever you chose to make it into and me, in my small way, I help others to create their worlds around them, supplying a few things to make the process of realising their flights of fancy a little bit easier. In the process it gives me a chance to play with 3d modelling, scripting, and graphics work, I’ve created a self guided airship for one, a tentacled beast from somewhere unpleasant, whimsical homes for hobbits and mad scientists and all manner of odds and ends and nicknacks. Now doesn’t that sound nice ? And speaking of sounding nice I need to go and tune the chimes on a steam powered clock.

So who are you? what brought you here? How did you find me? Did you expect to be quizzed when you got here? Can you spare some change for a cup of coffee…..?