This is the documentation created for this Tool:

ArenaNet Cinematics Scale Keys Tool

Intro

The intended use of the tool is to Scale Keys relative to a pre-selected pivot point on the graph editor. The Damping Tool will interpolate keys to an average value over time: either from the average value, or to to the average value, based on the slider. All values in the tool are stored in global variables, so, if the values are set, the tool does not need to be open and the button commands can be accessed through hotkeys.


If Needed, the tool can be launched by the Arch Hotkey command: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeysTool'))

 

"Scale:"

This Group box consists of an Amount Text Box and slider, and 4 buttons. The 4 buttons determine whether to scale up or down, on either the Time or the Value axis. The scale buttons will look at "Scale Pivot From" section and choose a pivot point based on the selected checkbox. It also will look at the "Adjust Curves" Checkbox and either scale from 1 pivot point per curve (if "Separately" is checked, or from 1 pivot point overall (if "Together" is selected.)

Amount Slider: chooses the amount to scale- currently from 0.0 to 2.0.

Time Down Button: will Scale the keys down on the time axis (generally left, towards zero, depending on Pivot). Can be hot-keyed with command: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_TimeDn'))

Time Up Button: will Scale the keys Up on the time axis (generally right, away from zero, depending on Pivot). Can be hot-keyed with command: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_TimeUp'))

Value Up Button: will Scale the keys Up on the value axis (generally up, depending on Pivot). Can be hot-keyed with command: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_ValueUp'))

Value Down Button: will Scale the keys Down on the value axis (generally down, depending on Pivot). Can be hot-keyed with command: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_ValueDn'))

Flip Key Values: will flip the curve on the value axis, based on the the Pivot Point. Can be hot-keyed with command: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_FlipValues'))

Note: There is a fudge factor that has been added to the buttons to flip the scale axis, depending on the pivot selection, in an attempt to make it more intuitive. (ie time scales up towards the right and down to the left if the pivot is on either the previous or the next key). If a scale up/down axis needs to be flipped, let tech art know and we'll fix it.

 

"Scale Pivot From:"

This series of check boxes allows the animator to choose the point on the graph where the Scale will be centered from. Both key time and key values are considered for each pivot. If "Adjust Keys: Separately" is checked (see next section) it will return a different pivot for each curve of each selected object, otherwise, it will return one pivot overall.

Previous Key, Next Key, First Key, and Last Key are all determined by Time. These will also scale from the value of these points. For the time determined pivots, if there is more than one key at that point in time, it will choose the point with the value closest to 0. First Key is the earliest in selection, Last Key is the latest.

Top and Bottom are determined by the highest value and lowest value, but will also scale from the time of those points.

Middle is determined by the average of all the times and the average of all the values of the selected keys.

The Manual Pivot Pt has two text-boxes-- the first is the Time to scale from on the graph, the second is the Value to scale from on the graph. Defaults to 0, 0.

The Buffer Curve setting will ignore the "Adjust Curves:" check-boxes and create a pivot point of every key on the buffer curve to scale from. If the Buffer Curve checkbox is toggled and no Buffer curve has been created, the pivot will default to the Manual Pivot Pt values. If the selected keys match the position and time of the buffer curve, nothing will happen. If the keys change order in time from the keys in the buffer curve, the indices will swap to match, possibly causing unexpected results.

 

Center Line Between First and Last Key is also determined by Time, but it enables you to Scale or Dampen Values from a line running through the keys, extending from the first key to the last key (see illustration below):

 

"Adjust Curves:"

These Checkboxes determine whether the tool should operated on each curve independently or on all curves and keys combined. In the case of Scale, the "Seperately" toggle will create a scale-from pivot point for each curve and in the case of damping will dampen each curve to an average of just the selected points on that curve.

 

"Damping:"

The Damping Tool Interpolates the values of the keys to the Pivot defined in the "Scale Pivot From:" and "Adjust Curves:" checkboxes, This can be done on a per-curve basis to separate averages, or all curves at the same time to one single average for all of them (shown below). If Buffer Curve checkbox is toggled and no Buffer curve has been created, the pivot will default to the Manual Pivot Pt values.

Dampen/Exaggerate Selected Keys Button: will Scale the keys over time to the value of the selected pivot.

Can be hot-keyed with command: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_Dampen'))

 

Examples (Multiplier set to 0.0):

 

Additional Hotkeys:

Change to next/previous "Scale Pivot From:" checkbox: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_NextPivot'), nextValue=1) use -1 for previous.


Change to next/previous "Adjust Curves:" checkbox: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_NextCurve'), nextValue=1) use -1 for previous.


Scale Amount Left Button: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_ScaleSliderL'), stepValue=.025)


Scale Amount Right Button:
my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_ScaleSliderR'), stepValue=.025)


Damping Position Left Button: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_DampSliderL'), stepValue=.025)


Damping Position Right Button: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_DampSliderR'), stepValue=.025)


Damping/Exaggerate Multiplier Left Button:
my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_DampMultiSliderL'), stepValue=.025)


Damping/Exaggerate Multiplier Right Button: my.core.codex.runTool(my.core.codex.get('Cinematics_ScaleKeys_DampMultiSliderR'), stepValue=.025)