$0+

Maya : Keyframe Reduction

35 ratings
I want this!

Maya : Keyframe Reduction

$0+
Robert Joosten
35 ratings

Untested for Maya 2020
Unsupported for Maya 2022 ( PY3 )


Keyframe reduction for Maya using least-squares method.

Video
Documentation
Github

Installation

Extract the content of the .rar file anywhere on disk.

Drag the keyframeReduction.mel file in Maya to permanently install the script.

Usage

A button on the MiscTools shelf will be created that will allow easy access to the ui, this way the user doesn't need to worry about any of the code. If user wishes to not use the shelf button the following commands can be used.

The ui responds to the current selection where it finds all of the suitable animation curves for reduction. You will be able to filter the animation curves based on the plug it is connected to. This will make it easier to target exactly the curves you want to reduce.

After an animation curve is reduced the reduction percentage will be printed to the console. This can give you an idea if you would like to increase or decrease the error rate to get the desired results.

UI

Display the UI with the following code.

    import keyframeReduction.ui
    keyframeReduction.ui.show()

Command Line

Command Line

Use the KeyframeReduction class on individual animation curves.

    from keyframeReduction import KeyframeReduction
    obj = KeyframeReduction(pathToAnimCurve)
    obj.reduce(error=0.1)

Options

error

The maximum amount the reduced curve is allowed to deviate from the sampled curve.

step

The step size to sample the curve.

weightedTangents

Reduce curve using weighted tangents, using weighted tangents will result in less keyframes but is a bit slower to calculate.

tangentSplitAuto

Automatically split tangents based on the angles of the sampled curve and deviation of those angles from the mean.

tangentSplitExisting

Use existing keyframes that have split tangents as a split tangent point.

tangentSplitAngleThreshold

Split tangents based on an angle value threshold.

tangentSplitAngleThresholdValue

Split tangent angle threshold value.

Note

The fitting algorithm is ported from Paper.js - The Swiss Army Knife of Vector Graphics Scripting.

$
I want this!
Size
72.1 KB

Ratings

4.7
(35 ratings)
5 stars
88%
4 stars
6%
3 stars
0%
2 stars
0%
1 star
6%
Powered by