Monday, June 11, 2018

The Artiste Mover System - Move-Range - GoTo2ndMove Part 2


We learned, in the last post, the concept of move-range.  We can tell our mover to move a portion of the total number of moves.  We don't have to do all the moves of our mover at one time.  We did the 1st move out of a total of 5 moves.


In this example we will do the 1st TWO moves out of a total of 4 moves.

A common scenario comes up where you start off placing your movers backstage so your group of dancers in your routine can easily see and pre-mount them and be ready to go onstage. 

But ultimately you want them to rise up from below the stage.  This means they have to somehow get to the a position below the stage.  




Early mover designs dictated that once you started your move sequence, you had to finish it.  

So...you COULD move from backstage to under the stage and then move up all uninterrupted... but most performers wanted their 1st official routine move to start UNDER the stage and rise up. 

So what was needed was a way to start and stop the move sequence then restart it again.

The Artiste MoveRange feature, in combination with a show-time access-button that performs the 1st move and then stops, now makes this possible without the need for using extra HUDS to accomplish the starting and stopping and restarting of a move sequence.

With just one HUD, you can simplify this ordeal. 

After all of the dancers are in our group we press a button on the lead-dancer's HUD to perform JUST the first move which places them UNDER the stage.

First, we make sure GoTo2ndMove is 'on' in the Palettes that we want to respond to our request in the *palette nc.  Also increase the EditMoveSpeed from 0.5 to something greater as this is what is used for the GoTo2ndMove and not the speed in the *moves nc because if the time is too short, the move may not be as accurate as expected.

EditMoveSpeed,2.5
GoHomeSpeed,2.0
GoTo2ndMove,on

GroupID,AB

Then we tell the HUD that when we press Play we perform moves 02 thru 04 instead of 01 thru 04 because we have already performed the 1st move.

TRACE,on
1,r=p%sitters%mmove02-04

END

The sitters keyword sends the mmove command to all palettes that are moveable and sittable.  Else we would need an autofx command for each avatar-palette-mover. See example below:

1,r=p%01_A%mmove02-04$r=p%01_B%mmove02-04

 So this saves some nc line space as well as tighter palette-trigger coordination because all palettes get the command at exactly the same time, practically speaking.

So along with the "all" command there is "sitters", "non-sitters", as well as the group designations for sending moves and mmoves to select Palettes depending on their type and grouping designation


Step 1: Press GoTo2ndMove


Step 2: Press Play

We added a 1 second pause after each move to make them more discernible.

We left out animations (i.e. 'none') to focus on just the move-range concept and how it enables the GoTo2ndMove.\ feature.  There is a 5-second delay until the the 1st event fires that tells all of the seated avatars to start their 3-move trek (02-04).

*events
TRACE,off
ELAPSED
1,"Event 1",5
2,"Event 2",10
3,"Event 3",15

END

*autofx looks like this

TRACE,on
1,r=p%sitters%mmove02-04

END


*moves
M01_A,5.000000,<0.00000, -13.46509, -3.20166>,<0.00000, 0.00000, 0.00000, 1.00000>,none,1
M01_A,3.000000,<0.00000, 0.00000, 3.27832>,<0.00000, 0.00000, 0.00000, 1.00000>,none,1
M01_A,3.000000,<2.00000, -2.53491, 0.00000>,<0.00000, 0.00000, 0.00000, 1.00000>,none,1

M01_A,3.000000,<0.00000, -3.00000, 0.00000>,<0.00000, 0.00000, 0.00000, 1.00000>,none,1

*palette
DefaultSitAnim,lowbow
.
.
.
FinalMovePose,standing


See the Video




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.
















Sunday, January 28, 2018

Your Heart is as Black as Night 



Watch the Video ==> Your Heart is as Black as Night 

*************************************************************

BREAKDOWN OF THE "YOUR HEART IS AS BLACK AS NIGHT" VIDEO

Technical Details:

SCENE ONE:  Stage Set

Rezzed a palette (01_A) and set its position.  Sat on palette and adjusted position. Chose suitable bow animation which I placed in the palette for simplicity.

Took the "guts" out of a palette and loaded them into the Stage Curtain, re-naming it "01_B" 

Simple up and down move.

SCENE TWO: Backstage

First shot shows the hallway with the swinging light-bulb.  I Attached a palette to the bulb array and used the swing function.  Took a while to work out which axis to use but once I got it I could use the size of the palette object to obtain a suitable arc and speed of swing.

Second palette "walks" me down the hallway and out through the end.

SCENE THREE: Dressing Room

I replaced the dressing room door with a palette to animate the swing open and closed.   The trick is to have the original door then create an identical invisible prim.  I attached both of these to a central "rod" which was the palette.  This allows the door to pivot on a central axis i.e where the door hinge would be.  I set the two movements at a different speed: swinging open faster than it swings closed to suggest a push opening it and then the door swinging closed under its own steam. 

  Second palette, as a mover, was propelling my avatar through the door.  Trick was to get them lined up so that you had a reasonable interval between the door opening and me coming through it.  Its very quick so I had to find a way to get around the 5 second interval in events.  I could have used one palette to trigger the other but for expediency, as I was filming and not performing live, I adjusted by altering the length of a dummy move in the mover palette which came before the walking animation.  I could then adjust when I started walking.  Just another way of doing it, there are several ways it could have been done, some of which would be much better for a live performance.

Yumz and I talked long ago about the old "flipping the clothes over the dressing screen" trope.  Again, because it is filmed rather than live I could fudge a bit with editing, but it could be done live with some more playing around.  The bits of "dress" (a mesh shape and some flexis) were attached to a cylindrical palette which was sitting on the top edge of the screen.   I had envisaged that it would be one straight rotation to flip it over but I actually used a couple of tiny linear moves (up and forward) as well to make it look a bit better. 

The one thing that I would have liked to do better was when she came out from behind the screen..obviously in real life we don't walk in discrete lines with angled turns but rather automatically start to turn our bodies as we walk.  It would be possible to track this on a palette but the problem is actually the animation as it could look very odd unless you found the perfect walk.  Plus it was a very cramped space between the screen and the armoire.  Anyway, standard walk turn walk... might have looked better with a pause and an animation before she turns.

The rest of the action is pretty straightforward...palette used to position the sits at the dressing table etc.   The very last shot where you see the police lights in the window didn't capture that they were actually on a mover and slowly moved up into shot behind the windows.

That was purely to do with the tracking speed of the camera I was using.  I had originally wanted to pan down on to her as well so that you could see the poster above the dressing table was for a movie called "Meet John Doe"  :D

Anyway I hope that has given you a useful insight into the making of the video from a technical point.  This was originally planned years ago as a stage piece and believe it or not, everything was possible to do live!  The original would have been much more focused around dance and emotes though.

  I changed the look of the piece a lot for the video, deciding to give it a much more film Noir feel.  The sets were kept to greyscale for that reason but each splash of red has its own significance.  The dress and the underwear, the "Sinners" sign almost like an entrance to Hell; the roses were the love and passion and the make up the artifice each one builds up until eventually it leads to the blood on the sheet.  She takes off one layer of red but she is still "red" underneath.  

Anyway I hope you enjoyed it!  It has had wonderful responses so far.   I hope you will leave your comments too :)