Be sure to make a copy of your configuration file before making changes.
Configuration Notecards
There are several notecard that use the title of the notecard for configuration information
FLOOR_NUMBER
"FLOOR_NUMBER n" associates the floor with it's controller object. If you only use a single floor then leave this as "FLOOR_NUMBER 1".
If you rez another floor, you can leave the floor number the same and have a single controller object work with both of them.
But you can change the number to "FLOOR_NUMBER 2" and rez a separate controller for it.
Just remember to change the second controller's notecard to "FLOOR_NUMBER 2" as well.
SHUTDOWN_TEXTURE
"SHUTDOWN_TEXTURE texture_name" is the texture the floor shows when it is "Shutdown". You might want to use your sim logo for this.
SHUTDOWN_ROTATION
"SHUTDOWN_ROTATION nnn" Where nnn is the rotation of the Shutdown image in degrees..
CONFIG
"CONFIG your_config_file" has all of the details for the textures used in the floor. You can name it anything you want as long as it starts with "CONFIG ".
This is the only notecard that has configuration information inside it.
I recommend you use version numbers as you make changes to this notecard's contents.
The CONFIG___ Notecard
Most of the Configuration is inside the notecard starting with "CONFIG".
You can add any name after that if you want to experiment or have different settings for different themes.
The two configurations supplied are: "CONFIG Default" and "CONFIG Goth".
These configuration notecards and all the texture they reference are in folders in the package.
And, there are also two floor objects configured with each of these.
If you mess things up while experimenting, you can completely reload the floor scripts, configuration and textures from those folders.
Setting a default color palette
Edit the "CONFIG notecard. The first keyword should be:
BASE_COLOR_PALETTE DEFAULT
The default set of colors used for the base layer can be set from the control menu,
but if you find you have a preferred color palette, you set it here choosing from: DEFAULT | COOL | WARM | GOTH
Making it Square
Edit the CONFIG notecard..
About 10 lines down you will see:
# Set to "1" for a square dance floor
SQUARE_DANCE_FLOOR 0
Just change the zero to a one and save the notecard. The floor will reset and it will change to square.
Now you can reposition it as needed.
But one thing you will notice is that the corners of the square have portions of those circular textures going by.
This is probably not what you want. There are two ways to fix this.
Resize the textures and make them larger so they expand beyond the sides of the square, but fill the corners.
This usually means making textures about 25% larger. There are two ways to do this.
Have the script make all the textures larger by the same amount
Change the Scaling specification for each individual texture. This lets you fine tune each texture.
Replace the built-in textures with your own that are designed to be rotated inside a square.
Resizing all the texture at once.
Editing the "CONFIG notecard again.
AUTO_ENLARGE_SQUARE 1.0
Change the line to AUTO_ENLARGE_SQUARE 0.75
"0.75" seems to work well, but you can experiment with other values.
The textures should now fill the corners of a square dance floor. This control has no effect for round floor.
Resizing individual textures
One size does not always fit all, so you can change the size of individual textures
You do this in the Texture Definitions described below
Resizing the Floor
To resize the floor:
Select "Resize Start: from the control panel menu
The floor layers will be made thicker to allow for making it smaller if you want to.
Edit the floor object and press and hold Ctrl-Shift. Two white markers will appear at each corner
You are going to resize the floor as a whole. so click and drag one of the 'top' white markers to make the floor the size you want.
Finish by selecting "Resize End", which will shrink the size of the layers.
You may have to reposition the floor
Customizing the Textures
"These textures are nice, but I'd like to use some of my own...". Here's how to specify and test our own textures.
You will also want to read the information on How to test your custom textures below.
Here are the considerations I used for picking textures...
The Middle layer textures are on top of a solid color base that slowly changes color. Most middle textures should
have some parts that are totally transparent, but also have some degree of over all transparency so the color of the base can affect it.
The middle layers are intended to be fully seen and so can be wild and colorful designs.
Top Layer Textures seem to work best when mostly opaque with totally transparent areas that allow the middle to show through.
Middle Layer Texture definitions
KEYWORD
ID
SPEED
Hscale
Vscale
ROT
Alpha
Texture name or UUID (no spaces)
Optional Name
MIDDLE
10
SMF
1.0
1.0
1.0
1.0
M-Blue-Star
I made the middle texture ID's 2 digits and top texture IDs 3 digits just to easily tell them apart.
Texture ID '10' is special, otherwise you can make the ID anything you want. It's just a reference for you.
The Texture with ID: 10 is assumed to be a Transparent Texture that allows the solid color base texture to interact
directly with the top texture.
The script does a few things differently if it knows this texture is transparent.
SPEED is a combination of S, M and/or F indicating which overall speed to use this texture with.
S - only use for SLow system speed.
MF - only use for Medium and Fast system speeds.
SF - only use for Slow and Fast system speeds
SMF - for for all speeds
"HScale" and "Vscale" let you make the texture larger or smaller. Less than one will make the texture larger.
You specify the Horizontal and Vertical scale parameters for the texture. (Usually both will be the same).
"Rotate" indicates if you want the texture to rotate, so Rotate is normally "1.0".
Zero will not rotate the image. (However I never found a reason not to want rotation for middle textures).
But this is actually a multiplier, so "2.0" will double the rotation speed. Useful if you always run the floor on "Slow".
And, 0.25 will rotate at 1/4 the normal speed. Useful for slowing down one texture when running the floor on fast.
If you want to speed up all the build-in "Speeds", just change all of these to be 1.20 for a 20% overall increase.
"Alpha" Allows you to add overall transparency to any texture definition (instead of doing it in an image editor).
Alpha is actually how opaque the image is, so a value of 1.0 is no transparency (other than what is part of the texture).
(Yes, this is the opposite of the "Transparency" control in the object editor's texture panel).
Values of 0.7 to 0.9 usually work well.
You can use the UUID (or Key) of a texture, or its name if the texture will be in the contents of the object. (It is a lot easier to use texture names)
Interaction between Floor Speed and "Rotate"
The floor speeds of : Slow, Medium, Fast1, control how quickly the texture changes occur and the rotation speeds.
"Fast2" is a special case where the top texture is much slower compared to the middle texture. This creates a feeling of movement without
the top surface going crazy fast.
But there may be cases where you want to specifically speed up or slow down a texture for a good appearance.
By experimenting with different rotation rates for the middle and top textures, you can get a variety of effects.
KEYWORD
ID
Hscale
Vscale
ROT
Alpha
Texture name or UUID
Comment
MIDDLE
10
1.0
1.0
1
1.0
8dcd4a48-2d37-4909-9f78-f7a9eb4ef903
Transparent Texture - must have ID=10
MIDDLE
13
0.94
0.94
1
1.0
M Spectrum pie
"0.94" enlarges it a bit
MIDDLE
15
1.0
1.0
0.8
1.0
M Confused
Blothcy with lots of colors
MIDDLE
29
1.0
1.0
1.4
0.9
7360bfdd-e887-f474-accd-bbe4305b4305
Made 10% transparent
Top Layer Textures
Top layer textures will usually be mostly opaque with some totally transparent areas that allow the middle to show through.
The Top Layer definitions have some additional information -- a string of 2 digit numbers. These are the ID's of the Middle Textures that look good
with that top texture. Figuring this out is where the Texture Test Tool is useful.
You can also use the word "ALL" as a shortcut for "works with any middle texture"
NOTE! The first texture in the list is assumed to look good and work with all middle textures. (This is necessary so the script will always be able
to find a match for the randomly chosen texture pairs). Any middle texture IDs on this first line are not considered.
I made the middle texture ID's 2 digits and top texture IDs 3 digits just to easily tell them apart.
KEYWORD
ID
SPEED
H Scale
V Scale
ROT
Alpha
Name or UUID
Works With
Comment
TOP
101
SMF
1.0
1.0
1.0
1.0
T-gallifreyan
(This first Top texture is assumed to work with all middle textures)
TOP
106
SMF
1.0
1.0
1.0
1.0
T-Fancy-Green
14~16~22
T Sun-eclipse
TOP
110
MF
1.0
1.0
1.0
1.0
DotsOnSpokes
10~11~12~13~14~15~16~17 ~18~19~20~21~22~24~26
How to test your custom textures
I've included tool (dE Motion Dance Floor Texture Test), to allow you to preview how middle and top textures will look together.
Just rez the tool and copy your CONFIG notecard, (and textures) into the object's contents
Once it resets, touch the dance floor and a menu will appear allowing you to step through each combination of middle and top textures.
Start by selecting "Next Top", and then select "Next Middle" over and over.
There is also a button to skip to the next top texture.
This tool compares ALL top and middle textures defined in the notecard.
This is so you can then choose the ones that work well together to specify in the Top Texture definitions.
Live Texture Debug
If the floor is running and you see a texture combination you don't like,
just touch the control box for more than half a second and the current Top and Middle Texture IDs will be shown.
But note that if a transition is in progress, the touch will not be seen until after it finishes,
so the IDs may be for the next combination, not the ones you were interested in.
This function works best when the floor is running slow.
You can then edit the CONFIG notecard and exclude that texture combination.
The Alpha Sorting Problem
There is a well know issue, (in SL and other games), where a user's graphics card can get confused about which surface
should be shown in front of another when there is some degree of transparency. This has to do with the distance an object is from the camera.
The graphics card assumes that if the center of an object is closer, it should be shown in front.
This works OK with windows, curtains and other more vertical surfaces, but the layers in this floor are flat on the ground and so their centers,
(when viewed from the side), can be very close together.
I've tweaked things as much as I can to try and reduce the occurrence, but it still sometimes happens.
When this does occur, it resolves on the next texture change or when the user changes their camera position.
As a result I've ended up with the layers being farther apart than I wanted, resulting in a thicker floor
You can easily see this by creating a block on the edge of the floor closest to you and making it partially transparent.
When you move the block away from you and cross the center of the floor, you will see the block disappear.
You can also play with your camera height and see the effect with the block.
This will also can affect avatar hair that is partially transparent.
So if you want to photograph someone on the floor, make sure they are on the half of the floor closest to you, and that your camera angle is
not elevated.
Since it seems to be unavoidable, I've tried to pick textures for the middle layer that don't look too bad if they end up on top for a few seconds.
This is something to consider if you want to add your own textures.
Permissions: Copy, Modify, Transfer, but the Next Owner permissions must be changed to No Modify before distributing.