HistoryThis horse was originally made by Gregg Legendary of Discovery Grid. Gregg asked me to bring it to life in OpenSim just for his grid. But he is allowing me to export it to other grids after an introductory period. It was originally all made out of sculpts, the only thing available back when. The sculpts were converted to mesh and cleaned up a little, but still have too many vertexes in my humble opinion! I have completely re-designed the legs in mesh (twice so far) using Gregg's sculpts as a guide. I also re-did the neck and mane, one day I may get around to making efficient mesh for all the parts! I took Gregg's saddle and bridal and did extensive work under the hood to combine them into fewer prims and materials. Originally I did a bareback version of the horse because dealing with the tack was a bit daunting. I've found ways to combine parts so they animate nicely and now a horse wearing Western Tack is available with saddle, bridal and reins. A dialog allows removing the saddle and bridal individually. Parts of the saddle and bridal change texture and color when you click on them. The reins are two prims you wear, one on each hand, that connect to the horse using “ribbon particles”. A combination of bridal without saddle, a single rein, a small parcel and “unsit.go” mode allows you to lunge your horse.
About these HorsesJump on one of these horses and ride around your land. Note this is a non-physical animal so it can only walk on terrain, it cannot walk on prims. It will walk right through walls and landscaping. But non-physical vehicles work DESPITE BulletSim, Havok, ODE, ubODE, PhysX or any other physics engine. This horse will work anywhere in the Open Simulator Metaverse. It can walk into water a meter deep or so but turns back from deeper water. Very sure-footed, it can climb up and down the steepest terrain like a mountain goat.
The horse has four walking and four galloping speeds, changed by tapping the FWD and BACK keys. When turning at speed the horse leans into turns. While galloping the horse can jump. The legs are realistically animated, changing gait and speed with the velocity over the ground. While you are riding the horse there are several different ways to steer it: You can relax and the horse will walk in straight lines, turning away from water or borders. You can turn the horse with the LEFT and RIGHT arrow keys. Tapping on these will make the horse turn slightly, mashing them down and holding them will turn the horse sharply. If you go into mouse-look mode you steer the horse by moving your mouse left and right. If you are wearing VR goggles such as the Oculus Rift the horse will turn in the direction that you turn your head!
When the horse is standing around it fidgets, stamping feet, grazing on the ground, swishing tail, turning head and flicking ears. This horse is a bit moody, occasionally hanging its head or laying back its ears. You can improve its mood by giving iit a lump of sugar in the dialog, the ears will perk back up! This horse also loves to ride so the ears will prick back up if you jump on.
The horse can be quickly configured with a dialog, remotely configured with the Remote Control provided, or configured with a NC (MODify version only). The horse can be set to a mode where anyone can ride it, or only the owner. If in the latter mode, when anyone else sits on the horse they get bucked off!
You can set this horse to do one of several things when you jump off: It can just stop where it is, or keep going, wandering around your land and turning away from borders and deep water. It can be configured to delete itself so you can set it up in a rezzer. But I prefer “back to the barn” mode where the horse turns and walks back to the barn when you jump off. If you let it wander and you loose track of where it is, clicking on the back of the remote will call he horse to gallop back to you. With the Remote you can also give your horse a name in floating text over the head in any color. There are a dozen other parameters that can be set with the Remote Control.
You can set up the horse so it stays in a parcel, which is an easy way to create a corral. Put a fence along the parcel border for more realism! But while riding the horse you can jump over a parcel border with the PAGE_UP key, so you can jump that fence! You can set up the horse to stay inside the current region, which works on regular regions or var regions. In other modes, the horse can cross SIM borders, if your server is OpenSim 0.9 or better. You can give the horse a list of safe SIMs and it will cross borders only into any of those. The rider will not be able force the horse to cross a region border unless it is on the list. Finally there is a mode where the horse trusts the rider to know what is safe and it will try to cross any border.
How to Ride Your Horse:
Steering Your Horse:
Wearing the Reins (Western Horse only):
The reins are implemented as “ribbon particles” that flow between the horse and two Rein End prims that you wear on your hands. Like any wearable item, you will probably have to adjust the position of the Rein Ends to fit your avatar's hands. They are MODifyable so you can change their size to fit your avatar. The reins were designed to look as if the leather strap goes under your fingers, over your thumb, and folds back under your hand. You will have to do this adjustment while sitting on the horse when your hands are in the fist position. A perfect fit is difficult, just get them close.
When you put on the Rein Ends, they search for the closest horse (within 10 meters) and automatically connect to that horse. If a nearby horse is set so anyone can ride, then your reins will connect to it. If a horse is set to private mode, that horse will only connect to reins when the owner is wearing them. The process of connecting to a horse takes a second or more, so be patient. If after a few seconds you are not connected, move a little closer and click on the Rein Ends to try again.
If your reins connect to the wrong horse, click on the Rein Ends once to turn them off,
move closer to the horse you want and click on the Rein Ends to ask them to try again.
To disconnect the reins from a horse, you can just take off the ends, or click on them in place.
The Rein End prims are near-full-perm so you can give copies to your friends so they can ride your horse.
Configuring Your Horse (owner only):There are four ways to configure your horse: Clicking on parts to change textures. Quick changes in place with a dialog. Parameter changes with a Remote Control, and if you have the MODIFYable version of the horse you can set the default parameter values with an NC in the horse's inventory.
Clicking to Change Textures (Western Horse only):The saddle and bridal have parts that change texture when the owner clicks on them. The bridal has two textures: A leather and a rope bridal. Right-click on the bridal and hit setup in the pie-menu to change back and forth. The saddle has 4 different colors for the blanket pad. Right-click-setup on the blanket to cycle between them. The saddle also has a half dozen different designs for the conchos (the four medallions on the corners). Right-click-setup on any of the conchos to cycle to a different design. When you are sitting on the horse, you can change any of these textures with a single left-click and skip the pie-menu setup.
Quick Changes with the Dialog:
Right click on your horse and select Setup to bring up the dialog with buttons that change the behavior of your horse. While sitting on it, a left-click on the horse brings up the dialog immediately. Only the owner of the horse can get the dialog, if other people try to bring it up, they are given a copy of the help NC instead. Once you have used the dialog to set up your horse, you can save that horse to inventory and that copy will remember the options you set. (Unless they are over-ridden by a remote or a parameter NC, more on this later). More options can be set with the Remote Control or a parameter NC described below. Most buttons in the dialog have several modes, clicking the button cycles to the next mode. The meaning of each button is listed below:
Removing the Saddle and BridalThe dialog has two buttons for removing the saddle and the bridal separately. (You might want to leave the bridal on to lunge your horse). When the saddle is off, this horse cannot be ridden bareback. Perhaps in a future version, I will add the extra animations and code to switc between modes with the saddle. For now the bareback horse is a separate version.
Corralling Your Horse:Create a parcel on your land that is the size and shape of your corral. Put a horse in the corral. Using the dialog (or the remote or the .params file) set the horse to UNSIT.GO and PARCEL modes. Jump on the horse and start it moving at the speed you want it to wander, then jump off. It will keep going and turn back at the edges of the corral. Note: This horse is an escape artist and will occasionally get out of the corral and wander off somewhere. This happens more often if it is moving faster, so keep the speed down in the corral. If it wanders off and gets lost, see Calling Your Horse below.
Lunging your Horse (Western Horse only):Lunging your horse means giving it some exercise by making it run in a circle around you at the end of a line. You can set this up by doing the following things: Create a square parcel, 40 meters on a side works for me. Ride your horse into the parcel and change the horse to PARCEL mode. (See the documentation for the dialog below). Set your horse in UNSIT.GO mode. Wear just one of the Rein Ends prims and make sure it has connected to the horse. Get the horse up to a gallop with the FWD_ARROW key, then jump off. The horse should keep going but turn away from the parcel edges and settle down into a circle inside the parcel. The single rein will stretch out to connect you to the horse, even when you are standing in the middle of this little parcel. You are lunging your horse!
Using the Remote Control:Your horse comes with a Remote Control that can be used to set your horse up different ways. All the modes in the dialog can be set with the remote, plus a bunch more. The way this works is you set parameters in a .params file inside the remote. You save the .params file when you are ready, then click on the front of the remote to send the parameters to your horse. The horse has to be within 10 meters of the remote to hear it, and if you have several horses nearby they will all get the parameters. So it is best to do this when you are alone with one horse. Once you have changed any of the parameters like this, you can save that horse to inventory and it will remember them whenever that copy is rezzed.
The remote control can also be used to call your horse to you when it runs off without you. And the remote can be used to check some of the parameters in other people's horses to see if they are set fairly. Below I'll show you a few of the most common uses of the remote, then give an exhaustive list of all the parameters.
Giving your Horse a Name:You can give your horse a name, which puts floating text above the horses head, by doing the following: Wear the remote, edit the .params file in the remote's inventory, and add the following two lines to it:
nametex=Your Name Here; namecol=<1,0.5,0.5>; //the color you want the name to beMake sure you SAVE THE NC, stand close to your horse, then click on the top face of the remote (the face with all the buttons). This will send the name to the horse. To get rid of floating text name, use nametex=;
Changing Your Position on the Horse:Wear your Remote control and edit the .params NC inside it. Put in two lines that look like this:
sitpos=<0.5,0.05,0.6>; //the sit position of the avatar on the horse sitrot=<0,0,0>; //the rotation of the avatar in degreesREMEMBER TO SAVE THE NC, then click on the top face of the Remote to send the parameters to your horse. (The top face is the side with all the buttons on it). This is how you can set the horse up for different sized avatars. The MODIFYable version of the horse can be scaled to any size, so it could be used by tinies, and a new sitpos will definitely be needed. The sitpos vector sets the distance in X Y and Z from the center of the horse's torso. Increase the first number (X) by a small amount to move the avatar forward. Increase the last value (Z) by a small amount to move the avatar up. The sitrot vector rotates the avatar in degrees around the X Y and Z axes. The third number is rotation around Z and will turn the avatar left or right. If you are sitting on the horse at the time you click the remote, the avatar will move, showing you instantly if you have picked the right numbers.
Allowing Your Horse to Roam Several Regions:The horse has a list of “safe SIMs” that it knows it can move safely into. In “SAFE SIMS” mode, the horse will only cross borders into a SIM that is on the list. If the SIM is on the list, the horse will cross into it with or without a rider. The rider will not be able to force the horse to cross into any SIMs that are not on the list. You can add to this list using the .params NC. You specify safe sims by their global co-ordinates in vector format. How do you find out what the co-ordinates are for each SIM you want to list? The Remote will tell you! Just wear the remote on your left hand and fly into each region. It will IM you the numbers in local chat. You can cut the vectors out of there and paste them into the NC in the remote. SAVE THE NC then click on the front of the remote (the side with all the buttons). The NC comes with a sample list of SIMs. You should use that as an example but delete those and replace them with your own.
Below is an example .params NC that starts a new safe SIMs list and adds 6 SIMs to it.
safe=reset; //start the list of safe SIMs over new safe=<1004,998,0>; //help yourself remember which is which with safe=<1004,999,0>; //comments like this on each line. safe=<1004,997,0>; safe=<1003,997,0>; safe=<1003,998,0>; safe=<1003,999,0>;
Details of All the Horse Parameters:You can use the Remote Control that came with your horse to set many different parameters. Inside the remote there is a .params file with parameters to send to the horse. You edit this NC, REMEMBER TO SAVE THE NC, then click on the top face of the Remote to send the parameters to your horse. (The top face is the side with all the buttons on it). The horse must be closer than 10 meters to hear the remote, and if you rezzed several horses that are all closer than 10 meters they will all get the same parameters. You will know if the horse got the parameters because it will echo them to you in chat. Once you have set the parameters the way you like, save the horse into inventory. That copy of the horse will remember the settings from then on, every time it is rezzed.
If you have the Modifiable version of the horse, you can put this same .params NC inside the inventory of the horse. There it will automatically be read every time you change it and every time the horse rezzes. Values set in the .params NC in the horse inventory will over-ride values that have been saved. So if you want to be able to save horses with different values set by the dialog, you must not change those values in the .params NC.The content of the .params NC looks a little like an LSL program, but it can only accept a few variable names in assignment statements. Blank lines and lines that start with // are comments and ignored. Semicolons are optional. Most lines look like “name=value;” The variable names that you can set in the NC are:
safe=reset; //reset (delete) the list of safe SIMs and start a new one. safe=<1000,1000,0>; //the co-ordinates of a SIM known to be safe to cross into sitpos=<0.5,0.05,0.6>; //the sit position of the avatar on the horse sitrot=<0,0,0>; //the rotation of the avatar in degrees zheight=1.5; //offset to raise horse above terrain (change in small increments) unsit=unsit.stop; //can be unsit.stop, unsit.go, unsit.barn or unsit.die camtype=dyn cam; //can be dyn cam or free cam ride=free ride; //can be free ride or private spdfac=1.5; //increase this to make horse move faster nametex=; //name to display in floating text above horse's head namecol=<1,0.5,0.5>; //color for floating text maxhealth=100; //maximum health (damage points to kill, War Horse only) dietime=60; //how long (seconds) to stay dead when killed projectile=20.0; //how fast a physical projectile must go to do damage CameraPitch = 10.0; //the dynamic camera parameters are CameraDistance = 1.0; //documented in the LSL Wiki at CameraBehindnessAngle = 0.0; //http://wiki.secondlife.com/wiki/LlSetCameraParams CameraBehindnessLag = 0.6; CameraLag = 0.3; CameraFocusLag = 0.05; CameraFocusOffset = <0,0,0.4>; CameraFocusThreshold = 0.3; CameraPositionLag = 0.3; CameraPositionTreshold = 0.0;
Calling Your Horse to You:Your horse has an autonomous mode to roam around your land without you. (Just step off of it while riding in UNSIT.GO mode). Especially in var regions, your horse could wander of and be hard to find. You can call your horse to you by wearing the Remote Control and clicking on the back face (opposite side from the buttons). Wherever the horse is in the region it will immediately turn and gallop towards you. It will cross water, climb mountains, walk through walls until it nudges its nose up to you. It would even cross SIM borders, except the remote cannot be heard across a region border. The horse will then stand and fidget, waiting for you. If you have rezzed several horses anywhere in the same region, they will ALL hear the remote and come galloping.
Judge Test Nearby Horses:With the remote, the owner of a horse can change its maximum speed. In a War Horse you can change how much damage it takes to kill the horse. This might be used for cheating in a race or a battle, so there is a way to find out what all the horses in an area are set to. Wear your Remote Control and press its bottom face, below the buttons. (If I add enough features like this one day, all those buttons will be needed!) When you push the bottom face of your remote, all the horses within 10 meters will respond in chat with their spdfac (speed factor). This defaults to 1.5000 which gives horses a maximum speed of 24 meters per second. 3.0 would be 48 meters per second, difficult to control! A War Horse will also report the following values:
maxhealth: How many damage points it takes to kill with a Magic Bullet weapon.
projectile: How fast a physical projectile must move to kill a horse.
dietime: How many seconds the horse stays dead before waking up again.
Modify Versions of the Horse:The horse can be bought in a version hat has MODIFY permissions. Actually there are 4 modify versions: A bareback version and the Western version, and both of those in a War Horse version. With this horse you can change the size, color and texture maps. You can set default parameters in the NC in the horse's inventory. If you change the size of the horse (so a tiny can ride it, for example) then you will want to perminently change the sitpos and zheight with the NC.
These versions come with all the full-perm texture maps for all the different parts of the horse. What you get are the monochrome textures for the gray mare because you can colorize them to many different horse types. You can colorize them with the texture tab of the build dialog in-world, the darker gray areas will keep the shading and detail. However, this colorizes all the parts of the texture at once. For example, changing to brown will change the horse to chestnut, but also make the hooves turn brown. So it would be better to upload the leg textures, colorize the leg and hoof different colors, and download them again. The gray textures are FULL PERM to allow you to do this.
Note that there are a total of 48 legs on this horse! For each leg you see there are two prims: one for walking and the second for galloping. Each of these prims has 6 faces (or materials) each for 6 different positions in a gait. (Yes, if I had this to do all over again I think I would do it with fewer!) The fidget animations had an annoying habit of changing the color back while I was trying to change leg color with the build dialog. To solve this, I used the color of one leg on all the rest: change the color of face 1 on the right front leg and eventually all the rest of the legs will change to that color. You will have to walk and gallop the horse and exersize all 48 legs! Or you can proceed to change the rest of the legs after that one without them changing to the wrong color. I regret doing it this way because now I cannot change each leg to a different color! If you need to do that, let me know and I will make a version that does it in a better way. With newly downloaded textures you probably want the color to stay white so your texture colors shine through unchanged. The easiest way to change all the textures is to do this once in each of the 8 leg prims with "select face" turned off. There are also 3 sets of ears, (each one a different face of the head) don't forget to change the color/texture on all three!
The ears, head, body and tail were once sculpts, so they have rectangular texture maps and may be difficult to work with. The mane, neck and legs are true mesh with UV maps. With these you could paint the horseshoes, hoof and leg different colors. Full perm UV maps for these mesh parts are provided to help you do this.
On the Western Horses you also get a sample texture map and a UV template for the bridal so you can make your own custom look for this. The appearence of the reins is based on a small texture map in two invisible prims on either side of the bridal. They stop moving when not in use, so they may be easier to find when the reins are in opperation. There is a texture map named LeatherRibbon in these two prims. Look at how they are laid out and replace it with one of your own. It must have exactly the same name, LeatherRibbon to work correctly.The saddle blanket and conchos are simple textures, just look at them on any horse to see how to make new ones. You can add your own textures to the bridal and saddle inventory to add new color and design options to the ones already there. The names of these touch-to-change textures start with numbers that correspond to the face number of each part. Re-name your textures to start with the corresponding number so the scripts can find them. With the modifyable version, you could also replace the sounds that the horse makes when it is walking, galloping, or fidgeting. Best to rename your sounds to have the same names as the ones you find there. You could change the sitting animations to new ones (for example change them to side saddle animations). The names of these are not as important, but when sorted in alphabetical order, the first one is used for staring straight ahead, the second one for looking and turning left, the third one for right. If you don't have 3 animations, you could store one in inventory 3 times and that will work. It is possible to remove the saddle prims and replace it with your own saddle, for example an English saddle or a side saddle.
War Horse Version:The horse comes in a war horse version that can be damaged with Magic Bullet weapons. It will also take damage from physical prims that are moving fast enough. Only the body of the horse can take damage, the head and limbs are phantom to decrease the load on the server. A heavy weapon like a cannon can kill a horse in one shot. It takes two or more shots with a rifle to kill the horse, four or more shots with a pistol. If the horse is wounded but does not die, it is still very upset! It will buck off a rider and may gallop away (if set to UNSIT.GO mode). It will slowly heal and recover its health over time. The health, 0 to 100, is displayed in the dialog for the owner to see. When the horse is fatally wounded, it falls down bleeding, tossing its head and kicking its legs before dying. After a minute, it revives, stands up and goes into the unsit mode you set. (It may stand where it is, gallop away, return to the barn, or delete itself). If it hangs around it is still very weak until it has had time to heal. Until then its health will be low and it will be more susceptible to damage.
Lag Issues:These horses were originally made out of sculpts, which have a HUGE number of vertexes. They were converted to mesh but many of the parts still have all the sculpt vertexes. (I have converted the legs, neck and mane into low poly mesh). But on SL these horses would get a HUGE Land Impact score because of all the vertexes. Most OpenSim grids, like Kitely, only count the total number of prims, not vertexes, so these horses will get a low Land Impact score. But they still have a huge number of vertexes, and you should be kind to your grid servers by not rezzing a large number of horses. The recreational horse is non-physical and phantom, so it causes little physics lag on the server. The war horse is non-physical also, but has a non-phantom body for detecting hits. When this moves, it causes some work for the physics engine that has to keep track of it for physical objects to collide with. This is the same load on the physics engine as a well designed vehicle. Tests with Top Scripts show the horse using less than 2 seconds of the CPU every 30 seconds while walking. This suggests that you can have up to 15 horses running at once in one region before they use up all the available CPU time. You should keep the number of moving horses below this to allow other scripts to get some time. When a horse is standing about fidgeting, it uses very little script resources. You can have a larger number of horses standing around fidgeting with very little script lag on the server.