Home Website Youtube GitHub

UPV Visualization for Arm/Leg Guides in Component Guide Mode

Hello mGear community!

I’ve implemented an enhancement for the arm and leg components: a UPV position preview within the guide mode .

This feature displays the final location of the Up Vector control directly in the guide display. As you adjust the guides, you can immediately see the actual position of the UPV, allowing for precise placement before rig building and speeding up the guide creation workflow.

Please check out the demo GIF below:

I’m very open to feedback from the community!

Thank you!

8 Likes

@fury_Night great work! this has been in my To Do list for a long time!
are you interested in doing a Pull Request on Github?

PS: I still need to check and merge your previous PR :sweat_smile: But I didn’t forget about it :heart:

Haha, thank you! I really appreciate your kind words, and I’d be happy to work on this new PR. As for the previous one, no worries at all—please take your time. There’s absolutely no rush :slight_smile:

Regarding this feature, it’s actually not too fancy—I simply applied the UPV creation logic from the build process to the guide stage.

However, there’s currently a compatibility issue that needs to be addressed. The GIF I shared in the post was recorded in Maya 2025, where I used math nodes (such as length, max, normalize, etc.) that were introduced by Autodesk (as far as I know) starting from Maya 2024 to calculate the UPV position. This means users with Maya versions earlier than 2024 won’t be able to use this feature.

To my knowledge, the minimum Maya version supported by the current mGear 5.x is 2022, so we need to ensure compatibility for both 2022 and 2023.

Here are two possible solutions I’ve been considering:

  • Option 1: Use native Maya nodes (like plusMinusAverage, vectorProduct, multiplyDivide, etc.) to replicate the functionality of the new math nodes. However, this would make the node network more complex.
  • Option 2: Add custom nodes in mgear_solvers specifically for this calculation process, which would ensure compatibility across all Maya versions supported by mGear.

My current code is built and tested in Maya 2025, meaning it relies on the math nodes introduced (as far as I know) in Maya 2024. I’d love to hear your and the community’s thoughts on which approach would be better, or perhaps there’s an even better alternative?

1 Like

Thanks for the information about the compativility limitation to Maya 2024+
I think the easiest solution is just to use the Maya default nodes .
If you do the PR as it is now. I will add a checker to ensure is only generated on newer maya versions. Aslo I was thinking to change the locator shape or color to diferenciate it from the ones that you can manipulate directly.

Thanks!

You’re welcome, and thank you for your thorough consideration! Adding version checking and differentiating the locator appearance is an excellent idea. It effectively ensures compatibility while also enhancing the user experience.

While implementing this new feature across different arm components, I noticed an inconsistency in a variable value within the __init__.py file (as shown in the attached image):

arm_2jnt_01

arm_2jnt_02

  • arm_2jnt_01 and arm_2jnt_freeTangents_01 use a value of 0.5 .
  • arm_2jnt_02 , arm_2jnt_03 , and arm_2jnt_04 use a value of 0.8 .
  • All leg components consistently use 0.5 for this float value.

My question is: Can we standardize this float value across all arm components?

The reason I ask is that after implementing the new feature, when updating the component type, if this value differs between arm component types, I need to first fetch the correct value based on the specific component type being changed and then pass it to the method parameter that calculates the upv location during the guide stage.

Good catch! sure! lets change that

Thanks!

Submitted a PR for this. Please take a look when you have time.

Thanks!

1 Like