SimpleSit

From CasperTech Wiki
Jump to: navigation, search


SimpleSit Introduction

Hey, and thanks for your interest in Simple Sit by CasperTech! SimpleSit allows you to add multiple sit poses to your regular furniture with ease.

Please note: This is only the system to use animations in items. There are no animations included in the shipping package - you have to provide your own animations.

Features

  • Create and sell furniture with perfect sit poses.
  • Seat up to 50 avatars
  • In case the script gets reset, positions are restored from a backup on the web server (up to 50 seats total, up to 6 per position!)
  • Each seat can have its own set of animations, each animation with its own sit offset
  • The user can choose an animation from the menu
  • The user can swap seats
  • There's no notecards to configure
  • Only one script (really low lag!)
  • Allows you to set the camera position easily (no silly prim adjustments needed!)
  • Allows individual users to adjust their position for perfect sitting
  • Remembers the last 100 users' changes

Setting Up Your SimpleSit

Video Tutorials


Basic setup tutorial
Advanced tutorial

Setting Up Your SimpleSit


  1. Rez your furniture item.
  2. Drop a copy of the CasperTech SimpleSit script into the root prim of the furniture item.
  3. Rez as many SimpleSit Positioner balls as you need - 1 per (planned) seated avatar.
If you're planning your furniture item to seat up to 3 avatars, you need 3 positioners. If your furniture item will only seat 1 avatar, then you only need 1 positioner.
  4. The positioner(s) turn yellow when rezzed and will show in hovertext:
   Associated to OBJECTNAME (UUID of object)
  5. Insert up to 6 animations in each positioner, max name length of 24 characters (11 if unicode.)
  6. As each animation is dropped in, you will get the following message - this is normal!
  SimpleSit Positioner: Inventory changed! You must configure the positions again!
  7. Sit on the positioner, select the animation you wish to work with first, and move the ball so that the animation is in the proper position.
  8. Click the positioner ball and select "ANIM" to move to the next animation
  9. Positioner will automatically change to the next - you don't get an option to choose which one.
10. Move the ball to the proper position for the next animation
11. Repeat for each additional animation in the positioner
12. If you have additional positioners, repeat the process for each of those as well.
13. Once you are done setting up animation positions, click any positioner, and select SAVE! from the popup menu.
14. The balls will turn green, and you'll get a series of messages in local chat
15. WAIT for the message indicating that the furniture is all set before deleting positioners!
16. You should see ALL three messages when everything is successful:
  ((Object name)): Now backing up positions in case of reset or data loss...
  ((Object name)): Positions have been saved and backed up.
  ((Object name)): All done. Ready to rock! ((# of seats)) positions saved.

Associated to wrong item?


The script called "CasperTech SimpleSit" must go in the object FIRST, only then you can rez positioner(s).

If you don't follow this order, the positioners will associate to the wrong item, or not associate at all.

Do not attempt to set up multiple pieces of furniture at the same time. Work with only ONE furniture item, start to finish, before working on any other. If you don't, the script may associate to the wrong item.

Don't shift-drag a copy of your furniture item after you've loaded the SimpleSit script in it. Part of the SimpleSit setup includes adding a UUID to the description field that tells the website what to use and in what order. It's best to rez a new copy from inventory to work on the next piece.

Positioners will also tend to associate to the wrong item - or no item at all - when you rez them out before putting the SimpleSit script in your furniture.

About the Ball Colors


The positioner balls associate to a piece of furniture by (1) the SimpleSit script contained within it and (2) the UUID of the furniture item.

Yellow: Positioner is associated with a furniture item (and indicates the UUID in the hovertext)
Red: Positioner is NOT associated - either the furniture is lacking the SimpleSit script, or the furniture was picked up and re-rezzed.

If lacking the SimpleSit script, you'll need to rerez the positioners once the SimpleSit script is added to the furniture.

Green: Positions are in the process of saving. WAIT for the message in local chat giving the all-clear before deleting!

Optional Features

Camera Position


1. Follow steps 1-9 above
2. Click the positioner ball
3. Select Camera from the popup menu
4. Move your SL Viewer point of view to the proper position for the animation
5. Click Save Cam
6. You will get an additional popup that indicates the camera position will be sent to the object when you save.
7. Repeat for each additional positioner.

Sequential Seat Order


This controls the SEAT order, not the order of animations within each seat. If you are going to number the seats, do NOT leave any as "0" in the description field, or the sit configuration will be broken.

1. Choose a positioner ball corresponding to the seat you want to be used first
2. Change the description field of the positioner - type in "1" and hit enter
3. Go to the next seat's positioner and replace the description field with the number "2"
4. Repeat for each additional positioner.

If you do not want to present the seats in any particular order, simply leave all the description fields as their default of "0".

Prim Primer Script


This script flushes out old sit script information that the prim might still have in its memory.

The way SimpleSit functions, it doesn't matter whether you use the Prim Primer script before or after the animations are set - it won't disturb SimpleSit's settings. If you're paranoid, use it before you begin setting up your furniture.

Limitations

No Couples, Sex Beds or Other Synced Furniture


Each individual must change their animations themselves.

Animation Names Limitation


Please do NOT name any of your animations the same name as any of the Second Life client's default internal animations.

The animation will still work, HOWEVER, what you'll actually get will be a blend of both your animation and the default animation.

No Long Animation Names


The more characters in the name of the animation, the more script space it will take up, and the fewer animations you can use before the script crashes.

Animation names should not be any longer than 24 characters, NON-unicode.

Under normal circumstances, a menu button should show up to 11-12 regular alphanumeric characters. If you are using Unicode, it may only show up to 6.

No More Than Six Animations Per Seat


SimpleSit is not designed to hold more than six (6) animations per positioner/seat. (If you choose to add more, you do so at your own risk.

Script Goes In Root Prim


SimpleSit MUST be in the root prim, or the script will self-delete!

Errors

Broken Animations


1. Delete the animations from the furniture
2. Drop in the Prim Primer script
3. Wipe out the description field (select/highlight all in the description field, hit the space bar a couple times, hit "enter")
4. Pick up and re-rez the furniture (this gives it a new UUID.)
5. Redo the complete setup all over again from scratch.

Multiple Copies of Script in Root Prim


Just delete the extras. The script left will record the positions associated by object number, so it doesn't matter which one you delete (but deleting the extras with numbers on the end will make the contents look at little neater.)

No Room To Sit Here


The SimpleSit can assist with seating many avatars on a single prim. However, in order to do this, it relies on the internal ray-casting sit mechanism built in to the Second Life server. Unfortunately, SimpleSit has no control over this, so it's up to you to make sure that your product is suitable - we'll give you some tips on how to do this.

Firstly, here's how the sit system works:

1. The first avatar is always sat instantly onto the scripted "sit target" set in the prim. This will always happen no matter what.
2. When a second (or third, fourth etc) avatar attempts to sit, Second Life looks for other prims in the linkset to check for scripted sit targets.
3. If there are no child prims in the linkset, or there are no sit targets, Second Life searches your physical object using raycasting in order to attempt to find an appropriate flat surface for sitting on.
4. When Second Life has found an appropriate service, it hands over to the SimpleSit script which then positions and animates the avatar.

There are two problems with step #3:

A. The raycasting process requires a good, simple physics mesh to work with. If the physics mesh doesn't exist, or it's warped, or there isn't a flat horizontal surface to sit on, the sitting process will fail. Important note: You DO NOT need to adjust the visible object itself. This only applies to the collision / physics mesh.
It is important to remember that the physics aspect of mesh is not always visible. It is set during the upload process.
B. Raycasting also fails if your physics/collision mesh is inside another object's physics/collision mesh. This is the usual cause if your object works in one location but fails in another. The primary culprit being mega-prim sim surrounds, but sometimes also buildings which have been built improperly with inaccurate collision meshes themselves.

Determining which problem is preventing sitting:

To find out which of the above problem affects YOUR object, teleport to a nice empty space. Check that there are no other objects nearby, and check that there is no sim surround (these are prims that are larger than the entire sim, and give a decorative effect to the backdrop. Look far into the distance, you should simply see a horizon, where the water meets the sky.)
Then sit two avatars onto your object. If it works, then your problem is B (above). If it fails, then your problem is A.

Fixing Problem A


First, make sure that your object is using the "prim" physics type, and NOT convex hull.

Then, you can either:

i. Alter your object's physics mesh so that there is a large, flat horizontal space. This horizontal space should be low enough for a nearby avatar to realistically sit on, and for best results should be at least 1 square meter in size.

- OR -

ii. Add additional prims to the linkset as child prims. Set them transparent, make them large and flat, and drop the "primer" script into them once linked. Each additional prim adds one extra scripted sit target, which guarantees that one extra avatar can sit due to step #2 described above.

Note that even when you have fixed problem "A", you may still encounter problem "B" in some cases, as your customers rez them in certain places as described above.

Fixing Problem B


You need to either:

i. Advise the customer that something else is interfering with your product. Feel free to pass them the information supplied here if it will help. Usually, customers are happy as long as they know what the problem is, and how they can avoid it. It's important to convey that these sit limitations are an inherant issue with Second Life, and not a problem with your product or with the SimpleSit script.
You should probably visit their location and check yourself for any objects nearby which might be overlapping. Check for a sim surround - if they have one, ask them to remove it temporarily. If your product is inside a building, try moving it outside. This will help you to identify what is interfering with the operation of the sit code.

- OR -

ii. Add additional prims to the linkset as child prims. Set them transparent, make them large and flat, and drop the "primer" script into them once linked. Each additional prim adds one extra scripted sit target, which guarantees that one extra avatar can sit due to step #2 described above.

Stack Heap Error


This usually means the script ran out of memory. There are several factors that can cause this, primarily because the amount of memory that is actually available depends on things like the length of the animation name, the number of stored positions, etc.

Try making your animation names shorter. Remember that SimpleSit only uses one script in order to be low lag, and there's a limited amount of memory a single script can use.

Other Common Error Messages


   Unable to give inventory. Blocked by permissions.
This comes from an additional rezzing or giver script - not SimpleSit. SimpleSit doesn't have this capability. Check your objects for a stray rezzing or giving script.
  Sorry, I'm Full
Setup is not complete. Be sure you are sitting on the actual positioner, rather than the furniture object, during setup.
  WARNING: Couldn't save current animation position because i'm not associated with a base unit
Make sure the base unit (i.e., your furniture item) has the SimpleSit script - If necessary, right-click, then "Edit", then in the contents tab, right click on the script and see who created it - you should see Casper Warden. If you see any other name, it's not a SimpleSit script.

FAQ / Troubleshooting

Q. I've set up positions and hit save, but the balls aren't turning green.
A. If the balls aren't turning green, then you've overfilled the positioners. Remember that SimpleSit only supports up to 6 animations per positioner.
Q. If I've overfilled the positioners, do I have to reposition everything once I pull out the extra animations?
A. Unfortunately, yes, you'll need to set them up again. If they don't turn green, it means that the function that saves the positions has failed, and no data was kept.
Q. I already set the positions and was using the prim, but when I relocated the prim that I configured the sits for, the positions did not move with the prim - they're acting as if they're relative to the world...
A1. The positioners won't move with the prim. Once you've saved, you need to delete the positioners and then you can move the object.
A2. Make sure you haven't accidently resized the prim instead of moving it.
Q. How far away can the positioners be from the base?
A. The distance is the entire sim/region.