mayaMatchMoveSolver-v0.4.0.alpha7
Pre-releaseDO NOT USE THIS IN PRODUCTION!!!
This version of mmSolver is for testing only!
This is a feature incomplete release of the upcoming v0.4.0 release of mmSolver.
The alpha 7 release brings the ability to solve Lens Distortion with straight 2D Lines in an image, and the ability to solve a camera from scratch, like other 3D tracking software, and a lot more.
Features / Fixes / Changes
The main changes in this release:
- Add
Camera Solver
to the Python API (mmSolver.api.SolverCamera()
), and Solver UI integration. - Add
Load Lens
tool to load lens distortion values from a Nuke .nk file. - Add
Copy/Paste Marker
tool. - Add
Save Marker
tool. - Add
Toggle Object Motion Path
tool. - Add
Import Tracks MM Solver
tool, for 3DEqualizer. - Add
Set Camera Origin Frame
tool. - Add boolean to enable "middle line" for
mmLineShape
node. - Add evaluations per-second ("evals/secs") at the end of each solve in the Output Window.
- Add dedicated
Z-Depth Tools
:- Add
Camera/Object Scale Adjust
tool (by @bpatchasaheb) - Improve
Screen-Space Rig Bake
tool (by @bpatchasaheb) - Add
Create World Controllers
tool (a no-UI version of "Create Controllers")
- Add
Fixes / Changes:
- Solver UI
- Hide "Per-Frame" from the Input Objects panel.
- Remove
Edit
menu. - Improve spacing of Basic and Standard tab widgets.
- Add
Solve Focal Length
toggle. - Add
Solve Lens Distortion
toggle. - First found collection is treated as active collection.
- Add button adds Lines when Camera is selected.
- Calibrate Camera tool can use more than 2 Markers to define lines, with lens distortion.
- Line set up will add Bundle nodes along the "best line fit" of the 2D markers.
- Fix Marker icon, so it's a consistent screen-space size at all times.
- Fix PFTrack .2dt marker import.
- Change Bundle shape so they don't draw on-top of all objects when selected.
- Improve "Triangulate Bundle" tool.
- Do not add the current frame list to the Root/User Frame List in the Solver UI.
- Do not draw the node name for Bundle shapes by default.
- Clean up ImagePlane Attribute Editor UI.
- Set Attribute Details UI - Hide Smoothness/Stiffness.
- Smooth Keyframes UI - Remove up/down arrows from "Width" widget.
- Display Marker and Attribute Count to the solver output (in the Output Window/Terminal).
- Improve Marker, Bundle and Line tool icons with letter to indicate the type of tools.
- Re-arrange menus and shelf icons.
- Lots more...
Developer (low-level) changes:
- Build support for Maya 2023.
- Add README.md to the ./python directory to explain parts of the code and the structure.
- Add best practices to the ./DEVELOPER.md file.
- Use
Clang Tidy
to reformat C++. - Use
Black
to reformat Python code. - Set up GitHub Actions to automatically check and enforce C++ and Python format.
- Update tests and test files.
- Move a lot of the extra directories at the project root into a "./share" directory.
- Add Commands and Python API:
- Add
mmBestFitLine
node. - Add
mmLinePointIntersect
node. - Add
mmConvertImage
command, to convert image files to Maya IFF files. - Add
mmCameraRelativePose
command. - Add
mmCameraPoseFromPoints
command. - Add
mmSolver.utils.imageseq
to the Python API.
- Add
- Lots more...
Known Problems
- Markers are not distorted by Lens Distortion in Maya 2023.
- There are lens distortion update issues in the Maya viewport with Markers and Lines node types.
- The Solver acts strangely and doesn't solve correctly when the camera's "Film Fit" is set to anything other than "Horizontal".
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- The Viewport 2 "MM Renderer"
- Aliasing problems and does not allow changing the "mode" of the viewport.
- The
mmImagePlaneShape
does not work the same as Maya native image planes with the useBackground/hold out options in Viewport 2.0.
- Solving Lens Distortion does not act correctly in some cases - this is being actively developed and improved - please report bugs.
Load mmSolver in Maya 2022
To load mmSolver on Maya 2022 you must run the following MEL command:
mmsolver_load
This will load the mmSolver plug-in, and allow you to automatically load the mmSolver plug-in and will ensure it is loaded each time Maya is started.
If you wish to unload mmSolver so it will not be loaded at Maya start-up run the following MEL command:
mmsolver_unload
These new commands were added to work-around the new Maya 2022+ Security preferences and ensure mmSolver will be loaded when it's needed.
Additionally the Python module mmSolver.startup
was added, and allows pipelines to manually load mmSolver with the Python commands:
import mmSolver.startup
mmSolver.startup.mmsolver_startup()
Please report any bugs or suggestions you find in this release here and clearly state the version of mmSolver you are testing.