Weight diagnostics
Skin Influences per Vertex
Inspect influences per vertex and select groups to review without changing weights or layers.
Open the diagnostic
Section titled “Open the diagnostic”In the Maya 2026.3 Python Script Editor:
from weSkel.src.tools.skinning import show_skin_influences_per_vertex
show_skin_influences_per_vertex()For a dockable window that starts floating on its first opening:
from weSkel.src.ui.skinning import skin_influences_per_vertex as ui
ui.show_dockable(floating=True)With floating=True (the default), Maya restores its saved state or starts floating on first opening. ui.close() preserves preferences; ui.reset_dockable_state() explicitly resets them.
Each opening replaces the previous instance. The equivalent public launcher is weSkel.src.tools.skinning.show_skin_influences_per_vertex_dockable().
Capture and analyze
Section titled “Capture and analyze”| Step | Action | Scope |
|---|---|---|
| 1 | Select meshes and/or vertices, then Use Selection. | Captures their union without duplicates and starts the calculation. |
| 2 | Read the table, sorted from most to fewest influences. | Counts strictly positive weights on each captured vertex. |
| 3 | Choose View: all meshes or one mesh. | Filters the existing result without reading Maya again; percentages follow this view. |
| 4 | Select groups to inspect. | Table actions change Maya selection without replacing the captured scope. |
| 5 | After editing weights, click Refresh. | Reads the same explicit scope again. Use Use Selection to change it. |
Results are snapshots: scene edits do not trigger automatic recalculation. The summary records the sources and settings of the last calculation. Changing a setting invalidates the table until the next Refresh.
Counting settings
Section titled “Counting settings”| Setting | Initial value | Effect |
|---|---|---|
| Rounding filter | Disabled | Simulates rounding to the positive step entered; at 0.001, a weight of 0.0005 is still counted. |
| Respect Post normalization | Enabled | Accounts for native Post mode in memory. When disabled, counts raw weights. Without a mesh in Post mode, the summary reports that the setting has no effect. |
| Rounding summary | Visible while rounding is enabled | Counts vertices with fewer influences after rounding, using the same weight batch without a second Maya read. |
Reading the skinCluster includes the composed and filtered ngSkinTools2 output when its data is attached. The tool changes neither native data nor ngSkinTools2 layers.
Select results
Section titled “Select results”| Command | Result in Maya |
|---|---|
| A row’s Select vertices | Selects the corresponding group in the displayed view. |
| Select rows | Selects the union of rows chosen with Ctrl/Shift. |
| Select ≥ N | Selects every group whose count reaches or exceeds the threshold: 7 includes 7, 8 and above. |
| Select affected vertices | With rounding enabled, selects vertices that lost influences in the simulated count, within the displayed view. |
Selection actions support Undo/Redo. If no group matches the threshold in the view, Maya selection is cleared. The affected-vertices button stays disabled without a valid result or affected vertices. Source identity and topology are checked before selection.
Export and cancel
Section titled “Export and cancel”| Action / information | Content |
|---|---|
| Copy JSON | Copies the displayed view’s diagnostic using the same serialization as JSON export. |
| Export → JSON (default) | Versioned schema, summary, settings, sources and vertex indices per group and affected by rounding. |
| JSON identities | mesh_uuid identifies the analyzed shape; skin_cluster_uuid records the source at calculation time, independently of renaming. |
| Export → CSV | UTF-8 with BOM, comma-separated, one row per group with scope, settings and calculation time. |
| Progress / Cancel | Cancels between batches; no partial result is published. |
| Total time | Includes checks and, for Use Selection, capture. |
The initial size is 650 × 600 to keep at least eight rows visible. A size already saved by Maya takes precedence.
Resolve a refusal
Section titled “Resolve a refusal”| Diagnostic | Check |
|---|---|
| Mesh without skin or ambiguous resolution | Check the actual mesh and skinCluster. |
| Incompatible topology | Capture a scope consistent with the skin again; do not reuse outdated indices. |
| Invalid weights | Inspect the reported data before recalculating. |
| Wrong checkout loaded | Check weSkel.__file__; after changing checkout, restart Maya if the package was loaded elsewhere. |