RE:JEMS-Alter is a Blender add-on designed to simplify animation keyframes, including those from motion capture (mocap) data, resulting in smoother animations and smaller file sizes. It utilizes a Bezier curve fitting algorithm that intelligently adjusts control points to fit a curve to the original keyframe data. The algorithm adapts to the number of input points, effectively providing the functionality of Visvalingam-Whyatt within the curve fitting process.
RE:JEMS-Alter also provides an option to use the Visvalingam-Whyatt algorithm for initial keyframe reduction, and it includes an outlier detection mechanism to enhance the robustness of the simplification process, which is particularly useful for cleaning up raw mocap data. You can control the degree of simplification through various parameters, making it a versatile tool for animators.
Note: The name "JEMS" in RE:JEMS-Alter is not an acronym but simply a name chosen for this project.
- Bezier Curve Fitting Algorithm: Efficiently simplifies keyframes by fitting a Bezier curve to the animation data.
- Visvalingam-Whyatt Simplification: Option to pre-process keyframes using the Visvalingam-Whyatt algorithm for initial reduction.
- Outlier Detection: Identifies and optionally removes outlier keyframes, which is especially helpful for cleaning mocap data, to improve fitting accuracy.
- Bone Whitelist: Exclude specific bones from simplification, preserving their original animation data.
- Adjustable Parameters: Fine-tune the simplification process with parameters like:
- VW Tolerance: Controls the simplification level of the Visvalingam-Whyatt algorithm.
- Error Threshold: Determines the desired accuracy of the Bezier curve fit.
- Max Iterations: Sets the maximum number of iterations for the algorithm.
- Initial Learning Rate: Controls the initial step size for control point adjustments.
- Outlier Threshold: Sets the sensitivity for outlier detection.
- User-Friendly UI: Integrates seamlessly into Blender's UI with a dedicated panel in the 3D View sidebar.
-
Download the Repository: Download the RE:JEMS-Alter repository as a ZIP file and extract it to a suitable location on your computer.
-
Run
zip_addon.bat: Navigate to the root directory of the extracted repository (therejems_alter_projectfolder) and double-click thezip_addon.batscript. This will create arejems_alter.zipfile in theoutputfolder. -
Install in Blender:
- Open Blender and go to Edit > Preferences > Add-ons.
- Click the Install button.
- Navigate to the
outputdirectory inside therejems_alter_projectfolder, select therejems_alter.zipfile, and click Install Add-on.
-
Enable the Add-on: Check the box next to "RE:JEMS-Alter" in the add-on list.
-
Select an Armature Object: Ensure that the active object is an armature with animation data, which could be from motion capture.
-
Choose an Action: In the RE:JEMS-Alter panel (found in the 3D View sidebar under the "JEMS Tools" tab), select the animation action you want to simplify from the "Select Action" dropdown.
-
Adjust Parameters (Optional):
- Use Outlier Detection: Toggle outlier detection on or off. This is particularly useful for raw mocap data.
- Outlier Threshold: Adjust the sensitivity of the outlier detection.
- VW Tolerance: Set the desired tolerance for Visvalingam-Whyatt simplification (if used).
- Error Threshold: Modify the target accuracy for the Bezier curve fit.
- Max Iterations: Change the maximum number of iterations for the algorithm.
- Initial Learning Rate: Fine-tune the initial learning rate.
-
Manage Bone Whitelist (Optional):
- Go to the "Bone Whitelist" subpanel.
- Use the eyedropper to select bones in the 3D viewport or manually type their names.
- Add bones to the whitelist to prevent them from being simplified. This can be useful if certain bones' mocap data needs to be preserved without any changes.
-
Simplify Keyframes: Click the "Simplify Keyframes (RE:JEMS-Alter)" button.
-
New Action Created: A new action named "Simplified_<original action name>" will be created and assigned to the armature. This new action contains the simplified keyframes.
The RE:JEMS-Alter add-on employs a multi-stage pipeline for keyframe simplification:
-
Outlier Detection (Optional): If enabled, the add-on detects and removes outlier keyframes using a median-based approach. This is useful for cleaning up noisy motion capture data.
-
Visvalingam-Whyatt Simplification (Optional): If a VW Tolerance is specified, the Visvalingam-Whyatt algorithm reduces the number of keyframes based on their contribution to the overall shape of the animation curve.
-
Bezier Curve Fitting:
- The algorithm initializes control points for a Bezier curve, potentially using the simplified points from the previous step or directly from the original keyframes if no simplification is applied.
- It iteratively adjusts these control points to minimize the error between the generated Bezier curve and the original (or simplified) keyframe data.
- The number of points at which the Bezier curve is evaluated (t-values) is dynamically adjusted based on the number of input points, effectively integrating a Visvalingam-Whyatt-like approach into the fitting process.
- The algorithm stops when the maximum error falls below the specified error threshold or the maximum number of iterations is reached.
-
Keyframe Placement and Handle Adjustment: New keyframes are placed based on the simplified data, and Bezier handles are adjusted to approximate the shape of the fitted curve.
- The original animation action is preserved. RE:JEMS-Alter creates a new action with the simplified keyframes.
- The add-on is designed for armatures with animation data, including motion capture data. Using it on other object types may not produce the desired results.
- Experiment with the parameters to achieve the best balance between simplification and accuracy for your specific animation, especially when working with mocap data, which can have varying levels of noise.
- If you have many bones that you don't want simplified, adding them to the whitelist can significantly improve performance by preventing unnecessary calculations.
This project is licensed under the MIT License - see the LICENSE file for details.
Attribution is required if you use or distribute this add-on.
You must clearly state that the add-on was created by:
- TearTyr / L / Meri
Please include a link to the original repository or project page if available.
If you modify the add-on, you must indicate that changes were made and provide attribution to the original authors.
- TearTyr / L / Meri
1.2.8
Blender 4.0+ and later.