Skip to content

Releases: david-cattermole/mayaMatchMoveSolver

mayaMatchMoveSolver-v0.3.8

20 Oct 05:07
Compare
Choose a tag to compare

Release v0.3.8 is the same as v0.3.7 but with a small bug fix.

Download the archive file for your operating system and Maya version, and follow the INSTALL.md instructions.


Below is a list of the bug fixes in v0.3.8.

Bug Fixes

  • (#163) Ensure the Solver UI root frames "Set Auto" button sets at least 2 root frames.

Known Issues

  • In Maya 2016, the Solver UI disables selection of the Attributes - the cause is unknown.
  • Solving per-frame animated attributes fails on Maya 2017 - it is recommended to use Maya 2018+
  • Solver engine can become slow with many attributes.
  • New v0.3.0 default values will not be used until a new Collection is created. Delete your previous Collection and create a new Collection using the Solver UI > File > New Collection menu item.
  • The Maya viewport is refreshed during solving to force Maya to evaluate all nodes in the solve. This causes slower performance (e.g. 6 seconds verses 30 seconds), but ensures accurate solver results. Users may wish to turn this feature off in the Solver UI > Edit > Refresh Viewport check box.
  • The test suite fails on 3 different solver tests, due to a deviation that is too high, this is intentional and will be fixed in a future version.
  • The test suite fails to run on Maya 2018 with mayapy, the cause is unknown.
  • The mmSolverType command raises an error with certain flags on Maya 2016 for an unknown reason. This problem is specific to Maya 2016, the same command works on Maya 2017+.

mayaMatchMoveSolver-v0.3.7

19 Oct 01:18
Compare
Choose a tag to compare

Release v0.3.7 with new features to improve performance and stability, and with many bug fixes.

Download the archive file for your operating system and Maya version, and follow the INSTALL.md instructions.


Below is a list of the new features, changes and bug fixes in v0.3.7.

New Features

  • (#18) Improved performance of Solver UI update and refreshing (~300% faster).
  • (#160) Add "Set Auto" button to Solver UI Rootframe widget, calculating the root frames based on the currently added Markers.
  • (#138) Automatically add newly created Markers to active Collection.
  • (#77) Print pop-up warning and error messages to the viewport.
  • Add Marker and Attribute "status" column displaying if an object is used by the solver or not.
  • Add "Attribute Tools > Open Graph Editor" shelf menu, to open the Maya Graph Editor.
  • Add "Rename Markers/Bundles" right-click menu option to Object tab in the Solver UI.
  • (#123) Allow custom plug-in transform nodes to be used for cameras.
  • Add -withCameraDirectionRatio flag to maya.cmds.mmReprojection() command.
  • Add output attribute outCameraDirectionRatio to the mmReprojection node.
  • Add documentation to explain how to override the shelf and menus for an individual user, see this page.
  • Add missing documentation for "Sort Outliner Nodes" tool, see this page.
  • (#146) Beta support for Maya 2018 and 2019 on MacOS.

Changes

  • Changed default attributes add to the Solver UI when no attributes are selected in the channel box.
    • Scale X, Y and Z attributes added by default.
  • (#159) Add restrictions on what type of locator is considered a Bundle (all non-translates must be locked and non-keyable).
  • (#153) Changed to short node names in the Solver UI Output Attributes widget.

Bug Fixes

  • Fixed incorrect "Attribute Tools" shelf right-click menu, for the "minimal" shelf type.
  • Fixed bug stopping Duplicate Markers tool from working correctly.
  • Fixed bug in Convert to Screen-Space Transform and Convert to Marker tools, causing small screen-space Y translate offset.
  • Fixed bug in deviation calculation that could cause the plug-in to crash Maya.
  • (#162) Fixed forward slashes in the GUI for 3DEqualizer "Paste Camera" tool.
  • (#161) Fixed incorrect forward slashes in file paths for Maya "Copy Camera" tool.
  • (#153) Fixed incorrect node name queries in mmSolver.api.Attribute.

Changes for Developers

  • Change build directory names, so each OS and Maya version produces a unique build directory name (multiple Maya version builds can happen at once).
  • Added functions to API:
    • mmSolver.api.get_root_frames_from_markers()
    • mmSolver.api.action_func_is_mmSolverAffects()
    • mmSolver.api.SolverAffects()
    • mmSolver.api.Collection.get_attribute_used_hint()
    • mmSolver.api.Collection.get_attribute_used_hint()
    • mmSolver.api.Marker.get_used_hint()
    • mmSolver.api.Marker.set_used_hint()
  • Add mmSolver.utils.event module, used for triggering events that happen in the mmSolver API.
  • Added triggers when events happen in the API; mmSolver.tools.registerevents:
    • EVENT_NAME_MARKER_CREATED
    • EVENT_NAME_BUNDLE_CREATED
    • EVENT_NAME_COLLECTION_CREATED
    • EVENT_NAME_COLLECTION_MARKERS_CHANGED
    • EVENT_NAME_COLLECTION_ATTRS_CHANGED
    • EVENT_NAME_ATTRIBUTE_STATE_CHANGED
    • EVENT_NAME_ATTRIBUTE_CONNECTION_CHANGED
    • EVENT_NAME_NODE_NAME_CHANGED
    • EVENT_NAME_NODE_DELETED
    • EVENT_NAME_MEMBERSHIP_CHANGED
  • Added command maya.cmds.mmSolverAffects to calculate "node affects relationships".
  • Fixed SolverStandard class when calculating root-frames in a non-global way.
  • Added new root frame solving strategy named ROOT_FRAME_STRATEGY_FWD_INCREMENT_VALUE.
    • The solver strategy will solve 3 frames at a time, moving forward in the list.
    • [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] to [[1, 2, 3], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
  • Fixed mmSolver.api.SolverTriangulate() and now no longer breaks.
  • Added one-liners for building and packaging from scratch.
  • By default, the build scripts also create a (.zip or .tar.gz) package ready for release.
  • (Windows MSVC) Stop logger macros from producing MSVC warning C4127.
  • Add UNUSED macro to tell the compiler the variable is not used.
  • (#152) Reduce the amount of C++ compiler warnings.

Known Issues

  • Solving per-frame animated attributes fails on Maya 2017 - it is recommended to use Maya 2018+
  • Solver engine can become slow with many attributes.
  • New v0.3.0 default values will not be used until a new Collection is created. Delete your previous Collection and create a new Collection using the Solver UI > File > New Collection menu item.
  • The Maya viewport is refreshed during solving to force Maya to evaluate all nodes in the solve. This causes slower performance (e.g. 6 seconds verses 30 seconds), but ensures accurate solver results. Users may wish to turn this feature off in the Solver UI > Edit > Refresh Viewport check box.
  • The test suite fails on 3 different solver tests, due to a deviation that is too high, this is intentional and will be fixed in a future version.
  • The test suite fails to run on Maya 2018 with mayapy, the cause is unknown.
  • The mmSolverType command raises an error with certain flags on Maya 2016 for an unknown reason. This problem is specific to Maya 2016, the same command works on Maya 2017+.

mayaMatchMoveSolver-v0.3.7-beta.1

15 Jul 04:24
Compare
Choose a tag to compare
Pre-release

This is a pre-release with experimental support for Maya 2019 on MacOS.
This version is functionally equal to v0.3.6, there are no extra features.

This is for testing only with issue #146.

To install, extract the .tar.gz archive and move the folder and .mod file into your home Maya version preferences "modules" folder:

/Users/<user name>/Library/Preferences/Autodesk/maya/2019/modules

You will need to create the "modules" folder if it does not exist.

Note: The MacOS Finder hides the "Library" folder. To open the Maya preferences folder, open Finder, and use the Go > Go to Folder... menu, then enter ~/Library/Preferences/Autodesk/maya and press "Go".

If there are issues, please comment on the issue #146.

mayaMatchMoveSolver-v0.3.6

05 Jul 22:44
Compare
Choose a tag to compare

Release v0.3.6 fixes bugs, improves UI performance and workflow.

Download the archive file for your operating system and Maya version, and follow the INSTALL.md instructions.


Below is a list of the new features, changes and bug fixes in v0.3.6.

New Features

  • Sort Selected Nodes In Outliner tool for organizing nodes.
  • Average Deviation and Maximum Deviation attributes are now added to the Marker nodes (visible in channel box)
  • Solver UI
    • 'Input Objects' and 'Output Attributes' panes can now be resized (using bar in the middle of panes).
    • #55 When opening the Solver UI, create a new collection if no Collection already exists in the scene.
    • Asks the user for confirmation before deleting a Collection node.
    • Markers show as dark-gray when they are disabled (depending on current frame).

Changes

  • Improved performance of the Solver UI
    • Opening the UI
    • "Validate" and "Solve" buttons
    • Input objects scroll bar
  • Improved performance of solver validation.
  • mmSolver build scripts are now Python 3.x compatible.
  • Reduced Solver UI empty space.
  • Removed the 'Camera deviation' shown in the "Input Objects" pane - it was causing performance slow-downs.
  • Removed unneeded profiling debug logging (for plug-in debugging) - off by default.
  • Updates to the display of overscan values in the Load Marker UI.

Bug Fixes

  • Fixed the Loader Marker UI when the 'User Embedded Overscan' checkbox is unchecked.
  • Re-Fixed annoying selection callback bug - Parenting using the native Maya "p" hotkey failed to re-parent a transform node (fixed in commit 920f0b4).
    • This was originally fixed on some Maya versions in v0.3.5, but this failed on Maya 2017 Linux.
  • Solver UI 'Edit' menu includes new checkboxes for smoothness/stiffness, and fixes for other checkboxes.
  • Fixed the Average Deviation statistic - Deviation of markers when below -1.0 were counted toward average deviation.
  • Fixed solver output for Maya 2018 (and above).
  • Fixed 'Solve Current Frame' shelf button - it now solves the current frame rather than all frames.

Known Issues

  • Solving per-frame animated attributes fails on Maya 2017 - it is recommended to use Maya 2018+
  • Solver engine can become slow with many attributes.
  • New v0.3.0 default values will not be used until a new Collection is created. Delete your previous Collection and create a new Collection using the Solver UI > File > New Collection menu item.
  • The Maya viewport is refreshed during solving to force Maya to evaluate all nodes in the solve. This causes slower performance (e.g. 6 seconds verses 30 seconds), but ensures accurate solver results. Users may wish to turn this feature off in the Solver UI > Edit > Refresh Viewport check box.
  • The test suite fails on 3 different solver tests, due to a deviation that is too high, this is intentional and will be fixed in a future version.
  • The test suite fails to run on Maya 2018 with mayapy, the cause is unknown.
  • The mmSolverType command raises an error with certain flags on Maya 2016 for an unknown reason. This problem is specific to Maya 2016, the same command works on Maya 2017+.

mayaMatchMoveSolver-v0.3.5

13 Jun 17:37
Compare
Choose a tag to compare

Release v0.3.5 contains a bug fix, and some new features.

Download the archive file for your operating system and Maya version, and follow the INSTALL.md instructions.


Below is a list of the new features, changes and bug fixes in v0.3.5.

New Features

Changes

  • Various Documentation improvements have been made.
  • Added a documentation page to help users download the latest version.

Bug Fixes

  • Fixed annoying selection callback bug - Parenting using the native Maya "p" hotkey failed to re-parent a transform node (fixed in commit c87bfd6).
  • Query the SolverWindow class instance failed when the class was valid; now fixed.
  • Sphinx Auto-Doc Mocking has been improved so that UIs now have documentation.

Known Issues

  • Solver engine can become slow with many attributes.
  • New v0.3.0 default values will not be used until a new Collection is created. Delete your previous Collection and create a new Collection using the Solver UI > File > New Collection menu item.
  • The Maya viewport is refreshed during solving to force Maya to evaluate all nodes in the solve. This causes slower performance (e.g. 6 seconds verses 30 seconds), but ensures accurate solver results. Users may wish to turn this feature off in the Solver UI > Edit > Refresh Viewport check box.
  • The test suite fails on 3 different solver tests, due to a deviation that is too high, this is intentional and will be fixed in a future version.
  • The test suite fails to run on Maya 2018 with mayapy, the cause is unknown.
  • The mmSolverType command raises an error with certain flags on Maya 2016 for an unknown reason. This problem is specific to Maya 2016, the same command works on Maya 2017+.

mayaMatchMoveSolver-v0.3.4

23 May 17:36
Compare
Choose a tag to compare

Release v0.3.4 contains the new Attribute Details feature, improvements, and bug fixes.

Download the archive file for your operating system and Maya version, and follow the INSTALL.md instructions.

Special thanks to Silvio and Damian for encouragement and feedback.


Below is a list of the new features, changes and bug fixes in v0.3.4.

New Features

  • #65 Added Set Attribute Details UI
    • Give a minimum and/or maximum value, for each attribute.
    • Give a smoothness and/or stiffness variance, for each attribute.
    • In-depth documentation for Attribute Details is here.
  • #86 Added common Output Attribute modification tools to a Solver UI right-click menu.
  • #29 Added icons for Markers, Bundles and Camera input objects have been added to the Solver UI.
  • #31 The Solver UI will display coloured icons next to the attribute, for the type of attribute (translate, rotate, scale, camera, etc).
  • #136 mmSolver UIs will now raise to the top when the shelf button is pressed.
  • Added automatic Euler Filter after solving; a Euler Filter is applied to all rotation attribute keyframes.

Changes and Improvements

  • Reformatted the default solver print-out mechanism.
    • On Microsoft Windows, mmSolver will now print out solving information to the Output Window.
    • On Linux, the terminal is used (same as previous versions of mmSolver).
  • #28 The mmSolver shelf icons have been improved.
  • #139 Smooth Keyframes tool smoothly blends between selected and non-selected keyframes.
  • #139 Removed the "blend width" from the Smooth Keyframes tool - it is unneeded.
  • #83 Improved the Solver UI selection; nodes in the Solver UI will now be selected from the Maya Outliner.
  • #137 Center 2D tool will now load the mmSolver plug-in when first used.
  • Added new default Hotkeys for mmSolver, including Screen-Z Manipulator, Parenting/Unparenting, and hiding/showing viewport objects.
  • Improved Documentation for many tools, including Screen Space Motion Trail tool.
  • Minor re-arrangement of mmSolver shelf and menus.
  • Improvements to performance and stability when using Maya's Parallel Rig Evaluation mode and evaluating across time.

Bug Fixes

  • #143 Error fixed when using the Verbose logging mode.
  • #140 Fixed Convert Marker when using animated focal lengths tool and improved performance.
  • Fixed bug in Create Controller tool when multiple nodes were selected at once; the constraints were connected to the wrong node names.
  • Default Solver "Lineup" and "Animation" iterations were incorrect set to 1 - now fixed.
  • Will not error when trying to disable/enable the Viewport when Viewport 2.0 is not available due to hardware limitations.
  • Fix bugs when trying to solve with only one root frame or zero root frames.
  • Fixed Duplicate Marker tool's locked attribute states as they are copied to the new Markers.
  • Fixed Load Marker tool "Load Bundle Positions" checkbox value was not used when using "replace" mode.
  • Fixed bug caused by unneeded Parent Inverse Matrix calculation in mmSolver.utils.transform module.
  • Fixed Create / Remove Controller tool, rotate pivots are supported for controlled objects.

New Python Features

  • Added mmSolver.utils.kalmanfilter for a 1D Kalman Filter.
  • Added mmSolver.utils.tools to group general tool utilities; see this.
  • Added mmSolver.api.get_marker_group_above_node function; see this.
  • Added mmSolver.utils.animcurve.euler_filter_plug; see this.
  • Added new VERBOSE logging level; adds lots of information, normally not needed.
  • #142 Added better documentation for the Solver classes; see here.

Deprecated

  • get/set min and max values functions on the mmSolver.api.Attribute class is now deprecated. See documentation for details.
  • Deleted duplicate and unused mmSolver.tools.parenttransform tool.

Known Issues

  • Solver engine can become slow with many attributes.
  • New v0.3.0 default values will not be used until a new Collection is created. Delete your previous Collection and create a new Collection using the Solver UI > File > New Collection menu item.
  • The Maya viewport is refreshed during solving to force Maya to evaluate all nodes in the solve. This causes slower performance (e.g. 6 seconds verses 30 seconds), but ensures accurate solver results. Users may wish to turn this feature off in the Solver UI > Edit > Refresh Viewport check box.
  • The test suite fails on 3 different solver tests, due to a deviation that is too high, this is intentional and will be fixed in a future version.
  • The test suite fails to run on Maya 2018 with mayapy, the cause is unknown.
  • The mmSolverType command raises an error with certain flags on Maya 2016 for an unknown reason. This problem is specific to Maya 2016, the same command works on Maya 2017+.

mayaMatchMoveSolver-v0.3.3

09 Feb 21:40
Compare
Choose a tag to compare

Release v0.3.3 is a bug fix release fixing the Convert to Markers tool.

Download the archive file for your operating system and Maya version, and follow the INSTALL.md instructions.


Below is a list of the changes and bug fixes in v0.3.3.

Changes

  • Python 2.x is now explicit in the build process for mmSolver, before the build process assumed the user only has Python 2.x installed. Python 2.7.x is recommended.

Bug Fixes

  • #134 - Convert to Markers tool had error (released in v0.3.2) that caused the tool to stop working.
  • Bug fixed in mmSolver/ui/uimodel.py that stopped from setting data with the ItemModel class.
  • Fixed a rare naming bug when a name was converted into a valid Maya name.

Known Issues

  • Solver engine can become slow with many attributes.
  • New v0.3.0 default values will not be used until a new Collection is created. Delete your previous Collection and create a new Collection using the Solver UI > File > New Collection menu item.
  • The Maya viewport is refreshed during solving to force Maya to evaluate all nodes in the solve. This causes slower performance (e.g. 6 seconds verses 30 seconds), but ensures accurate solver results. Users may wish to turn this feature off in the Solver UI > Edit > Refresh Viewport check box.
  • The test suite fails on 3 different solver tests, due to a deviation that is too high, this is intentional and will be fixed in a future version.
  • The test suite fails to run on Maya 2018 with mayapy, the cause is unknown.
  • The mmSolverType command raises an error with certain flags on Maya 2016 for an unknown reason. This problem is specific to Maya 2016, the same command works on Maya 2017+.

mayaMatchMoveSolver-v0.3.2

19 Jan 23:02
Compare
Choose a tag to compare

Release v0.3.2 is a bug fix release, with some new features focused on improving loading 2D data into mmSolver.

The Marker loading workflow has been improved, this release includes the ability to use non-uniform overscan (both width and height values), as well as a new feature to avoid the need to manually enter overscan values on a Marker Group node at all. To get the latest features for the Load Marker tool, be sure to upgrade your 3DEqualizer export scripts.

This release also improves the documentation page with updated screen shots and documentation for more tools.

Download the archive file for your operating system and Maya version, and follow the INSTALL.md instructions.


Below is a list of some of the new features, changes and bugs that are fixed in v0.3.2.

New features

  • #133 - Added a new tool to visualise the screen-space position of any Maya transform node, across time.
  • #131 - The Load Markers tool can now automatically compensate for any overscan values used in the Maya camera. The new feature requires the 3DEqualizer project used for 2D tracking to be set to the correct field of view, otherwise it is advised to turn "Use Embedded Overscan" off.
  • #127 - If your workflow requires non-uniform overscan values (for both width and height), you can now set these on the Marker Group node. Note: you do not need to set overscan values if using the "Use Embedded Overscan" feature.

Changes

Bug Fixes

Known Issues

  • Solver engine can become slow with many attributes.
  • New v0.3.0 default values will not be used until a new Collection is created. Delete your previous Collection and create a new Collection using the Solver UI > File > New Collection menu item.
  • The Maya viewport is refreshed during solving to force Maya to evaluate all nodes in the solve. This causes slower performance (e.g. 6 seconds verses 30 seconds), but ensures accurate solver results. Users may wish to turn this feature off in the Solver UI > Edit > Refresh Viewport check box.
  • The test suite fails on 3 different solver tests, due to a deviation that is too high, this is intentional and will be fixed in a future version.
  • The test suite fails to run on Maya 2018 with mayapy, the cause is unknown.
  • The mmSolverType command raises an error with certain flags on Maya 2016 for an unknown reason. This problem is specific to Maya 2016, the same command works on Maya 2017+.

mayaMatchMoveSolver-v0.3.1

27 Oct 11:16
Compare
Choose a tag to compare

Release v0.3.1 is a bug fix release, with a few new features aimed at improving Marker copy/pasting from 3DEqualizer and copying Maya camera data into 3DEqualizer.

Download the archive file for your operating system and Maya version, and follow the INSTALL.md instructions.


Below is a list of some of the new features, changes and bugs that are fixed in v0.3.0.

New features

  • #38 - Added ability to load distorted and undistorted 2D Data with UV Track format (v3).

  • #37 - Updated copy/export Tracks 3DEqualizer tool with compatibility for #38.

  • #15 - Added a default Hotkey Set for Maya 2016+, and added a Hotkey Set Switcher to the shelf. The module (.mod) file now contains a new environment variable MMSOLVER_CREATE_HOTKEY_SET, to control the auto-creation of this hotkey-set. Hotkeys:

    • a key = Hold down and left-mouse-click to activate the mmSolver Marking Menu.
    • c key = Center 2D on Selected
    • z key = Zoom / Pan tool (the same one with Maya)
    • m key = Swap Marker / Bundle Selection
    • n key = Select both Markers and Bundles
  • #105 - Added "Load Mode" to Load Markers tool, allowing to create new markers, or replace selected Markers with 2D data from 3DEqualizer.

  • #126 - Added Copy Camera tool, in Maya, and a Paste tool in 3DEqualizer.

  • #125 - Adjusted the transform utility module for better transform value decomposing and querying, for control over rotation order.

  • Added 'Marker/Bundle rename with metadata', to auto-rename nodes using custom attributes stored on the nodes.

Minor Changes

  • Added utility function to get image planes.
  • Changed Solver UI to show Frame Deviation by default.

Bug Fixes

  • Changed Smooth Keyframes tool to undo all keyframes in a single CTRL+Z.
  • Get image size from coverage attr of image plane, not camera.
  • Add missing BUILD_* flags to cmake, to allow fast copying of Python files during development.
  • Make usage of Qt.py to be compatible with v1.1.0.b7, for Solver UI.
  • mmSolver.utils.camera.get_camera incorrectly considered a default primitive sphere to be camera.

Known Issues

  • Solver engine can become slow with many attributes.
  • New v0.3.0 default values will not be used until a new Collection is created. Delete your previous Collection and create a new Collection using the Solver UI > File > New Collection menu item.
  • The Maya viewport is refreshed during solving to force Maya to evaluate all nodes in the solve. This causes slower performance (e.g. 6 seconds verses 30 seconds), but ensures accurate solver results. Users may wish to turn this feature off in the Solver UI > Edit > Refresh Viewport check box.
  • The test suite fails on 3 different solver tests, due to a deviation that is too high, this is intentional.
  • The test suite fails to run on Maya 2018 with mayapy, the cause is unknown.
  • The mmSolverType command raises an error with certain flags on Maya 2016 for an unknown reason. This problem is specific to Maya 2016, the same command works on Maya 2017+.

mayaMatchMoveSolver-v0.3.0

06 Oct 20:05
Compare
Choose a tag to compare

This release v0.3.0 adds many more features, offers a number of new utilities for developers writing tools, offers performance improvements and increased configuration options.

Download the archive file for your operating system and Maya version, and follow the INSTALL.md instructions.


Below is a list of some of the new features, changes and bugs that are fixed in v0.3.0.

Solver UI - New features

  • Added detailed counts for Object, Attribute and Solver sections of the Solver UI.
  • Added "Validate" button to test if the Solver can be run, and number of Deviation, Parameters and Frames can be used. Use the Solver UI > Edit > Auto-Update Solver Validation toggle to trigger the validation automatically (off by default).
  • Automatically set Marker and Bundle outliner icons (when the Solver UI loads), for Marker/Bundle locator nodes.
  • #18 - Updated UI to increase performance when adding new objects to the Solver UI
  • #87 - Added ANM, STC and LCK buttons to the Attributes in the Solver UI.
  • #57 - Added Basic, Standard and Legacy Solver Settings, with Root frames, and check boxes for solver options.
  • #56 - Changed Solver UI to update the Progress Bar and status line while a solve is in progress.
  • Removed "Tools" menu from Solver UI (replaced with Maya "mmSolver" menu)
  • Window size is stored and remembered for all UIs in mmSolver. The files are saved into ~/.mmSolver/*.ui.

Tools - New features

  • Added re-parenting tools ("Parent under Node" and "Unparent to World") similar to Maya's standard Parent and Unparent tools, except these tools will maintain the world-space position while changing parents. The transform values are computed only on keyframed frames (sparse), not baked each frame.
  • Added Create/Remove Controller tool, used to create a new locator from a character rig control and solve with it (combined with the re-parenting tools, this is a very powerful tool).
  • Added "Triangulate Bundle" tool to automatically calculate the 3D position of a bundle using a Marker and an animated camera.
  • Added "Deform Marker" tool, a simple way to add a Maya Animation Layer, modify the Marker's position, then bake the offset down and remove the Maya Animation Layer.
  • #14 - Added 'Attach Bundle to Curve' tool, to solve a single attribute and move the bundle along a NURBS curve.
  • #103 - Added 'Navigate Root Frames' tool, for stepping between root frames.
  • #75 - Added tool to move selected Markers to a screen position.
  • #107 - Added 'Screen Space Transform Bake' tool, to allow solving transforms in screen space.
  • #45 - Added Undo/Redo Scene (with UI disabled); Solver UI > Edit > Undo (without UI update)
  • #12 - Added Marker "Show/Hide Deviation Curves" tool, to display the Deviation on each Marker, from the last solve. Added Deviation to Marker transform node (visible in the Maya Channel Box).
  • #10 - Added UI for setting Smooth Keyframes options, options are saved with the Maya scene.
  • #99 - Changed the Load Marker tool to only create keyframes when an enable or weight value changes.
  • #16 - Added a 'mmSolver' menu (displayed by default) to the Maya window.
  • Added an alternate 'Minimal Shelf' configuration file, ideal for embedding into an existing script that creates Maya Shelves.
  • #115 - Added Pop-Up menus for Maya Shelf buttons (controlled with a configuration file).
  • Added "System Information" and "About" to Solver UI, to display information about mmSolver and the current Maya environment (for debugging).

Tools - Bug fixes

  • #117 - Bug fix: Center 2D on Selected fixed when no nodes are selected.
  • #109 - Bug fix: Marker-Bundle selection toggle fixed.
  • #108 - Bug fix: Rename Marker/Bundles fixed.
  • Bug fix: The Marker Group 'overscan' attribute made Markers move away from image centre, this behavour has been reversed for newly created Marker Group nodes, the 'overscan' attribute now scales the Markers toward the image centre.
  • Changed the default Marker Group depth to 10.0 units, to reduce the possibility of Markers being hidden by the near-clip plane of a camera.

Solving - New features

  • #95 - Added check-boxes for showing Polygons or ImagePlanes in the viewport while solving; Solver UI > View > Display Image Planes and Solver UI > View > Display Meshes.
  • #54 and #116 - Bug fix: Added automatic value offset for all rotation attribute types.
  • #102 - Set only the objects that are being changed to be 'dgdirty'ed.
  • #66 - Added ability to use a "Robust Loss Function", using maya.cmds.mmSolver command (it is currently disabled by default). Options include "trivial" (no change), 'soft L1' and 'cauchy'.
  • #64 - Added Min/Max values for each attribute being solved ('Box Constraints')
  • #73 - Added maya.cmds.mmSolver flag to compile and return details without triggering a solve.

Solver - Bug fixes

  • Bug fix; Solver deviation calculation has been improved, resulting in accurate deviation calculations.
  • Bug fix; (internal) Solver settings have been tweaked for improved performance and quality, resulting in lower deviation without needing to press "Solve" multiple times (in example scenes).
  • Turned off "Isolate Objects" by default, because it took too long an didn't seem to improve the Solve speed or quality.

API Changes

  • #123 - Bug Fix: Camera transforms are now allowed to be custom plug-ins.
  • #20 - mmSolver.api.Marker and mmSolver.api.Bundle classes now use consistent keyword arguments. (backwards compatibility is maintained, but the older usage is deprecated)
  • #72 - Added parallel 'Validation' compiling (using #73). New many functions and objects to allow executing. This is NOT 100% backwards compatible.
  • Added ExecuteOptions object, for all options for Executing a solve.
  • Deprecated mmSolver.tools.selection functions, and moved them into various mmSolver.utils modules.

Plug-in / Utilities - New features

  • Added many utilities to the mmSolver.utils sub-package, many moved from the mmSolver.api.
  • #17 - Added configuration utility module.
  • #74 - Added plug-in command perform 3D-to-2D reprojections.
  • #71 - Added License information to each file header in the project.
  • #113 - Added mmSolver.utils.transform utility module, to allow batch querying of transform node matrices (used for baking tools).

Build system

Backwards Compatibility

An effort has been made to make mmSolver backwards compatible with the v0.2.x series, however 100% compatibility has not been tested.

If you have used the API or specific tool functions, you will likely need to change your code a little to be compatible with v0.3.0. If you are a user

For users, the biggest backwards incompatible change is the Marker Group 'overscan' attribute is now inversed. In previous versions, for an iamge overscan of 1.1, a value of 0.91 was required. In v0.3.0+, the value should be set correctly at 1.1.

Known Issues

  • Solver engine can become slow with many attributes.
  • New v0.3.0 default values will not be used until a new Collection is created. Delete your previous Collection and create a new Collection using the Solver UI > File > New Collection menu item.
  • The Maya viewport is refreshed during solving to force Maya to evaluate all nodes in the solve. This causes slower performance (e.g. 6 seconds verses 30 seconds), but ensures accurate solver results. Users may wish to turn this feature off in the Solver UI > Edit > Refresh Viewport check box.
  • The test suite fails on 3 different solver tests, due to a deviation that is too high, this is intentional.
  • The test suite fails to run on Maya 2018 with mayapy, the cause is unknown.
  • The mmSolverType command raises an error with certain flags on Maya 2016 for an unknown reason. This problem is specific to Maya 2016, the same command works on Maya 2017+.