Magic Pose System

Magic Pose System for Builders

Kayaker Magic, November 2014 New Version 2.10!

This is a script that will help you set up poses in your furniture. It builds a menu of all your poses, helps you edit that menu, move each of the poses around on the furniture, save the resulting menu and set up your furniture to sell to your customers. No pose-balls are used, not even a helper prim any more (that was replaced by the HUD in version 2.0). This even works on single-prim sculpt or mesh furniture. As few as one click and you are sitting in the chair.

The latest additions to the documentation will always be appear here first. Tutorials to help you learn how to use this posing system can be found below. You can also see the posing system live in-world at several locations. Sample furniture with a demo version of the poser will let you try out all the features. The Kitely Marketplace can export the MPS to OSGrid or any other hypergrid enabled grid! Check out http://magic.kayaker.net to get links to all these places. NOTE that the MPS scripts will only work on Open Simulator version 0.8 or better! They work in Avination, but the "unsit pos" feature does not work there. If you like the Magic Pose System, you might also like my Magic Color HUD.

New Release Version 2.10!

November 10th, 2014 V2.10: I finally added "synchronized poses" to the system! Among many other things, this makes sex beds without poseballs easy to make.

Features added in version 2.00:

  1. HUD (Heads Up Display) replaces builder dialog.
  2. You can choose the location the avatar goes when standing up.
  3. The script in your furniture is half the size it was in version 1
  4. "Lite" version of the script (no editing allowed) is a quarter the size of version 1

August 10th 2014: Some important bugs were fixed in Open Simulator version 0.8 that allow the script to work correctly in Vanilla OpenSim systems for the first time. Avatars can move from one pose to the next by just clicking on the menu. I am also selling the MPS on the Kitely Marketplace for export. This means you can buy my posing system there for the OSGrid and a growing number of other OpenSim based grids!

Features added in Version 1:

  1. Use OpenSim 0.8 improvements to move seated avatars!
  2. Doesn't reposition an already seated avatar on .params file change
  3. Now works with animations for which youdon't have Copy permission. (Is that useful?)
  4. Doesn't hang up when there are no animations yet.
  5. Release Controls before asking for them again (avoids an OpenSim bug)

Synchronized poses

This quick tutorial assumes you already set up poses on several seats of a chair and want to link the poses into synchronized pairs.

Making Sex Bed Poses

Synchronized poses means the Magic Pose System can be used to set up sex beds without any pose-balls. (Before you get to excited, the tutorial video was made with the avatars completly clothed).

Version 2 moves the avatars with a HUD

Here is a new tutorial showing how to set up animations in a single seat chair with the new HUD based Magic Pose system. Watch this video showing the major features, then scroll down to read the detailed documentation.

Setting up multiple seats in a single build

This video shows you how to set up multiple seats on a cast iron bench. Each seat must have a prim of its own, so this 3-prim bench can sit a maximum of 3 avatars.

How to set up Couples Poses

Watch the multiple seats tutorial first. Then this video takes it to the next level and tunes two of the poses to work well together for couples.

Choose where the avatar goes when standing up

When you stand up from a chair in Second Life, your avatar often jumps up or ends up stuck in the chair. In OpenSim I have found a way for you to choose where the avatar goes when standing up! Watch this video to see how to set it up. Unfortunately, this feature is not available on the Avination grid. It is based on a "feature" of Open Simulator that has apparently been fixed in Avination, so it may also go away in Open Simulator and InWorldz as well.

Documentation

Setting up the Magic Pose System:

When you buy the Magic Pose System from my vending machine, it creates a folder in your inventory named MPS. Inside that folder is everything you will need: The "MPS poser" script is hidden inside a prim, you will need to rez that and copy the script into the folder before you get started. In the same prim is the "MPS poser lite". There is an MPS HUD object that you wear when you are editing furniture, a blank 'MPS params' notecard and a copy of this document for reference. That's all you need! You will be dragging those items out of that folder directly into the inventory of your furniture prims.

Upgrading from older versions of the MPS:

Everyone who has a copy of my Magic Pose System will get a free upgrade. Upgrading is easy! Just replace the MPS poser script with the new one and everything works. The format of the "MPS params" note-card has not changed. So old NCs will work with the new poser and Ncs made by the new poser will work with the old poser. Most of the changes are in the way you edit poses, so there is probably no need to upgrade your old customers. There is one change that might require updating your customers: The new UNSIT POS feature that allows you to specify where the avatar goes when they stand up. If your customers want this feature, you will want to upgrade them to the new version.

MPS poser lite version:

Also included is a "MPS poser lite" version of the poser script. This is a simplified version that does not know how to edit the list of poses or even talk to the HUD. This version is much smaller and leaner, so after you are finished editing all the poses in your build, you can replace the full poser script with this lite one. This is an excellent choice for vehicles where the larger script may slow down region bordeer crossings. If you ever change your mind and want to edit the poses again, you can always swap out the full version for the lite version.

Permissions:

The MPS poser script is sent to you noMOD but COPY and TRANS. You must clear either COPY or TRANS for the next owner before you can ship it to your customers. I prefer to ship products with COPY set so my customers can recover if one gets lost, or rez several at once. You may prefer to ship products that cannot be copied, so the MPS supports TRANS only as well. To remind you to do this, the script will nag you with ANNOYING RED FLOATING TEXT! No, its not that I don't trust you, I always forget to do this myself! You can change the permissions for the next owner, copy it back into inventory, then always use that copy. It will never nag you again.

Once you change the permission to noTRANS or noCOPY, you may distribute copies of the MPS poser script in the inventory of your products. The script is copyrighted and is sent to you noMOD so you cannot see the source. Attempting to break the protection or change the creator of these scripts is a violation of my copyright. To quote the MC++ CS Gangsta Rap song:

"Protecting messages to make my pay.
If you hack me, you're guilty under DMCA!"

If you are just curious about advanced animation techniques on Open Simulator, track me down in-world. I love talking about scripting and sharing with my friends.

The MPS HUD is NO TRANS, it is for you to use to edit furniture. You never ship that with your final products.

How to set up synchronized poses:

How to set up a new chair for the first time:

How to set the chair up to sell it:

After all the poses are set up, if you have not done so already, you must change the permissions of the MPS poser script to noTRANS or noCOPY. If you don't do this your customers will see the ANNOYING RED FLOATING TEXT! You may want to change the permissions on the "MPS params" notecard to no-mod. If you don't do this, your customers may try to guess the format of the file, edit it and mess up your menu. And you may also want to replace the full MPS poser script with the MPS poser lite version. The lite version cannot edit the poses, only use them. It is smaller and will put less of a strain on the SIM. (Don't forget to also change the lite version to noTRANS or noCOPY).

How avatars sit on the chair:

In "Sit 1ST" mode, just left-click on the chair to sit in the default pose. Click again to bring up the pose menu. As soon as you select one, you are moved to the new position, rotation and pose.

In "Menu 1ST" mode, left-click on the chair, the dialog appears with the list of all poses, select one. Then left-click on the chair a second time, this time the "seat" icon appeared as you clicked and you land in the pose that you chose.

How seated avatars change poses on the chair:

Left-click on the chair, the list of poses appears in the dialog. Click on one, your avatar is moved, rotated and animated in the new pose.

How avatars adjust their position:

After an avatar sits on the chair, they can make minor adjustments in their position to correct for different sized avatars. Each time they tap one of the arrow keys (left, right, forward, backward, page-up page-down) the avatar will be moved one cm. Holding the keys down will auto-repeat and move faster. NOTE: The direction of movement on the arrow keys is relative to the direction the camera is looking, always left and right in the image and in and out. (I wanted to move relative to the avatar but a bug in OpenSim and InWorldz prevents me from reading the avatar rotation).

More than 12 poses:

When there are more than 12 poses set up, they all cannot fit in one dialog. When this happens, a button labeled >>MORE>> appears in the lower right corner of the dialog, and the first 11 poses appear with it. Pressing >>MORE>> shows you 11 more, and 11 more until there are no more. Then the >>MORE>> button brings you back to the first 11 again. That is the way to go back, you just have to keep going forward until it brings you back to the start.

How to set up a couples pose:


The MPS Heads Up Display (HUD)

A HUD is used to set up your poses. This HUD has a menu of buttons for performing different tasks, access to a note-card, two "gizmos" for rotating and positioning avatars. Above the HUD it displays the name of the seat and pose you are currently editing. Below are detailed instructions about what each of the buttons do:
HELP Click on the top bar of the HUD where it says "MPS Magic Pose System" to get a note card with a copy of this text to help you remember how to use it.
CONNECT This connects the HUD to one of the seats in a nearby furniture build. There is a short delay while a search is done for all nearby copies of the MPS poser script. Only seats in builds within a 10 meter radius will be found. A dialog appears with the nearest 12 seats. (If there is only one nearby seat, the HUD connects to it automatically and does not bring up the dialog). Click on the seat in the dialog you want to edit, your HUD will now edit that seat. For this to work unambiguously, you will have to give every seat prim in your build a unique name. Only the first 12 characters of the prim names appear in the dialog, so be brief! You can wear several copies of the HUD at once and connect each HUD to a different seat. This will allow, for example, editing both halves of a couples pose at once. You can also rez the HUD as a freestanding object, make it larger and it will work

You can press the CONNECT button at any time to break a connection with a seat and re-connect to a different seat. If you detach the HUD, delete it, remove the furniture, or fly into another region, this will also break the connection. There is a delay of several seconds after one of these events before you can connect again, so if a seat does not appear in the connect dialog, wait a few seconds and try again.

SAVE This button dumps a table out to local chat. You must cut that out and paste it into the "MPS params" notecard in the inventory of the chair. Failure to SAVE, cut and paste will loose all of your work! The poses are only saved in memory before this and may be lost if the chair is re-rezzed, reset or the sim is reset. Depending on your viewer, you may need to edit this table to rename poses. Details of the format of this table are given below.
NOTE: Only on InWorldz, the SAVE button now re-writes the MPS params notecard for you! The above steps are no longer necessary there.
NOTE: When editing multiple poses in one piece of furniture, make sure you paste the table into the "MPS params" file in the correct prim! It is easy to select the wrong one and over-write (destroy) work that you did before! If this happens to you, search back through your local chat history for the lost table data, it may still be there to save your lost work.
RENAME Brings up a text box and lets you rename the currently selected pose. This changes the name in the dialog, the animation is not renamed, just associated with this name. Pose names must be short, only the first 12 character names or so will fit in a menu button.
NOTE: Some viewers cannot do "Text Boxes" and rename will not work. Instead a dialog box with one button named "!!TextBox!!" appears. (Don't press that, press 'ignore' to make it go away). If this happens to you, then you must learn to edit the table in the "MPS params" notecard. See below for the format of this table.
DELETE This deletes a pose from the menu. The animation file is not deleted, just orphaned. If you want to get this pose back, you can use FIND to find it, but you will have to position and rename it again.
POSES Brings up the menu of poses again so you can switch to editing a different one.
SYNC Connects poses on several seats of the same build. Whenever one pose is selected, the connected seat will switch to the corresponding pose. It does not matter who sits first, or if they are both already seated. If one avatar changes to a synchronized pose, the other avatar will be moved and animated into the new position.

To use this you must have two copies of the HUD on your screen. This requires having two copies of the HUD in your inventory and attaching them to different slots on the display. Then use the two HUDs to select the two poses that are to be synchronized. Press the SYNC button on both HUDs to synchronize those poses. The word SYNC will appear in green floating text above each HUD between the two button presses. You should immediately press the second SYNC button. Doing anything else, like switching to another pose, will abort the sync operation and you will have to start over.

You can have seats that are not synchronized. If one avatar selects a non-sync seat, they will leave the other avatar behind in the last pose they had.

To remove synchronization from a pair of poses, select the pose and press SYNC twice on the same HUD. Or press SYNC once, and then change any pose, this will break the connection.

You can synchronize more than two seats together. You need a separate HUD on your screen for each seat. Use the HUDs to set up all the poses, then press the SYNC button on each HUD in turn.

When three or more poses have been synced together, clicking twice on the SYNC button only removes that seat from the set. You will have to go to each HUD in turn and click SYNC twice on each to remove all traces of a multiple-sync pose. There is a way to create multiple-sync poses with only two HUDs on-screen: Pick one of the HUDs to be the master and always click SYNC on that one first. Use it to sync to each seat in sequence. Using the CONNECT button to switch the slave HUD to a new pose, then pressing SYNC first on the master, then on the slave HUD. Repeat until all the poses have been linked to the one in the master.

FIND Searches inventory for new animations. This allows you to find deleted poses or recently added animations. The first time the "MPS poser" script is dropped into inventory it does a search for all animations and builds the first menu. Once a "MPS params" file is created, this automatic search is not done again. If you add new animations to the inventory of the chair, you must press FIND to get them into the menu and start editing them.
SWAPMENU This button allows you to organize your poses in the menu. First you press POSE to select one pose in the menu, then you press SWAPMENU, then you press a second pose. The two poses swap positions in the menu. You can use >>MORE>> to swap poses that are on different pages.
DEFAULT This button allows you to set the default pose that will be used if someone sits on your chair without going through the menu. Select a pose with the POSE button and hit DEFAULT.
MENU 1st
SIT 1st
One button switches between two modes. Note that the current mode is displayed in the button, click to change away from that mode.
SIT 1st In this mode, the first click on the chair sits the avatar immediately in the default pose. This is ideal for simple chairs, you can always click a second time to bring up the menu and change your pose. If the root prim has the MPS in it, these set this mode for all other seats. If there is no seat in the root prim, then each seat in the build can separately be menu or sit 1st.
MENU 1st This is the default behavior, the first click brings up a menu of poses, the second click on the chair sits the avatar in the chosen pose. This is ideal for a sex bed, the first click brings up the menu of poses and lets you see what your are getting yourself into before you sit!
ADJUSTABLE
NO ADJUST
One button switches between two modes. Note that the current mode is displayed in the button, click it to change away from the mode you see. Adjustable mode means that after an avatar sits, they can adjust their position with the arrow control keys. In "no adjust" mode, the seat is not adjustable and the controls are freed up for other scripts to use. Each seat in a build can separately be set adjustable or not.
UNSIT POS This button allows you to specify where the avatar will go when they stand up from the seat. To use this, you must sit on the chair, move the avatar to the desired location, then press UNSIT POS. This will, unfortunately, loose whatever location and rotation one of the poses had! Either do this unsit setup before adjusting all the poses, move the avatar back to the right place after UNSIT POS, or add an extra animation to the inventory for this procedure. A standing animation would be best for this anyway. Once the unsit position is set, you can DELETE the extra standing pose from the menu.

Format of the "MPS params" file:

You only need to know how to edit this file if your viewer does not support “Text Boxes” and as a result the RENAME button in the dialog does not work. The "MPS params" notecard is made up mostly of pose lines and a couple of mode lines. Each line may start with a time-stamp and the prim name followed by a colon. This is left over from your local chat and is ignored by the pose system. You can delete this part, but I don't recommend bothering to do this. The rest of each line is made up of fields separated by | (vertical bars). The first real field in a pose line usually says 'pose', the second field is a number, reserved for future expansion. The third field is the pose name that appears in the dialog (this is the only part you will probably ever edit), the 4th field is the name of the animation, the 5th field is the syncronized pose field, the 6th and 7th fields are the position and rotation of the avatar in prim-relative co-ordinates.

You can change the pose names that appear in each line, but you should not change anything else unless you know what you are doing! For example, you can change the animation name field if you also rename the animation in inventory to match, or drag in a new animation that matches the name.

Below is a sample "MPS params" file. Each line starts with a time and the name of the prim followed by a colon. These are ignored by the pose system.

[01:35] Cushion Left: pose|1|Curl right|my_sit_RcurlX|x|<0.126037,-0.021919,0.137973>|<-0.264004,-0.515455,0.311807,0.753249>
[01:35] Cushion Left: pose|1|Right arm|my_sit_Rarm|x|<0.210054,-0.062613,0.139401>|<-0.194462,-0.545507,0.210814,0.787506>
[01:35] Cushion Left: pose|1|Curl left|my_sit_LcurlX|x|<0.210054,-0.062613,0.139401>|<0.194462,0.545507,-0.210814,-0.787506>
[01:35] Cushion Left: pose|1|Sit back|my_sit_backX|x|<0.140832,-0.093584,0.196869>|<-0.264004,-0.515455,0.311807,0.753249>
[01:35] Cushion Left: default|my_sit_backX|menu 1st|adjustable
[01:35] Cushion Left: unsit|<1.00000, 0.00000, 1.00000>|<0.00000, 0.00000, 0.00000, 1.00000>
This particular menu will have poses named "Curl right", "Right arm", "Curl left" and "Sit back". You can change these at any time and after you save the notecard back to the furniture inventory, they will appear in the next menu. The animation files that each of these poses run are the ones named "my_sit_RcurlX", "my_sit_Rarm", "my_sit_Lcurl", and "my_sit_backX".

You can re-arrange the order of the pose lines, but the poses appear in the menu in a strange order: They "flow" from left to right, bottom to top. The first one in the notecard appears in the lower left of the dialog. The second and third appear to the right of that one. The 4th 5th and 6th appear on the second line FROM THE BOTTOM of the dialog. The 7th 8th and 9th appear on the third line FROM THE BOTTOM and the 10th 11th and 12th appear on the top line of the dialog. That is the way Linden Labs did it, and everyone has had to do it that way.

The syncronized fields are labels that connect two parameter files together in two seats. To connect one pose in one NC to a different pose in another NC, just put a unique identifier there. For example, in the first line you could replace the “x” with “A”, and then in a copy of this file replace the “x” in the third line with “A”. This would synchronize “curl right” with “curl left” and make the two avatars always lean into each other.

When you use the HUD to fill in the sync field, it uses animation names in these locations. This is only done to assure that the names are unique. You should not assume that these names refer to the animation that will be played.

The 2nd to last line in the "MPS params" file is the default line. It has the name of the default animation and several mode settings. The second parameter (after 'default') separated by a '|' is the name of the default animation. this selects which animation will be used if someone right-click-sits or sits in 'sit 1st' mode without bringing up the menu first. This parameter has the name of an animation, not the name of a pose. It acquires the position and rotation of that animation from the lines above. The second parameter is where the 'menu or sit 1st' mode is stored. The third parameter is where the 'adjustable or no adjust' parameter is stored.

The last line is the position and rotation of the unsit position, where the avatar will go when she stands up from the chair. This example is one meter out and one meter up (in the local co-ordinates of the seat prim) and zero rotation.

The Future

Just to give you a glimpse to the future: When certain bugs in Open Simulator and InWorldz are fixed, sub menus and posing multiple avatars from a single prim. The reserved fields in the "MPS params" notecard will allow adding these features without changing the format. Some of those bugs have already been fixed in Avination, so I always have a place to go and work on Version 3.