SmartDancer 112 – Animations

Order to Chaos to Order

That to me is the key to creation.

And to me its the key to captivating group-choreography.  I have seen it in drill-teams as well as in the arts and in nature.

For SmartDancer (SD) a key component is being able to segue back into an orderly formation from a more disordered formation.  This requires an in-depth knowledge of how SD perceives animations to work.

The key is to have a 1st animation running that we can return back to after performing a 2nd animation.

If we STOP the 2nd animation then it will automatically SNAP back in sync with the 1st animation.

There are a few tools at our disposal.

StartKill and StartKeep
StopLast
Freeze and UnFreeze

Assume we have 4 dances called Dance1, Dance2, Dance3 and Dance4

********************
StartKill mode, which is the default, will cause the following to happen:

Dance1 runs
Dance1 is stopped when Dance2 runs
Dance2 is stopped when Dance3 runs
Dance3 is stopped when Dance4 runs

Then if we press StopLast, Dance4 stops and our dancer returns to STANDING (or the standinganimation, because there are no more animations running.  (Actually the standing animation is the 1st animation to run by default)

********************
StartKeep

Dance1 runs
Dance2 runs (Dance1 is still running)
Dance3 runs (Dance1, & Dance2 are still running)
Dance4 runs (Dance1, & Dance2, Dance3 are still running)

If we press StopLast,  then Dance4 will stop and Dance3 will be running.  If we press StopLast again, nothing changes.  SD only remembers the last dance. You do have some extended control if dances are assigned to multiple Divisions. You can stop dances by Division (A,B,C,D) but only 1 dance per Division.

********************
Canons

I like to think of SD as having ‘2 trains‘. The normal-animation train and the Canon-animation train.

When you perform an animation on the Canon train, it automatically returns to the previously running animation from the normal-animation train,…when it is done. Canon animations run as long as the CanonInterval (aka CanonDuration) specifies.

We want to be able to emulate the way that the SD Canon works using the normal-animation method, that being…pressing dance buttons in succession, or sending them via commands to the SD sequencer.

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

Freeze

Dance1 runs  (this becomes  the current backing animation)
Dance2 runs (this becomes  the NEW  current backing animation)

Lets say we plan to do Dance3 and Dance4 and then a Canon.  When the Canon ends, we wish to revert back to Dance2.

We issue a FREEZE Command right after Dance2 runs.  And then Dance2 becomes the FROZEN semi-permanent backing animation.  No further animations will replace it unless and until we issue an UNFREEZE command.  StartKeep and Freeze work hand-in-hand together.

Trace,0ff
ElapsedOrDuration,duration
1,Dance,dance1 | 10
2,Dance,dance2 | 10
3,StartKeep | 0.1

4,Freeze | 0.1
5,Dance,dance3 | 15
6,Dance,dance4 | 15
7,StopLast | 0.1
8,Wait,10 | 10

Upon executing the StopLast command, the dancers will revert back to dance2.

 

 

 

********************
Normal-Animation Segueing 

 

 

 

 

 

SmartDancer 111 – Canons

Of all the core features of SmartDancer (SD), the Canon is, by far, the most prolific.

While SD is primarily a tool for performing intricate group moves, Canons also allow for dancers to perform predefined SOLO dances which can be comprised of an animation and/or a turn.  By using the Vanish Effect you can temporarily limit the number of visible dancers.

Canons allows for staggered animations and/or turns in alphabetical or reverse-alphabetical order on up to 9 animesh/avatars using the CanonInterval to provide the time between staggers and can be further delineated by a Target.  (The default target is ‘abcdefghijklmnopqr‘) or simply ALL animesh/avatars/palettes.);

There are now 2 sets of animations you can choose from using the menu at run-time or a command at run-time using the SelectCanon feature.  Select-1 and Select-2.

There are 3 levels of definition:

Level 1, the lowest level, lets you define a CanonAnimation and CanonInterval for each individual animesh/or avatar.  You can actually define 2 for each animesh/avatar.

CanonAnimation1 and CanonInterval1 and CanonAnimation2 and CanonInterval2. 

Animations and intervals will apply to all animesh/avatars THAT MATCH the current TARGET (target is a specification by letters of which animesh/avatars (J-R) will participate in the next Canon command.

Use the SelectCanon feature to select 1 or 2.

Level2 lets you ‘override” the individually assigned CanonAnimations.  This override is defined on a nc in the Controller and will apply to all animesh/avatars THAT MATCH the current TARGET (target is a specification by letters of which animesh/avatars (J-R) will participate in the next Canon command.

So if you want to use the Level1 animations and intervals then omit these fields or leave the entry BLANK in the Controller on the *channels nc.

Or if you want to keep them in place for a consistent look then leave them as:
CanonAnimationOverride1,
CanonAnimationOverride2,
CanonIntervalOverride1,-1
CanonIntervalOverride1,-1

Level 3 lets you override Level1 AND Level2 declarations and is temporary until you specify a new Level3 or a BLANK Level3. A blank will revert back to Level2. If no Level2 then it will revert back to Level1Level3 is entered at design-time using the CanonDance button on the Canons menu.  You will get the animation menu and the next dance/animation you choose will become the Level3 CanonAnimation.  If you exit out without entering a value then Level3 becomes void and  the CanonAnimation will revert back to Level2 or Level1.

For Level3 override of CanonInterval, select the [Groupings] menu then use the MoveSpeed button and enter either:  -1,-1,(interval value) or ,,(interval value)

So then the next Canon selection will use Level3 animation and interval.

When an animation is completed after the specified interval, it will automatically snap back into the previous running animation in perfect sync with the other dancers.  If there was no previous animation then it will go into the ‘standing‘ animation.

Hold/Release/StopCanon

If you press the Hold button on CanonOrders sub-menu then the CanonAnimation will NOT snap back to the previous normal-running-animation and ignores the CanonInterval.  You CAN trigger the synced-return to he previous normal-running-animation by pressing the StopCanon button on the CanonOrders sub-menu. This will Stop the CanonAnimation only.  The Release button returns the CanonAnimation to its previous normal state which takes into account the CanonInterval and returns to the normal-running-animation upon expiration of the CanonInterval

Switch/UnSwitch

Default mode is UnSwitch(ed).  When Switch on enabled, dancers 1-3-5-7-9 perform Select-1 CanonAnimations and Intervals

while  dancers 2-4-6-8 perform Select-2 CanonAnimations and Intervals

———-

NOTE: When the choice is AnimsOnly,  just select any Canon button (i.e. CanonLeft, CanonHome, CanonTurnIn, etc) since there will not be any turns to accompany the Animation.

Forward and Reverse

This button (CanonReverse/CanonForward) toggles the order of the Canon. Either alphabetically (J to R) or reverse-alphabetically ( R to J ).

Targeting

The Target button on the [OPTIONS]–> [EFFECTS] menu will allow you to control which animesh/palettes identified by the letter in the 19th position of the name, will be affected by the Canon.  Be careful to remember to reset this value if you previously set it for some type of effects as it will still apply.  Eight special values exist:

alt1 = jlnpr
alt2 = kmoq
all = jklmnopqr
middle = mnop
ends = jkpq
left = jklm
right = nopq
nor = jklmnopq

You can also specify a range:
j-r
k-q
j-q
r-r

And lastly you can specify specific animesh/palettes:
jklpqr
jkqr
lmnor

The ClearTarget button will reset the Target to the default values with is ‘jklmnopqr’ or ALL of the animesh/palettes.

Anims & Turns

The TurnsOnly button toggles to AnimsOnly. Default is TurnsOnly.

Press TurnsOnly if you want the animesh/dancers to only turn using the CanonInterval.

Press AnimsOnly if you want the animesh/dancers to only animate using the CanonInterval.

Press the Turns&Anims button if you want the animesh/dancers to animate AND turn.

Please note that there is ALSO a TurnDuration (and TurnDurationOverride). Turn durations ALSO exist at all 3 Levels.

TurnDuration should be close to the CanonInterval so that there is enough time to complete the turn before moving onto the next dancer but feel free to experiment for different effects.

NOTE: CanonInterval determines how long the CanonAnimation lasts. Once the interval expires the dancer returns to the previous animation unless Hold was specified..

 

Run-Time

There are equivalent commands for the inborn sequencer that allow you to Select Canon1 or Canon2 as well as perform overrides and specify a target and of course groupRunTime could be considered Level4 because it overrides Level1, Level2, and Level3.

 

Exclusions

You may be wondering what happens when there are conflicts?

CanonTurnIn and CanonTurnOut are restricted to Grouping by HALF or ALTERNATE.  They always work between GROUP X and GROUP Y. They have no function otherwise.   It is the same for non-canon turns.

You can use FlipXY to reverse the Groups in which case X becomes Y and Y becomes X.  To see specific assignments of the 3 groups, X,Y, and Z, press ShowHoverTx button and the last letter of the hover-text will have the GROUP appended.

Well  the 1st restriction is the Controller Name… PE18?-? . The question-marks (where they represent letters J thru R) limit what animesh/palettes can even consider other restrictions  with regards to Canons.

2nd is Targeting which, if failed,  can prevent any Turns associated with Turns&Anims from executing.

3rd is GROUPINGX,Y,Z can further limit Turns which are subject to GROUPING.  Grouping controls Turns and Formations.

While animations are normally restricted by Division, CanonAnimations ARE NOT limited by Divisioning.

Also, be cognizant of how the overrides work as described above as they factor into which animations and intervals will apply.

 

COUPLING

Turn-Ins and TurnOuts and the HALF or ALTERNATE grouping.

By careful formation alignment and Divisioning (i.e. AAAABBBB or ABABABAB), and mirrored or coupled animation selection you can magically switch to a multi-coupled (4×2) dance configuration.  By careful selection of CanonAnimations at the animesh/palette level you can even do coupled-canons.  Of course you can do Junes as well and you can do partial Junes because Junes are dictated by formations which are subject to Grouping. (i.e. an X June or Y June).

And super-advanced, you can control over-lapping Junes that have a dancer or more, in common, rotate in opposite directions.

 

Combinations

Yes you can do a JUNE while doing a Canon.  You can also do a FORMATION change while doing a Canon.

NOTE: It is not uncommon to see some jittering as 1 command is trying to make the dancer move in one direction while another command is trying to make it go in the opposite direction or 90 degrees off.

 

NEW NEW NEW 

Finish

AutoCanon

 

SmartDancer 110 – Philosophy

Thinking about the attraction, to me, of the SmartDancer.

Categories of influence:

Order and Chaos

I think that the satisfaction of SD (SmartDancer) creation is going from Order to Chaos to Order.  Sort of emulating the universe cycle. Creation, Randomness, Destruction.  Or in human life-cycle, Birth, Life, Death where Birth and Death have the fewest choices so they have the most order.

SD allows for order and symmetry and then by using Grouping and Divisioning, with different lengths of animations, you get ever-changing chaos sometimes interwoven but it automatically returns to order once a specific time has expired.

Space

There are 3 ways to think about use of space.
Global
Local
Static

Global is how dancers (animesh and/or avatars) appear in relation to one another. This is accomplished using Formations.  But then it is taken to another level with the addition of Junes (form rotation) and Canons (staggered turns and animation starts). Then it can be taken to another level yet by using targets that vary who in the global formation will act upon turns and animation. Compound that with Grouping and you get an infinite offering of possibilities not to mention dynamic run-time options.

Local is how dancers change in place without relationship to others. This has to do with Turns and variations in turn speed. And also the animations (dances, poses, AOs, etc) that they choose to do as well as WHEN they choose to use them.

Static relates to the appearance of a dancer without regard to any motion. Paramount is if they are there are not. SD allows you to Vanish or Appear or FadeIn or FadeOut an Animesh dancer. Since animesh do not have mandatory name tags this effect is more dramatic and convincing.  You can also change color, transparency, and glow of not only animesh but of clothing and other links.

Sectioning

If you asked me what makes SD unique, I would have to say that:

#1 is that it syncs ANIMESH. This means that you would be more inclined to do group dancing because you are not relying on others being present.

#2 Sectioning (see below)

#3  is you can try different functions in various ways as it sections off dancers moves and animations  DYNAMICALLY at run-time There are 3 key ways.

Grouping – there are 2 groups we call X and Y.  There are 2 ways to assign dancers to  X and Y. By HALFing and by ALTERNATing.  You can also FLIP those with one button or command. This assignment can be done dynamically at design time and run time.  Grouping is how we assign formation moves.  So we can assign a formation to all the dancers or to just half of the dancers

Divisioning – While Grouping is a way we assign formation moves to dancers, Divisioning is how we assign animations to dancers. This allows for many more permutations of formations moves and animations.  You can choose up to 9 predefined divisions by you at design-time..or…an infinite amount at run-time.   There are 4 divisions (A,B,C, and D).  An example of a Division might be #AAAABBBBC

Targeting – This sectioning offer allows you to specify any combination of the up to 9 dancers by letter to receive special effects like transparency, coloring of animesh body or coloring of animesh clothing, or adding differing amounts of glow.  BUT..the most amazing feature of targeting is the ability to determine which dancers will take part in a Canon (break-out soloing).  Examples might be:

j-r
n-q
jklm
alta is shorthand for:  aceg
altb is shorthand for: bdfh

Independence

This newly revised edition of SD now runs autonomously without the need for the Artiste Performance HUD.  SD’s heartbeat is the SmartDancer Controller.  So using SD  only requires a newer version of the Artiste Anchor and of course scripts and ncs that go inside the animesh, or avatar-palette, if using avatars.

Modes

There are 2 modes. Design-Time and Run-Time.

For Design-Time, you can press buttons and experiment, making things happen instantly by using the SmartDancer Controller and its integrated menu system.

Diagnostics

Then you can use SD’s 2 diagnostic tools, DumpSettings for snapshots of settings in time as well as DumpLog that sends you a list, in order, of the last so-many commands in sequence that you pressed.

Then for Run-Time, we have the new Embedded Sequencer.  You create a nc of commands, parameters, and durations much like the typical dance ncs used only you have more options than just dance names and times.  So SD can run independently and alone on its own or it can be triggered by the Artiste Performance HUD or triggered by chat commands send by other choreography systems.

Uniqueness

I think what sets SD apart from other systems is that you can experiment and try things on the fly without the necessity for using ncs.  You can choose, formations, dances, groupings, divisions, turns, junes, canonstargets, target specific dancers, change times on the fly, make dancers appear or vanish, change animesh colors and clothing colors. You can also use multiple SD controllers to perform complex advanced tasks like overlapping Junes.

After some reflection, probably the most immediately noticeable unique feature of the SmartDancer is the ability to do formations with Animesh.

Times

There are 3 types of times that you can specify on ncs OR dynamically change and assign at design-time.

MoveSpeed – this is how long it takes for a formation to transition form an existing formation to a new formation. This ALSO dictates how long a June lasts.

TurnSpeed – this is how long it takes for an individual animesh/avatar turn to complete. (Max. of 5 seconds).

CanonInterval – the interval of time between staggered turns and/or canon animations between multiple animesh/avatars. It is very important to distinguish between normal animations and canon-animations. This allows for contrast as well as order-chaos-order because each dancer returns to the normal animation once they complete their CanonAnimation.  ALSO, know that each animesh/avatar can be assigned their own unique animation using their embedded nc.  ALSO, know that you can change an overriding CanonAnimation on the fly  so you can conveniently test out different animations for the CanonAnimation cycle. And it bears repeating that you can TARGET which dancers will participate in the Canon other than the default of ALL.  This can be changed on the fly.

Filtered Dance Selection

Though you are limited to 8 dances per page, we have 5 dance groups so you can filter the dances to choose from by: ALL, Dances,, Poses, AOs, Favorites, Other. And currently you can have up to 64 dances (8 pages of 8);  You tag the dances to the group you want at same time as you specify duration.

Dance Selection is another factor when using SD.  The more space the dance consumes, the more interactive the dance groups can become. Experiment.

CanonAnimationOverride

This lets you change the animation done when doing canons dynamically at design-time or run-time.  Canon animations are a way for dancers to solo a new dance in turn while the other dances to a different same dance in the background.

Double-Coupling

This late subtle feature provides the ability to send 2 simultaneous actions at the same time.

For Animations we can send 2 different animations sent to 2 different divisions at the same time.  This greatly aids in the ability to sync couples-dancing when used in conjunction with the ALTERNATE grouping and aligned using the left/right alignment features of the special SmartDancer Poseball.  This new command is Dance2

For Formations, we can send 2 different formations at the same time. One applies to  dancers from A to I, the other formation applies to dancers J-R.  And these can be limited by Grouping and the June Targeting

For Juning, we can effect 2 different June rotations by using the new JuneAI  offset command.  This creates a 2nd ghost controller for dancers AI to rotate around at the same time as J-R

 

 

SmartDancer 109 – Registering VS Activation

Important to understand the differences and how they appear.

REGISTERING – This is a button on the SmartDancer Controller.  Pressing it sends THAT controllers formations to the matching animesh/avatars.

ACTIVATION – This determines WHICH SmartDancer Controllers will receive and respond to commands from the Artiste Performance HUD via autofx commands.

Activation NOW happens AUTOMATICALLY when you REGISTER.  It makes THAT controller that you pressed the Register button on, the ACTIVE Controller and makes all other controllers INACTIVE.

A controller CANNOT be operated locally/manually if it is NOT ACTIVE.  This helps avoid confusion as to which controller is in charge at any one time. It is smart to REGISTER a given controller when you want to use it. It will deactivate all other controllers. You can see which controller is active on the controller menu.

You normally ACTIVATE a controller thru the autofx command SD=ID? where ? is a number between 0 and 9 (or more?);

RESETTING a controller AUTOMATICALLY makes it ACTIVE.  Yes, you could have more than 1 Controller ACTIVE at the same time, if that is your intention but the last one RESET becomes the one that sends formations to avatar/animesh so I am not sure what the value would be in that.  And sending autofx commands would be confusing.  So its best to REGISTER a specific controller after you have reset 1 or more controllers.

SENDING an ID of zero  (i.e.   1,SD=ID0)  sends subsequent autofx  SD commands to ALL Controllers whether they are active OR inactive

You Set a controllers ID using the *channels nc in the controller.

ActivationId,1
UseTallBots,off
EnforceSameHeight,off
CanonIntervalOverride,2
TurnDurationOverride,5
ChannelForSmartDancerFollower,-897434670
ChannelForFromArtisteHUD,-722322179
ChannelForIntraScriptPrepForm,-953186463
END

Yes, you can have the SAME ActivationID on multiple controllers, if that is your intent.

 

SmartDancer 108 – Preparables vs Immediates

A Preparable is a SmartDancer Command that happens in preparation for a FORMATION move command.

An Immediate   is a SmartDancer Command that executes immediately and makes use of the most previous Preparable commands.

Preparable commands include:

1 – Grouping commands – HALF, ALTERNATE, NO_DIVISION – These specify if subsequent commands will target ALL or HALF of the avatars/animesh (or combinations thereof) that are present.

2 – Send commands – SendA, SendB, SendC – These command determine which half of a division (assuming there is a HALF or ALTERNATE specified) that subsequent IMMEDIATE commands will affect.  SendC directs subsequent commands to affect ALL avatars/animesh.

3 – MoveSpeed command – This allows for DYNAMIC change of move speed for FORMATION moves only. It DOES NOT apply to TURNS, JUNES, or CANONS.  The higher the number, the slower the move.  This value is initialized on the *formations nc using the DDMoveTau entry.  Please be aware that any re-Registering of a controller will reinitialize this value to its DDMoveTau,3.5 value.  Of course you can change this initial value.

For dynamic run-time adjustments use the following format:
SD=SPEEDxx.x (xx.x=duration of formation or june)

4 –FlipAB – this command only affects HALF and ALTERNATE divisioning.   It reverses the assignment of the A and B assignments.

– SetJunes – SetJuneRight, (clockwise), SetJuneLeft (counter-clockwise – The ‘Set‘ word is meant to remind people that the JUNE is not immediate but in preparation for the next formation move.  It is recommended that you not use SetJuneHome in production as the results are a straight-line and not what you would expect.  This may be modified at a later date.

UPDATE 01-23-21: SetJuneRight and SetJuneLeft now execute immediately if AutoJune is OFF, which is the default.  They use the last selected formations for J-R *formations nc and A-I *expansions nc

 

6 – CanonReverse and CanonForward – These commands set the direction of susequent CANON operations.

Forward is default and operates in alphabetical order (i.e.  ArtistePalette_01_A thru ArtistePalette_01_R) 

Reverse operates in reverse alphabetical order (i.e.  ArtistePalette_01_R thru ArtistePalette_01_A) 

7 – Turns Only – this is a toggle whose status is displayed in the menu. Either TurnsOnly or Turns & Anims. This command says that subsequent CANON operations will suppress any execution of the  specified CANON animation, if one exists.  It is specified in the *smartdancer nc inside an animesh or palette.  Example:  CanonAnimation,KatananLow.

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

Immediate commands include:

1 – Formations – self-explanatory

2 – TurnsTurnLeft, TurnRight, TurnIn, TurnOut, TurnHome

3 – CanonsCanonLeft, CanonRight, CanonTurnIn, CanonTurnOut, CanonHome

4 – AnimateOnly – this executes the CanonAnimation immediately taking into consideration the CanonInterval but excludes  normal turns  associated with a Canon.

5 – SemisSemiLeft  & SemiRight – These 2 June operations perform 2 Junes in a row using the last/current formation.  Interestingly enough, the dancers maintain the facial direction.  So it is essentially a 180 June vs the normal 90 degree SetJuneLeft/SetJuneRight

NOTE: TurnHome and CanonHome commands STOP the CanonAnimation.

Also, it is suggested that  you use at least a priority-4 animation for the DefaultSitAnim,Pray Bow in the *palette nc in the Artiste Palette