mayaMatchMoveSolver icon indicating copy to clipboard operation
mayaMatchMoveSolver copied to clipboard

Surface Cluster - Create from Selected Face Errors

Open david-cattermole opened this issue 1 year ago • 1 comments

Problem

Creating a Surface Cluster with a single selected face fails.

Expected behavior: A Surface Cluster should be created, centring on the selected face.

Actual behavior:

# Error: 
# # Traceback (most recent call last):
# #   File "<maya console>", line 2, in <module>
# #   File "C:\Users\username\Documents\maya\2023\modules\mayaMatchMoveSolver-0.4.9-maya2023-win64\python\mmSolver\tools\surfacecluster\tool.py", line 257, in main
# #     surface_cluster = create_single_surface_cluster()
# #   File "C:\Users\username\Documents\maya\2023\modules\mayaMatchMoveSolver-0.4.9-maya2023-win64\python\mmSolver\tools\surfacecluster\tool.py", line 76, in create_single_surface_cluster
# #     surface_cluster = lib.create_surface_cluster_on_component(component)
# #   File "C:\Users\username\Documents\maya\2023\modules\mayaMatchMoveSolver-0.4.9-maya2023-win64\python\mmSolver\tools\surfacecluster\lib.py", line 502, in create_surface_cluster_on_component
# #     point_data = nearestpointonmesh.get_nearest_point_on_mesh(mesh_shp, in_position)
# #   File "C:\Users\username\Documents\maya\2023\modules\mayaMatchMoveSolver-0.4.9-maya2023-win64\python\mmSolver\utils\rivet\nearestpointonmesh.py", line 46, in get_nearest_point_on_mesh
# #     assert isinstance(in_position, (tuple, list)) and len(in_position) == 3
# # AssertionError

Steps to Reproduce

  1. Load Character Rig.
  2. Select face on the character rig mesh.
  3. Run menu "mmSolver > General Tools > Create Surface Cluster".

Software Versions

  • mmSolver version: v0.4.9
  • Maya version: 2023 (others are probably affected).
  • Operating System (OS): Windows (but both are likely affected)

david-cattermole avatar Mar 11 '24 11:03 david-cattermole

The same issue happens when a selected edge is selected.

# Error: 
# # Traceback (most recent call last):
# #   File "<maya console>", line 2, in <module>
# #   File "C:\Users\username\Documents\maya\2023\modules\mayaMatchMoveSolver-0.4.9-maya2023-win64\python\mmSolver\tools\surfacecluster\tool.py", line 257, in main
# #     surface_cluster = create_single_surface_cluster()
# #   File "C:\Users\username\Documents\maya\2023\modules\mayaMatchMoveSolver-0.4.9-maya2023-win64\python\mmSolver\tools\surfacecluster\tool.py", line 76, in create_single_surface_cluster
# #     surface_cluster = lib.create_surface_cluster_on_component(component)
# #   File "C:\Users\username\Documents\maya\2023\modules\mayaMatchMoveSolver-0.4.9-maya2023-win64\python\mmSolver\tools\surfacecluster\lib.py", line 502, in create_surface_cluster_on_component
# #     point_data = nearestpointonmesh.get_nearest_point_on_mesh(mesh_shp, in_position)
# #   File "C:\Users\username\Documents\maya\2023\modules\mayaMatchMoveSolver-0.4.9-maya2023-win64\python\mmSolver\utils\rivet\nearestpointonmesh.py", line 46, in get_nearest_point_on_mesh
# #     assert isinstance(in_position, (tuple, list)) and len(in_position) == 3
# # AssertionError

david-cattermole avatar Mar 11 '24 11:03 david-cattermole