Wednesday, May 23, 2018

The Artiste Mover System - Avatar Movers - Part 1 - Move Ranges

We now know the basics of  how to move an object.

We learned about pairing a palette/object-mover to an anchor.

We learned how to use the menu-approach to creating simple moves and turns.

We learned some Palette-menu commands.  We learned a few move-related *palette nc entries and a few *move nc entries.

***

In order to prepare a Palette as an Avatar-Mover, we need to turn on 2 additional Abilities besides Moveable in the *palette nc.

Moveable,on
Sittable,on
Animatable,on


Abilities help prevent needless permissions requests as well as avoid conflicts.  

***

Ok so let us try and create a little story.  We already have a flying saucer with moves and turns.  Let's make the saucer follow/stalk our chosen avatar. (Now let it be known that Artiste also has a Follow feature for Palettes to auto-follow objects but for our purposes we will create our own home-grown follow function using autofx commands to move Palettes in sync).



So our avatar will climb up right-side stairs, turn left, walk to midway pointturn left, stop and posedance, stop and poseturn rightwalk to left-side stairsturn left again, and then climb down the left-side stairs.

1 - mover - move TO the stairs
2 - mover - move - climb up right-side stairs
3 - mover - turn - turn left
4 - mover - move- walk to midway point
5 - mover - turn - turn left
6 - mover or HUD - move or dance-pose - stop and pose

7 - HUD - dance
8 - mover or HUD - move or dance-pose - stop and pose
9 - mover - turn - turn right
10 - mover - move- walk to left-side stairs
11 - mover - turn - turn left again
12 - mover - move - climb down the left-side stairs

***

This example will demonstrate a few cool, mostly unique, features of the AMS, mainly:
1 - Embedded Moves
2 - Move Ranges
3 - Group Moves


***

FLYING SAUCER

First I redo the saucers moves so they move up at an angle to trace the stairs but off to the side and then move across the bridge and back down the stairs on the other side.  

So first we create a new InitialOffset value for the flying saucer. 

Then we create a bunch of moves and turns for the saucer to mimic stalking our avatar.  We just want to get a rough feel for the flow. We will tweak it later.  For this demo we will continue to use the menu system for creating moves, although it may be enough moves to warrant using the marker system if it appears too much to hold into ones head.


***

AVATAR MOVER

First, we rez a Palette, pair it with the Anchor. (AnchorName).  I rename the Palette to ArtistePalette_02_A.  (For sittable Palettes we must use the standard naming.  01_A thru 01_R are already in use on another project I am doing on this sim so to be safe and not conflict I chose "02_A".)

Second, we prepare it as an avatar-mover as discussed above by setting the appropriate abilities.
Moveable,on
Sittable,on
Animatable,on


Third, we reset it.

Fourth, we insure our active group matches the group of the Palette. Then we press ResetSit button on Palette menu and then SIT on the Palette and accept permissions when asked.

The initial pose when sitting on a Palette is determined by the DefaultSitAnim entry in the *palette nc.  This animation must be in the Palette.

DefaultSitAnim,standing

The final pose that happens at the end of a move sequence is determined by the FinalMovePose entry in the *palette nc. This animation must also be in the Palette.

FinalMovePose,bow



Fifth, we position Palette in front of the right stairs, and rotate it so we are facing the stairs. Then we create a new InitialOffset for the Palette by pressing DumpInitial and then pressing ReloadMoves as we have done before with the saucer.

 InitialOffset,<-3.29439, -0.15184, -0.00061>,<0.00000, 0.00000, 0.70711, 0.70711>

Sixth, we create the 1st 5 moves which is move, move, turn, move, turn.  We test it. All good.

Seventh, lets adjust the durations since the default, in this particular case, is 1 second for all moves and turns.  We learn a new button called QuickTest.  This tests 1 move/turn at a time vs TestAllMoves which runs thru all of the move/turns.

I will rename the move-names for easier identification. So, M02_A, the default, becomes M02_A_01 and M02_A_02, etc, though this is not required.

We add 2 animations to our move sequence. JD walk 1 and JD walk 2. Notice the second walking animation the avatar places her right hand on her right hip, different from the 1st walking animation.

1 second to walk to the stairs

M02_A_01,1.000000,<0.00000, -0.94051, 0.00000>,<0.00000, 0.00000, 0.00000, 1.00000>,JD walk 1,0

We do trial and error on just the 2nd move going up the stairs. I settled on 12 seconds.

M02_A_02,12.000000,<0.00000, -5.57140, 4.12061>,<0.00000, 0.00000, 0.00000, 1.00000>,JD walk 2,0,0,0

I will leave the turn, after the 1st move, at 1 second for now.

M02_A_03,1.000000,Turn,89.993520,none,0

I chose 5 seconds for the move from right-stairs to midway point

M02_A_04,5.000000,<2.94045, 0.00000, 0.00000>,<0.00000, 0.00000, 0.00000, 1.00000>,JD walk 2,0,0

I will leave this next turn that faces the audience also at 1 second for now.

M02_A_05,1.000000,Turn,90.000000,none,0


We will make the saucer ascend for 12 seconds instead of 5 to match the avatar's stair climb.

The command to move both the avatar and saucer from autofx is:

TRACE,on
1,r=p%Flying Saucer!%mmove01-02$r=p%ArtistePalette_26_RC_e%move0
END

We introduce abn arguably unique feature called the move-range.  We tell the flying-saucer to move just its 1st 2 moves, 01 and 02. The move0 is shorthand that  tells the avatar-mover to move ALL of its moves (01-05);

See the Video

We will stop for now so as not to clutter to much info at one time. 



Wednesday, May 9, 2018

The Artiste Mover System - Turns

Artiste has many approaches to turning and rotating . So many in fact that there is now a manual devoted just to turns so you can quickly find, review, and compare the available choices.

BK27 - The Artiste - Book - Turns & Rotations  - v1.0

***

A turn when talking about movers is a type of move and has its own entry line in the *moves nc.

Example:   M99_Z_01,5.000000,Turn,-70.000510,none,0

A cool unique thing about Artiste turns is that they have their own DURATION and can have their own ANIMATION.  Turn-animation has more significance when building an avatar-mover.

Artiste turns are smooth and contiguous and are NOT made up of discreet parts.

If you turn a Palette without also moving it then you can DumpMoves button on the Palette menu will now calculate a turn-entry instead of a move-entry. This is an improvement over the old way of having to type the turn entry in from scratch.

Let's try it with our flying saucer.

We will move, turn, move, turn.

I added a red dome and linked it to the saucer so that the turn will be more evident.










Tuesday, May 8, 2018

The Artiste Mover System - Menu-Based Object Mover

Menu-Based Object Mover

Ok so we know how to rez and place an ArtisteAnchor.   We insure the Palette knows its anchor by putting the anchor name in the *palettes nc.  AnchorName,ArtisteAnchor 

We make it a movable object by  setting Moveable,on in the *palettes nc.

We know how to use the DumpInitial button to find our InitialOffset value that goes in the *moves nc..

We know how to send our Palette to its initial starting step by pressing the GoHome button.

We know how to quickly read in changes to our *moves nc by pressing the ReloadMoves button.

We have the basic knowledge of preparing an Artiste Palette as a mover but without any moves yet.

***

I bought a freebie MODIFIABLE flying saucer for our object-mover demo.

Step 1:  I copy the 9 basic scripts and 5 notecards from our basic Palette into our flying saucer.

Step 2: I set its Moveable,on in the Palette nc.

Step 3: I place the flying saucer just over our Anchor though I could have put it anywhere.



Step 4: I reset the flying saucer by clicking on it and getting the menu to read in ALL the ncs.

Step 5: I press the DumpInitial button and copy/paste the InitialOffset output into the *moves nc.

Step 6: I press the ReloadMoves button on the 2nd page of the Palette Menu.  This reads in our NEW InitialOffset value.  Note:  We only have to do the InitialOffset maneuver once per Palette, unless we change our first position (home).

Step 7: One additional NEW thing we want to do is keep the flying saucer from turning into the default Palette colors upon reset by setting an entry in the *palette nc called Color.  We change it from Color,default to Color,none

All is good now. The Palette and Anchor are now paired.

There are 2 types of mover systems.

Menu-Based and

Marker-Based (bread-crumb trails).

 We will use the simple Menu-Based system because we only have 2 or 3 moves in our demonstration.

Step 1: I press the StartMove button on the Palette/saucer menu.

Step 2: I move the saucer up.

Step 3: I press the EndMove button on the Palette/saucer menu.

Step 4: I press the DumpMove button.

(We can repeat this process ( Step 2, 3, and 4) for as many moves as are needed).

Step 5: I move the saucer to the left

Step 6: I press the EndMove button on the Palette/saucer menu.

Step 7: I press the DumpMove button.

Step 8: I copy/paste the output carefully into the *moves nc..

Step 9: I change the duration of the moves from whatever they happen to be...to 5 for 5 seconds for both the move up and the move left. (They do not have to be the same times)

Step 10: I change NoOfMoves in the *moves nc from whatever it was...to 2.  NoOfMoves ,2

Step 11: I press the ReloadMoves button.

Step 12: I test our 2 saucer moves by pressing the TestAllMoves button on the Palette/saucer menu.

Flying Saucer Object-Mover Video

THATS IT: We just made a simple object mover without the need for markers / bread-crumbs.   This Palette/saucer is now show ready, short of any reorientation needed in case the show venue faces a different direction than the work platform.  It is also ready to be packed into a rezzer.

FYI, the command from the Artiste Performance HUD on the *autofx nc to make it do all of its moves looks like this:

1,r=p%Flying Saucer!%move0







Monday, May 7, 2018

The Artiste Mover System - Pairing - InitialOffset



We have prepared our Palette for an object move by changing the Moveable entry to on in the *palette nc. (I decided to create a simple object-mover first. Then after that we will do an avatar-mover).

Moveable,on

***

The first step in creating a move is pairing a Palette used as a mover to the Anchor.

In the *palette nc insure that the AnchorName matches the actual Anchor you are using.

AnchorName,ArtisteAnchorYumz

If they match then upon reset of the Palette you will get an acknowledgement:

[10:45:09] ArtistePalette_25_RC_d: [LDR] 10 - FOUND: ArtisteAnchorYumz - AnchorKey: 43b6b5ff-8ee1-d093-b8ef-518fbe03a99a @ <225.55920, 17.63139, 3501.32700>


If you have 2 anchors named the same then you will NOT get the acknowledgment and you will also get  a velocity error. 


***

There is a *moves nc that is used to store move information.  If all you are doing is changing move information then there is a button on the Palette menu called ReloadMoves (Page 2) to reload JUST the *moves nc after you make and save changes.  This is a huge time saver as the Palette will not reload the other ncs.


InitialOffset

We need to get this value. It is in the *moves nc.  It tells the Palette where to go when it is rehoming (reset, reloadmoves, GoHome button, GoHome command from autofx).

1 - Position and rotate your palette to where you want it to start its move.  In real practice this seems to be behind the stage wall.

2 - Press the DumpInitial, a button on the Palette Menu.

You get this as output:  ArtistePalette_25_RC_d: InitialOffset,<0.99988, 1.00007, -0.00073>,<0.00000, 0.00000, 0.00000, 1.00000>

All you need is the part that starts with InitialOffset.

InitialOffset,<0.99988, 1.00007, -0.00073>,<0.00000, 0.00000, 0.00000, 1.00000>

Replace the existing value with a copy/paste of this value. 

Then either Reset or ReloadMoves the Palette.


THATS IT!  


Your Palette is now paired with the Anchor and knows where its home position is. Note that if you move or rotate the anchor, the Palette, upon a GoHome command, will reorient its position to stay in sync relative.




You can test your pairing by moving and/or changing the rotation of your Palette then pressing the GoHome button on the Palette menu.  It should return to its home position.


GoHome Video


Note: The speed of the move back to home is set by an entry in the *palette nc called:
GoHomeSpeed,3.0

If this is value is too low and you are moving a big distance, then you could get a velocity error as an object can only move so fast but this is rare.

Sunday, May 6, 2018

The Artiste Mover System

The Artiste Mover System

Movers and dancer-movement (as opposed to dancer animation) seems to be a very popular addition to SL Dance.  Sometimes the curtain opens and you are already in position as a dancer to begin your routine. Other times you may walk, skip, jump, or use another move-affiliated animation to get you from off-stage to on-stage and ready to begin your dance routine.  The same often happens at the end of routine where you 'move' one or more dancers from on-stage to off-stage.  Multiple dancers can move in unison or independent. They can turn as well as move.  They can move in 3 dimensions.

Some forms of dance in RL, the dancers seem to already be in position as in music videos as an example while in ballet you see them prance on and off. Also in dance competitions they stroll on and off.

Movement does add scope and can maximize use of big stage.  It often offers perspective, variety, and added interest.

I have attended workshops for some other products and watched how movers are used in many shows.  I thought it was time to present the Artiste's version of movers for comparison and analysis.  I have demoed and highlighted many Artiste features but have not delved into the Artiste Mover System.

The purpose of this expose is to document as well as inform owners and non-owners.

The system has evolved over time from what I envisioned peoples needs would be to also include what peoples needs actually turned out to be.  A couple of key features were created at the request of users actually using the mover system.

I want try a new approach to informing.  

Very slow. In byte-sized deliverables.

So this will be presented in multiple parts.

***

Overview

The Artiste Mover System I will refer to as AMS from here on out for convenience sake.

We use an object we call a Palette.  It is one-prim, copy/mod. It consists of scripts and notecards.  



A Palette can be a lot of different things (abilities), one of which is a 'mover'.  You tell it what it can be and do by editing its notecards (ncs).

It can be more than one thing at a time (abilities). (See the State-Of-Shock video as an example of a Palette being a: mover, light, and animated-texture.)

Anything which is mod can be a Palette and as such, can also be a mover.

Unlike some systems, there is no required linking involved to move an object...but you could.

The AMS allows for objects or avatars to be moved.

If all you want to do is move an object, you can prepare it by making the Palette 'movable'.  It requires changing one entry in a nc.

Ex:

Moveable,on
Sittable,off
Animatable,off


If you want to move an avatar, then you prepare it by making the Palette moveable, sittable, and animatableIt requires changing three entries in a nc.

Ex:

Moveable,on
Sittable,on
Animatable,on


When a Palette is movable then it can home to an anchor upon reset, reload, or specific chat command. So if you move the anchor then Palettes which are movable will change position (and rotation if need be) relative to the anchor to stay in sync when re-triggered (resetreload, or specific chat command).

There are a host of other options available but these are the key entries to identify the character of a Palette as a mover.

***

Movers need an anchor.  Movers have an entry in a nc that names the anchor it is looking for.  The anchor must be owned by you (owner of the Palettes) so there is no conflict with anchors owned by others.

The Artiste Anchor




You can see the Artiste Anchor is just a 1-prim object. It used be just a dumb object with no scripts. Now it has intelligence , a menu and options, but its main purpose is just as a point of reference. (click on it for the menu). You seldom need to use its menu. It does have some nice options of convenience as well as advanced options for when using our bread-crumb-based marker system....a system for movers that most of you are familiar with.

I suggest rezzing the anchor in an accessible place in case you need to access it during a show.  

You can can show or hide it from its menu.

***

The Artiste MasterRezzer



The Artiste MasterRezzer performs functions similar to the Multi-Scene rezzer.  You can rez sets or objects in predictable and consistent relative or absolute placement.

(You, of course, do not need to use the MasterRezzer when you are just creating your routine.)

The Artiste MasterRezzer was developed with the SL Performance Dancer in mind.  Its main purpose was to simplify the task of set cross-fades and set transitions.

Unique to the Artiste MasterRezzer is that you can:
1) Rez more than 1 set at a time
2) Rez NOCOPY objects

You can also rez NOMOD objects

By adding 1 script and 1 nc to the Anchor, you can make it rezzable, along with anything else you want to rezz. It can be its own set or part of a set.  You can have up to 6 sets per MasterRezzer.  (A MasterRezzer can also rez another MasteRezzer referred to as Rezzer-Chaining).

You would pack (place) the Anchor inside the MasterRezzer not unlike you do with other rezzers.

You can reset (rehome) your movers using:
1) the Anchor menu or
2) the Artiste Performance HUD Auto-Access menu or
3) the movers (Palettes) menu.


The movers will look for the Anchor and re-position and/or reorient themselves.  Movers depend on knowing where the Anchor is in order to perform their moves and turns.


Yes, you can use the Multi-Scene rezzer instead of the Artiste MasterRezzer.




Also, the Artiste MasterRezzer can also be used standalone as it now accepts chat commands.


Ok so now you know about Anchors and how to rez them and how they are used with Movers.  

I hope this was not too much or too confusing.

Next up we will begin the process of creating an Avatar Mover.