This was a series of Animation Tools requested and envisioned by Ryan Goodwin, of the ArenaNet cinematics department. The python/pymel code is original, but oftentimes the functionality was the same as or similar to mel scripts and tools he had encountered in the past. This web-page is the documentation for the tools.

ArenaNet Cinematics Tools/Shelf

Mouse Tools

Tween Dragger Tool: Hotkey and Mouse controlled

This is a Hotkey-only tool, to help with creating keys and tweening between other poses. Values are adjusted by dragging the mouse in the 3d viewport (not the graph editor) while the hotkey is held down. It is recommended that the Hot commands for mouse-dragger-context tools be set up on a single key, so the press and hold turns it on, and the release turns it off (and deletes it). This should prevent it from interfering with other context tools. The mouse sensitivity value can be manually adjusted by changing it in the command. isClamping can be set to isClamping=False to overshoot the values.

The hotkey press command should be:
my.core.codex.runTool(my.core.codex.get('Cinematics_TweenDragger'), sensitivity=.001, isClamping=True)

The hotkey-release should be:
my.core.codex.runTool(my.core.codex.get('Cinematics_TweenDragger_Delete'))

 

 

Reset Dragger Tool: Hotkey and Mouse controlled

This is a Hotkey-only tool, to help with creating keys and tweening between other poses. Values are adjusted by dragging the mouse in the 3d viewport (not the graph editor) while the hotkey is held down. It is recommended that the Hot commands for mouse-dragger-context tools be set up on a single key, so the press and hold turns it on, and the release turns it off (and deletes it). This should prevent it from interfering with other context tools. The mouse sensitivity value can be manually adjusted by changing it in the command. isClamping can be set to isClamping=False to overshoot the values.

The hotkey press command should be:
my.core.codex.runTool(my.core.codex.get('Cinematics_ResetDragger'), sensitivity=.001, isClamping=True)

The hotkey-release should be:
my.core.codex.runTool(my.core.codex.get('Cinematics_ResetDragger_Delete'))

 

 

Shelf Tools
Tools currently on the ae_cinematics shelf in Maya 2018, and on the AN_Cinematics shelf in Maya 2014 (some tools may not be supported). This is a series of quick tools requested by the Cinematics Team for faster animation production in Maya.

 

Switch Between Camera Views (orthographic)

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_SwitchCameraView'), 'orthographic')

 

Switch Between Camera Views (perspective)

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_SwitchCameraView'), 'perspective')

 

Switch Between Camera Views (all)

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_SwitchCameraView'))

 

Toggle Lock Viewport Refresh

This tool will toggle the viewport to be locked/unlocked, or suspend refresh. The idea is that if you are working in the graph editor and don't need to see your updates, you can disable the viewport refresh to improve performance.


There are a couple of hotkey options:
To have a hotkey that just toggles between locked and unlocked on each key press, set it up with: my.core.codex.runTool(my.core.codex.get('Cinematics_LockViewportRefresh'))

To have a hotkey that is press and hold to lock viewport, then unlock viewport on release, set it up with these two commands:
The On Press Command for the key should be: my.core.codex.runTool(my.core.codex.get('Cinematics_LockViewportRefresh'),isKeyPress=True, isLocking=True)

The On Release Command for the key should be: my.core.codex.runTool(my.core.codex.get('Cinematics_LockViewportRefresh'),isKeyPress=True, isLocking=False)

 

Swap Axis Orientation

This will swap the Axis of Orientation of the current tool between 'Object' and 'World' for the Move and Scale tools, and between 'Object' and 'Gimbal' for the Rotate tool.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_SwapAxisOrientation'))

 

Toggle Nurbs Visibility (for showing/hiding rig controls)

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_ToggleShowNurbs'))

 

Select Translate Curves

If the Graph Editor is open, then for each object selected, this will select all the Translate Curves individually by axis (X, then Y, then Z), then all Translate axis at once (XYZ). If you already have some of the same axis selected, it will try to first select all of them before moving on to the next axis type.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_selectGraphEditorAttributes'), ['translateX', 'translateY', 'translateZ'], selectByPassedAttributes=True)

 

Select Rotate Curves

If the Graph Editor is open, then for each object selected, this will select all the Rotate Curves individually by axis (X, then Y, then Z), then all Translate axis at once (XYZ). If you already have some of the same axis selected, it will try to first select all of them before moving on to the next axis type.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_selectGraphEditorAttributes'), ['rotateX', 'rotateY', 'rotateZ'], selectByPassedAttributes=True)

 

Select Scale Curves

If the Graph Editor is open, then for each object selected, this will select all the Scale Curves individually by axis (X, then Y, then Z), then all Translate axis at once (XYZ). If you already have some of the same axis selected, it will try to first select all of them before moving on to the next axis type.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_selectGraphEditorAttributes'), ['scaleX', 'scaleY', 'scaleZ'], selectByPassedAttributes=True)

 

Select Similar Curves

If the Graph Editor is open, then for each object selected, this will select all the Curves for the same attributes as those already selected. Multiple axis and attributes can be selected at once, depending on what is already selected.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_selectGraphEditorAttributes'), [], selectByPassedAttributes=False)

 

Select Keys on Current Frame

This tool will select any keys on the current frame, +- a variance of .4 frames. Time variance is adjustable if hotkeyed. Current Selection will be lost.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_SelectCurrentFrameKeys'), timeVariance=.4, addToSelection=False)

 

Add To Selection Keys on Current Frame

This tool will select any keys on the current frame, +- a variance of .4 frames. Time variance is adjustable if hotkeyed. The current frame keys will be added to your current selection.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_SelectCurrentFrameKeys'), timeVariance=.4, addToSelection=True)

 

Select In-Tangents

For any keys, curves, or tangents that are selected, selection will be changed to the in-tangents of each key.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_SelectTangents'), selectInTangent=True, selectOutTangent=False)

 

Select Out-Tangents

For any keys, curves, or tangents that are selected, selection will be changed to the out-tangents of each key.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_SelectTangents'), selectInTangent=False, selectOutTangent=True)

 

Select All-Tangents

For any keys, curves, or tangents that are selected, selection will be changed to all the tangents of each key.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_SelectTangents'), selectInTangent=False, selectOutTangent=True)

 

Toggle Between Unified and Broken Tangents

This will toggle between unified and broken tangents on selected keys, tangents or curves.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_ToggleTangentType'))

 

Toggle Between Spline, Linear and Flat Tangent Shapes

This will toggle between spline, linear and flat tangents on selected keys, tangents or curves.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_ToggleTangentShapes'))

 

Delete Keys on Current Frame

This tool will delete any keys on the current frame, +- a variance of .4 frames. Time variance is adjustable if hotkeyed. If keys are selected, it will only delete the selected keys, regardless of current frame.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_DeleteCurrentFrameKeys'), timeVariance=.4)

 

Delete Redundant Keys

If a series of selected key on a curve all have the same value, the middle keys will be deleted. Note: only keys with level tangents (value 0) will be deleted.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_DeleteRedundantKeys'))

 

Manual Key Reduction

This tool looks at the selected keys and deletes any un-selected keys within the selected range. It will also set the tangents of keys inside the range to 'auto' (but it will not change the end keys).

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_manualKeyReductionTool'))

 

Copy Paste for Drag (maintaining selection)

This tool will copy and paste selected keys, offsetting them from the source by .5 frames, while maintaining the selection of all pasted keys. The purpose is to make it easier to drag multiple keys (even on the same curve) after pasting.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_CopyPasteKeys'))

 

Multi-Copy Keys Tool

This button Launches the Multi-Copy Keys Tool. Documentation for the tool is on this page: Multi-Copy Keys Tool

 

Scale Keys Tool

This button Launches the Scale Keys Tool. Documentation for the tool is on this page: Scale Keys Tool

 

Ease Keys Tool

This button Launches the Ease Keys Tool. Documentation for the tool is on this page: Ease Keys Tool

 

Simplify Keys Slider Tool

This button Launches the Simplify Keys Tool. Documentation for the tool is on this page: Simplify Keys Slider Tool

 

Add Noise/Wave Tool

This button Launches the Add Noise/Wave Tool. Documentation for the tool is on this page: Add Noise/Wave Tool

 

Hold Animation Tool

This button Launches the Hold Animation Tool. Documentation for the tool is on this page: Hold Animation Tool

 

Hold Over Sub-Frame Tool

This tool adds stepped keys on the sub-frame between the previous frame and the current frame. This is to "staple" the curve in place between frames, so there are no in-game interpolation errors between shots.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_SetHoldOverSubFrame'))

 

Reset Channels-Translate

This will zero out the values of the translate attributes on the current frame. Suggestions are welcome for a better icon.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_ResetChannels'), 'translate')

 

Reset Channels-Rotate

This will zero out the values of the rotate attributes on the current frame. Suggestions are welcome for a better icon.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_ResetChannels'), 'rotate')

 

Reset Channels-All

This will reset the values of all keyable attributes on the current frame. Rotate and Translate values will be set to 0.0, Scale will be set to 1.0, and Visibility will be set to 'True'. Suggestions are extremely welcome for a better icon.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_ResetChannels'))

 

Zero Key Layer

This does exactly the same thing as the Zero Key Layer on the anim layers tab on the bottom of Maya's Channel Box/Layer Editor panel. It will set a zero key for all keyframe-able attributes on an animation layer.

The tool can be hotkeyed with the command: my.core.codex.runTool(my.core.codex.get('Cinematics_ZeroKeyLayer'))

Alternately, the tool can be setup to keyframe only attributes that have keys on the selected layer with the hotkey command: my.core.codex.runTool(my.core.codex.get('Cinematics_ZeroKeyLayer'), isKeyingAllAttributes=False)