Skip to content

mGear 5.3.5

Latest

Choose a tag to compare

@miquelcampos miquelcampos released this 09 Sep 02:43

Compatibility: Maya 2022 - 2027

NOTE: This is a preview release with the new Anim picker 2.0. The next big mGear 5.4 release coming soon in a few weeks 😉

ANIM PICKER 2.0

Documentation: https://mgear4.readthedocs.io/en/master/animPickerUserDocumentation.html

editor

5.3.5

Enhancements

  • Anim Picker: Autosave — the Save window gains an "Enable autosave" toggle and a minutes interval; on each interval, and when closing the picker with unsaved changes, it pops the same Save dialog as a clearly labeled "Autosave reminder" so you confirm where to write (node / file), never saving in the background; the settings persist via user preferences and unsaved-change detection now compares against a reliable load / save baseline instead of the node-vs-UI mismatch that always reported changes
  • Anim Picker: Background layers — right-click a layer for "Reveal in Folder" and "Copy Resolved Path", and hover a layer to see its resolved on-disk image path as a tooltip; all three use the same .pkr-relative fallback search as image loading
  • Core: Add a reusable mgear.core.utils.reveal_in_file_browser helper that opens the OS file browser with a given path selected, falling back to the containing folder (Windows / macOS / Linux)
  • Docs: Anim Picker: Document portable .pkr paths via the ANIM_PICKER_PATH token, the background-image same-folder fallback and ANIM_PICKER_RELATIVE_IMAGES, and the new autosave and background-layer path actions

Bug Fix

  • Anim Picker: SVG (vector) items now show a hover highlight like other buttons

5.3.4

Enhancements

  • Anim Picker: Opacity passthrough — a per-window "Passthrough" checkbox turns the transparent floating picker into a click-through HUD (masked to the item buttons and tabs; clicking a gap reaches the rig behind), with a move grip to drag it and the full window returning smoothly during pan / zoom
  • Anim Picker: Checkbox master-toggle for item groups — tag items into a named group and a checkbox widget shows / hides the whole group at once (with optional invert), in the picker with no rig attribute needed; composes with conditional visibility
  • Anim Picker: Editor undo/redo + focus-scoped keyboard shortcuts — a per-tab snapshot undo stack records every edit (a whole gesture is one step), with shortcuts (Ctrl+Z / Ctrl+Shift+Z, Ctrl+C/V/X, Ctrl+D, Ctrl+Shift+D, Delete, Ctrl+A, arrows, F, Esc) that fire only while the picker has focus
  • Anim Picker: Expand / contract spacing tools — four Align-section buttons spread the selection apart or pull it closer, horizontally or vertically, a step per click about its center
  • Anim Picker: Richer shape library with drag-to-create — 16 new templates (gear, face, hand, foot, arrows, heart, ring, eye, lock, ...) across Polygons / SVG tabs; click a tile to apply, drag to create on the canvas, or right-click to create one shaped item per selected control
  • Anim Picker: High-DPI text + handle scaling — on-canvas labels and edit-mode handles scale on a high-DPI display (150 / 200%) via pyqt.dpi_scale; a no-op at 100%, and the authored text size stays display-independent
  • Anim Picker: Vector shapes from SVG — a picker item can be a real curved vector shape (filled or stroked); drag an .svg onto the canvas or use "Import SVG...", with graceful partial import (unsupported elements are discarded and reported); the parser ships as a reusable Qt/Maya-free mgear.core.svg_import
  • Anim Picker: Conditional item visibility — show an item only when a Maya channel passes a comparison or the view zoom is within a range (set in the Visibility panel, with "Capture current" zoom); re-evaluated on selection / zoom / mouse-over, never per frame; edit mode shows all and a bad condition fails open
  • Anim Picker: Interactive widgets + trace from selection — an item can be a checkbox, 1D slider, or 2D slider bound to a Maya attribute and/or a script (drag a tile from the tool strip to create), and a Trace command (Front / Side / Top) builds one silhouette button per selected control, colored from it; also adds text alignment, backdrop containers (a titled panel that moves its contents together), and align / distribute tools
  • Anim Picker: Tab reorder + multi-tab view — drag tabs to reorder in edit mode, and a View selector (Tabbed / Grid / Rows / Columns) shows one tab or every tab's picker at once (each cell live); the mode and column count persist via user settings, not the .pkr
  • Anim Picker: Pinned / overlay HUD buttons — pin an item to the viewport at a 3x3 anchor plus a pixel offset so it keeps a fixed screen position and size through pan / zoom, and is excluded from the pan / zoom extent
  • Anim Picker: Mirror relationships + color palette + shape library — link two items as a persistent, realtime-mirrored pair about a symmetry axis (pink dotted outline); a bottom left / center / right color palette colors the selection and mirrors the opposite side to its partner; a shape library applies premade shapes and saves custom ones
  • Core: Add a reusable PythonCodeEditor widget (mgear.core.pycodeeditor) — line-number gutter, current-line highlight, Python syntax highlighting, configurable monospace font and indentation, show-whitespace, and smart Tab / auto-indent; preferences persist via QSettings
  • Anim Picker: The custom script / menu editor now uses PythonCodeEditor with a File / Edit / View menu bar
  • Anim Picker: On-canvas item manipulators + inline multi-edit panel — a left tool strip toggles Select / Transform tools (scale and rotate handles on the selection), and a docked panel edits the whole selection at once (Transform / Appearance / Shape / Controls / Action, with fields that differ across the selection shown as "mixed")
  • Anim Picker: Re-enable dockable mode — an "Anim Picker (Dockable)" menu entry launches the picker as a Maya workspaceControl with a stable object name for clean re-open; the floating window stays the default
  • Anim Picker: On-canvas background-layer manipulators — in edit mode, select background image layers on the canvas (click / shift / marquee) and drag-move or handle-scale them
  • Anim Picker: Composite / flexible tab backgrounds — a tab background is an ordered list of positioned, sized image layers drawn back-to-front (managed from "Background layers..."); the canvas spans backgrounds and buttons so pan / zoom reach all content, removing the former 6000 size cap #108
  • Anim Picker: Modernize the module (Phase 1) — Python-3 idioms, mgear.log logging, Maya API 2.0 selection, decomposed modules, and dead-code cleanup; internal version bumped to 2.0.0
  • Anim Picker: Store picker data on the PICKER_DATAS node as clean JSON instead of an eval()'d Python literal, removing arbitrary code execution on load. BREAKING: pickers stored only in a scene node with no external .pkr file must be re-exported

Bug Fix

  • Anim Picker: Show the vector "SVG" hover badge only in edit mode, so hovering a vector item in animation mode no longer flashes it
  • Anim Picker: The selection / hover item border is now a cosmetic constant-screen-width outline, so it stays readable when the canvas is zoomed far out
  • Anim Picker: Fix editor undo not clearing an added optional property (group / visibility / SVG / pin / widget / backdrop / text / controls / menus / mirror) — the undo restore now resets keys absent from the snapshot
  • Anim Picker: Vector (SVG) items no longer show dead polygon handles ("Toggle handles" is a no-op for them); also removed the redundant right-click Options entry
  • Anim Picker: Fix the shape library's "Save current shape" staying disabled with an item selected — it now reads the live selection when clicked
  • Anim Picker: Fix the backdrop title and SVG badge being clipped on high-DPI displays — both size their font from the container height (DPI-independent), the title elides, and the badge pill grows to its text
  • Anim Picker: Fix slider / 2D-slider knob leaving a ghost after a drag — the widget's bounding rect now includes the knob radius so the old position is repainted
  • Anim Picker: Fix "Picker shape from curve not working" #598 — remove the JSON-to-Python-literal replace hack that corrupted control names containing "true", and guard shape-less transforms
  • Anim Picker: Fix latent bugs in picker_node / maya_handlers — a .format() typo, a setAttr that never hid the data node, an assertion that never fired on referenced nodes, and an always-false dict type check
passthrough