Difference between revisions of "User:Rev Eponym/nPose"
Rev Eponym (talk | contribs) |
Rev Eponym (talk | contribs) |
||
Line 76: | Line 76: | ||
| ANIM | | ANIM | ||
| Animation name, position and rotation | | Animation name, position and rotation | ||
| ANIM|animation-name|<vector position>|< | | <code>ANIM|animation-name|<vector (x,y,z) position>|<vector (x,y,z) rotation></code> | ||
|- | |- | ||
| LINKMSG | | LINKMSG | ||
| Message to other scripts | | Message to other scripts | ||
| LINKMSG|msg-number|user-string|some-key | | <code>LINKMSG|msg-number|user-string|some-key</code> | ||
|- | |- |
Revision as of 14:10, 31 March 2013
nPose new documentation
Warning: If you're reading this, it is unofficial. Testing and composition only! |
nPose is a system for coordinating animations between several avatars seated on the same object (linkset), such as a couch or bed, as well as rezzable, coordinated props. Unlike previous systems, nPose does not use poseballs to accomplish this.
What's a 'posing system'?
nPose Notecard Types
nPose uses different types of notecards to define its customized menu functions. Each of these notecards has its type spelled out in capitals at the beginning of its name, like so:
Notecard Type | Function | .. | Example name |
---|---|---|---|
DEFAULT | Animations | .. | DEFAULT:Sitting |
SET | Animations | .. | SET:Lounging |
BTN | Script messaging | .. | BTN:Colors |
SEQ | Sequences of Sets | .. | SEQ:Line Dance |
Important: The type name must be in all caps, with no spaces, with a colon(':') before the rest of the name. Without this, the scripts won't be able to find the notecards, and the item will not appear in the menu. |
DEFAULT - Used as the default pose set when nPose is initialized, and there can be only one with this type. Otherwise, it's the same as SET below. If no DEFAULT notecard is included in the contents of the nPose object, nPose will use the first SET notecard in the contents (alphabetically) as the DEFAULT.
SET - Used to define a group of animations which will appear in the nPose menu with the name after the colon in the notecard name. The notecard contains one line for each sitter, listing animation name and position. There can also be other lines, for functions that will be triggered along with the animation set. The -keywords- section defines the different function types available.
BTN - Used for internal functions, or to send messages to other scripts within the linkset or to rezzed props.
SEQ - Used to setup sequences of pose sets. It communicates to the modified Rygel sequencer script. Details are provided later.
Notecard commands
Each line of a notecard begins with a command in all caps, similar to notecard type names. Supported commands are as follows:
Command | Function | Format |
---|---|---|
ANIM | Animation name, position and rotation | animation-name|<vector (x,y,z) position>|<vector (x,y,z) rotation> |
LINKMSG | Message to other scripts | msg-number|user-string|some-key |
SATMSG
This tells the nPose engine that this line contains information about what to do when someone sits this seat.
NOTSATMSG
This tells the nPose enting that this line contains information about what to do when someone move or stands from this seat.
PROP
This tells the nPose engine that htis line contaions information about a prop that will be rezzed when this pose set is selected.
not used yet
where msg-number is some number set by convention (see the LINKMSG messages notecard) and the remaining (optional) fields are defined by the message number.
The most common thing to put in BTN notecard is LINKMSG lines. These have the general format (again without leading spaces):
LINKMSG|msg-number|user-string|some-key
ANIM|meditation|<-0.3,0,0.8>|<0,0,0>
where ANIM says that this line describes an animation, and "mediation" is the name of the animation (which must be included in the nPose object), and the rest is a position offset and rotation. There is one ANIM line for each avatar who can sit on the nPose object. You can put <0,0,0> for both position and rotation, and use the nPose adjustment tool to find the proper values. We'll describe how later. You can also include LINKMSG and other types of lines in the SET notecards, and those will be described later also.
<lsl>
default
{
state_entry() { llSay(0, "Hello, Avatar!"); } touch_start(integer total_number) { llSay(0, "Touched."); }
} </lsl>