Tuesday, April 19, 2016

The Artiste MasterPiece

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

What is the Artiste MasterPiece? 

It's a feature of the Artiste Performer Series that allows a performer to stitch "middle" segments of multiple dances together, simply put. The idea being to skip over unwanted beginnings.

***************************************************************************
***************************************************************************
It is in response to the most requested feature for SL show-dance. A project I started many years ago. (I gave up twice before seeing a light).

It makes starting an animation in the middle a reality. It requires sequencing the dances together which means pre-planning where dances start and stop. Thats what the Artiste Peformance HUD now does. (It cannot be done manually on-the-fly).

It does NOT require that all dances begin at the same time!

********************
It does come with a few caveats, but ones that are tolerable. 

Technical Caveat A: No. of Dances
The current version allows for 15 dance segments to be pieced together up to 30 seconds each of which only the 1st segment cannot start in the middle. (A future release may allow up to 29 dance segments). 

A dance segment can be: 
  1) a whole dance, 
  2) a dance that starts at the beginning and ends before the end, 
  3) a dance that starts in the middle and plays to its end, 
  4) a dance that starts in the middle and ends prior to its end.


Technical Caveat B: Start Position
You cannot skip more than half of a dance before starting - meaning if a dance is 30 seconds long, you cannot start it beyond 15 seconds into it. If a dance is 20 seconds long, you cannot start it beyond 10 seconds into it. (I may relax this restriction  in a future release)

Technical Caveat C: First Dance Limitation
Cannot  start the 1st dance in the sequence in the middle.

Technical Caveat D: No. of Dancers
Current version only allows for one dancer. A soloist. (A future version may allow for up to 9 dancers depending upon demand.)

Technical Caveat D: Build-Up Delay
It also requires a build-up delay upon which you must mask out the dancing by delaying opening of the curtain or some other solution. The more segments and /or the further into a dance segment you skip, the longer this build-up-time. Think of a build-up as a fancy dance-cache that you don't want the audience to see.

Technical Caveat E: Dance Reusability
You can NOT use the same dance more than once in a MasterPiece if it is named the same. SO if it is mod, then change its name before reusing it, else your results will be unusable.

---
And not to steal any of Aura's thunder, nor to overstate the obvious, you must be very very accurate with the information you provide the MasterPiece on its notecard, especially total length of dance.  


********************
When will it be released? Well technically it is available now via an interim HUD GOLD release upon request, but officially it will be part of the upcoming and final Artiste release (since that's what everyone else is telling me it should be). The PLATINUM release. When?...soon...next month of so.

********************
Format of MasterPiece Notecard (one entry per Dance-Segment max of 15:


Dance Number
Dance Name
TotalLength of Dance in Seconds and fractions (MUST BE ACCURATE)
StartAt (Number of Seconds into dance to START playing)

StopAt (Number of Seconds into dance to STOP)
PlayFor  (used only if stop-at is zero in which case StopAt is ignored).

Example: 2 | *Cry me a River | 24.20 | 6.7 | 14.50| 0

********************
Some  history leading up to the MasterPiece

Playing Several Back-2-Back Animations

Starting an Animation in the Middle


********************
And now I turn the discussion over to Aura Fitzgerald (auricrose) who was generous, persistant, and meticulous enough to make a very noteable video as well as chronicle her ordeal, illustrating  the trials and tribulations of 'thinking MasterPiece'. 

SEE THE VIDEO ==> MasterPiece Video

She presents this dilemma and phenomena with unabashed forthrightness. 

I also wish to thank Sterling Randolph (photobug9000) who conceived of the method for explicit video presentation of the intricate timing. You may have to watch it more than once to fathom whats going on.

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

When Yummy first tried to explain the process of MasterPiece to me it was very baffling.  Given that she was essentially trying to re-write the laws of SL physics, it was probably the equivalent of trying to wrap your head around time-travel.  How far we have come in the (probably) 18 months since then.

I will reassure you that once you grasp the principle it all becomes a lot simpler. I am going to talk to you here about the testing process and what I learned from it and I will leave the technical discussion to Yummy although I will refer to some of the caveats that come with the process.

2015
Once the prototype MP unit was ready I went away to put together a simple routine with which we could test the MP.   I used a set of 4 ballet dances, being that ballet is made up of formal moves that can be more easily identified rather than free-form dance.  The plan was to alter the length of two of the dances, one at the beginning and another at the beginning and end.  Of course the trick is finding a suitable transition point where you are not too far off center to move from one animation to another. (see caveat 1)  I used a mixture of ballet dances from different makers.

Within a week we had a model that worked, as far as we could see. The bits of animation I did not want were pre-played at the beginning and the animations were played in shortened form.  

 After that there was a hiatus while other developments were happening with The Artiste and I had to wait until Yummy could incorporate the MP into the Artiste HUD for proper testing.

2016
I got my first HUD with built in MP.  Testing could commence again!

The information from the prototype was loaded into the HUD with animations and away we went. At this point everything is still being checked by eye and seems to work.  

1 | *Cry me a River | 24.20 | 0.0 | 24.20| 0
2 | Ballet-1_copy | 23.66 | 6.5 | 17.2 | 0
3 | Ballet-2_copy | 22.70 | 2.0| 22.70| 0
4 | My-BALLET-21 | 29.77 | 0.0 | 29.77| 0

This was my original layout. Animations 1 and 4 would be played in full, either side of 2 which has cuts at both ends and 3 which is cut at the beginning only.

I started to think about how the MP would be used in performance.  The pre-play of unwanted bits has to be masked. They are played in reverse order before the first dance starts, so with a short section like this you can wait to raise the curtain until the first animation starts to play (see caveat 3). We were now ready to film the sequence in full and in its altered form as you see in Sterling's video.  However this was where it got interesting...

I decided that if it was to look like a completed sequence it should really have a pose at the start and finish:

1 | [Black Tulip] Snow Dancer #10| 5.00 | 0.0 | 5.00 | 0
2 | *Cry me a River | 24.20 | 0.0 | 24.20| 0
3 | Ballet-1_copy | 23.66 | 6.5 | 17.2 | 0
4 | Ballet-2_copy | 22.70 | 2.0| 22.70| 0
5 | My-BALLET-21 | 29.77 | 0.0 | 29.77| 0
6 | [Black Tulip] Snow Dancer #10 - Mirror| 12.00 | 0.0 | 12.00

(see caveat 2)

MP started fouling up.  It really didnt like the pose at the beginning. Our filming started to show discrepancies in the timing of dances.  I removed the beginning pose and it seemed to recover. 

 We filmed it again and compared the the versions.  Something was still off.  Now we all know that even if an Animation Maker tells us the time of the animation, it can sometimes be slightly off. I decided to replace one of the dances to see if this was the case.  

1 | *01_Ballet| 22.70 | 0.0 | 22.70| 0
2 | Ballet-1_copy | 23.66 | 6.5 | 17.2 | 0
3 | Ballet-2_copy | 22.70 | 2.0| 22.70| 0
4 | *Cry me a River | 24.20 | 0.0 | 24.20| 0
5 | [Black Tulip] Snow Dancer #10 - Mirror| 12.00 | 0.0 | 12.00 

I won't bore you with how many combinations we tried, but every time we filmed there was still a discrepancy and most with the 3rd and 4th animation not playing correctly.  We were getting very frustrated. We had now been testing for nearly 6 weeks on and off.  

The MasterPiece is started by an *autofx command.  1,MASTERPIECE=play

While we had been filming the last version, I had started to think again about the practical use of MP.  A routine is generally made up of more than 4 animations. Adding in more animations as well has having more animations with changes will  lengthen the time at the beginning that you will have to mask.  This is something that you are meant to use SPARINGLY.  It is NOT meant to be used with a multitude of dances.  Please consider here how incredible this is that we can do it at all!  Do not take it for granted, please.

So my thinking was this, that the MP would be a command like the 1,PLAY_SEQ=1 and so why could you not move from MP to seq and back again?  That way MP would be reserved only for those dances that were to be altered.  We finished another night of filming and disappointment and I went to bed with it on my mind.  I couldn't sleep and the thought was still there.  As with most things, if you give the mind a chance to relax and reflect an answer will come.  

I split the routine into two.  
this was now the MP notecard:
1 | *01_Ballet| 22.70 | 0.0 | 22.70| 0
2 | Ballet-1_copy | 23.66 | 6.5 | 17.2 | 0
3 | Ballet-2_copy | 22.70 | 2.0| 22.70| 0

and on the *sequence 1 notecard:

*Cry me a River | 24.20
[Black Tulip] Snow Dancer #10 - Mirror | 12.00

*autofx:
TRACE,on
1,MASTERPIECE=play
2,PLAY_SEQ=1
END

I added up the times of the dances and used those to create the *events timings. For some unknown reason, SL balks at going back to a full, unchanged animation once the preceding animations have been tinkered with.  This way we could bypass what was happening.  The event time is calculated by adding together the FULL time of all dances on the MP notecard. As I use ELAPSED time, I then added the 5 seconds from event 1.  We know that timings in SL are slightly elastic, so I added a second onto that time to be sure.  Once you can see the break between the MP ending and the Seq1 beginning you can easily work backwards to trim the time to where you want it precisely.  The great thing is, once you have the MP in place these alterations are only to events so you can do a quick save from the first menu while you are figuring it all out.   No having to reset the HUD and re-Build. 

The other beauty of this method is, it reduces the pre-play  time considerably.  From 29.7 seconds I was now down to 15 seconds, therefore less to mask.

N.B.  Using palettes to adjust for movements from center: I did actually implement this at one stage but decided to omit it from the final video.  Not exactly a caveat but please remember that as the dances are coming from the MP notecard, it is not as easy as when the dances are on the *seq NC. They have to be triggered from *autofx and that means painstaking timing of the moves.  Oh yes. Pain...


Caveat 1 = you MUST use looped-dances of identifiable length - as precise as possible - otherwise it will not work properly

Caveat 2 = Animations/poses in the MP cannot have the same name.  You either have to use a mirror, load the dance twice, and rename it...if that is possible.

Caveat 3 = Masking the pre-play of unwanted animations will mean that you have to time carefully where your music starts, where the dance starts and when you open the curtain!  Not impossible, just takes some thought.


Have fun and please remember, yet again...less is more!