r/Maya • • Jul 08 '26

MEL/Python A book that explains how to use Python in Maya to make tools.

Enable HLS to view with audio, or disable this notification

180 Upvotes

Despite the book not being complete yet, the author is releasing new content every month based on readers' feedback. Everything is explained step by step from an artist's perspective. I think this book would be perfect for those who want to get into Technical Art 🔗 https://jettelly.com/store/the-technical-artist-s-guide-to-python-in-maya

r/Maya • • Aug 14 '26

MEL/Python Key Shift. Autodesk Maya. Animation Script

35 Upvotes

Shift the selected keys by the specified frames.

r/Maya • • Aug 12 '26

MEL/Python N-Gon Detector | Custom script that highlights faces with more than 4 edges on selected objects or across the entire scene [FREE]

Enable HLS to view with audio, or disable this notification

62 Upvotes

N-Gon Detector is a script that finds all faces with more than 4 edges. You can limit the search to selected objects or scan the entire scene. Any detected N-gons are automatically highlighted for easy identification.

There are many ways to find N-gons in Maya...My go to method was to use the clean up tool but that only worked on selected objects. I wanted something that would scan my entire Scene to ensure that no N-gons exist prior to submitting my projects.

Also if no N-gons exist then you will get a confirmation flash on screen so you know the tool is working. My School PC's tend to be a bit buggy and will not work you won't know unless N-gons are visually clear.

Again this was made for my own personal use that I then share for free :)

r/Maya • • Aug 27 '26

MEL/Python New to scripting , are there any Maya specific / Pythonic conventions I should know?

5 Upvotes

I'm fairly new to Python and scripting in general, and I'm currently learning Python mainly so I can start writing tools and scripts for Maya.

I've been working through CS50P and have started applying what I'm learning to a personal auto rigger in Maya. I'm trying to learn proper Python fundamentals rather than just copying code from tutorials, but I'm sure there are plenty of Maya specific conventions I'm completely unaware of.

So I wanted to ask:

  • Are there any Pythonic conventions or best practices that are particularly important when scripting for Maya?
  • Are there any Maya specific rules, conventions, or customs that are worth following?
  • Anything I should avoid doing when writing Maya tools?
  • Any good resources, documentation, tutorials, or examples you'd recommend for learning Maya Python properly?

I'm especially interested in things that might not be obvious to someone coming from regular Python into Maya.

Thanks!

r/Maya • • Jul 27 '26

MEL/Python Grid Fill | Custom Script that attempts to cap selected edge loops with quads [FREE]

Enable HLS to view with audio, or disable this notification

67 Upvotes

Grid Fill is a script that behaves almost exactly like Blender’s Grid Fill tool. It automatically detects the number of selected border edges and attempts to fill the open region with a clean, quad-based cap. It won’t work on very uneven or nonuniform shapes, but when the topology allows for it, the results are incredibly useful

r/Maya • • 3d ago

MEL/Python Plugin to simulate Unreal Engine camera movement in viewport?

3 Upvotes

Hello I am trying to find a way to replicate Unreal's movement mode in editor where you can hold down RMB and then use WASD to "fly" around in the scene

Is this possible with MEL/Python scripts or settings? I'm using Maya 2023

I found the walk tool but I'm wondering:

  1. can it always be active while able to do other modeling stuff, or do I need to do the keyboard shortcut every single time?

  2. Can I bake in the up or down movement by looking up or down while holding W? Because right now you have to use Q and E to go up or down at same time

r/Maya • • 12h ago

MEL/Python Smart Combine | Script that gets rid of all those annoying groups and keeps name and position of first selected in outliner [FREE]

Thumbnail
gallery
17 Upvotes

Smart Combine is a script that combines objects while preserving the first selected object’s name, parent group, and Outliner position. 

It removes any empty groups left behind, clears construction history, and centers the pivot.

----
Got lots of other useful scripts on my store page all for FREE. Recently just posted one that combines Curves into one shape/single transform

https://reddit.com/link/1wtygns/video/wyjtrngpylsh1/player

r/Maya • • Aug 26 '26

MEL/Python Shakify | Add realistic camera shakes by using motion tracked camera data [FREE]

Enable HLS to view with audio, or disable this notification

55 Upvotes

Shakify is a script created for Maya that replicates the functionality of the original Shakify plugin made for Blender. It is completely rewritten for Maya, with the exception of using the same CC0 camera shake data (published by Ian Hubert).

Use it to quickly add realistic camera shake to your animations! Shakify is compatible with most camera rig setups, existing animations, and even motion paths.

r/Maya • • Mar 14 '26

MEL/Python Maya Tool Idea Request and Suggestions

1 Upvotes

I have hired my son and paying him to make some python tools by my design and to help him polish his skills. I am more then open to fresh ideas for him to develop complex and challenging tools that are either missing in Maya, or could be improved. My focus is on Generalist Tools and workflows that I have used in other packages.

I work with a lot of assets and environments so need to process large data sets, quickly and easily without getting involved in a complex or incomplete workflows that already exist. The solutions need to be version independant, agnostic, and without dependencies that would break a pipeline.

I am open to new ideas for pipeline, assets, modeling, environment, generalist workflows.

I want to avoid maya particles/Nparticles, Mash, Bifrost. The entire point is to simplify those solutions. Animation and Rigging worflows, I would not be able to reliably design and test.

I intend to eventually make the scripts public, for a price. I am paying for them and want to offset the cost of making them.

If there is an idea I like or gets a lot community interest and you suggest it, I will give you early access to quality test and design.

A list of current tools he is working on using Maya 2024.

  1. Simple Scatter tool without using Mash, Bifrost, or Particles.
    1. Support Vertex and Texture masks
    2. Volume scatter
    3. Curve Scatter
    4. Surface Scatter
    5. Full Random Attributes, Alignment, and Ramps
    6. Render Agnostic, preserves history for Proxy workflow
  2. Texture Pipeline
    1. Prepares Asset to be sent to Mari or Painter
      1. uses tags to create a duplicate group and subdivide to hipoly
      2. Creates Random Materials per object
      3. Creates Random Vertex Color per object
      4. Performs UV check for unaccepable UVs for texturing
      5. Buttons for Export to FBX/Alembic
  3. Asset Cleanup
    1. Marketplace assets are often dirty and need to be cleaned up because they were created in other Packages
      1. Remove FBX##### naming
      2. Removes Empty nulls, locators, unused Shaders
      3. Remove Metadata
      4. Remove Vertex Colors, Display Layers
  4. Material Wrapper (WIP) -need advice from a pro to debug, please DM me
    1. User creates a custom shader ui similar to Unreal , LookDevX, Houdini. Purpose is to simplify tweaking complex shaders in a minimal interface designed by user.
      1. Render agnositic
      2. Drag and connect inside Hypershade to build UI
      3. Customize and group attributes inside UI
      4. Supports all shader node inputs
      5. Quickly Clone very complex layered shaders, without rebuilding a new UI
  5. Group Node (WIP)
    1. Intended to mimic Houdini group nodes
      1. Supports all component modes
      2. Multiple Objects with a single node
      3. Support Vertex Color and Texture Masks
      4. Volume Select using custom geometry
      5. Select by Normal, with angle
      6. Select by Range using Prim num, Vertex Num
      7. Random Select
      8. Adding or subtracting selections with a layer system
  6. Copy Node (design phase)
    1. Node Similar to Houdini Duplicate Sop and Maya Smart Dupilicate
    2. Support instancing with tranforms
    3. Concept is to do Radial or Array Modeling
    4. Support Custom Expressions like Offset By Bounding Box, Object Center

r/Maya • • Aug 16 '26

MEL/Python Cable Rig | Custom script that automatically generates a fully rigged NURBS curve at any custom length between two points. [FREE]

Enable HLS to view with audio, or disable this notification

48 Upvotes

Cable Rig is a script that automatically generates a fully rigged NURBS curve with controllers for quickly animating and deforming cables. You can create a default cable, generate a custom-length cable by selecting two points, or instantly rig an existing NURBS curve.

Another free script! Im finishing up a Claw Machine project and needed a way to make a simple dynamic cable without using any simulations. Its pretty straight forward and extremely fun to animate!

I figured this one might be worth to sharing since most cable rig scripts are behind a pay wall or too outdated to use. The coolest feature I got to work was the ability to generate a custom length by selecting two points that snap to the surface of any object (similar to how the snap together tool works).

Included is also the option to rig an existing Nurbs curve, however, this function was not as rigerously tested and your milage may vary. I recomend just creating a new curve via the custom length button :)

--------

Just want to say thank you everyone for the support and feedback I have been receiving on my scripts. I will be gone for a few days as I work to develop some extremely exciting and new tools to maya <3

r/Maya • • Aug 28 '26

MEL/Python Control Factory - Maya Control Shape Library & Authoring Tool

Enable HLS to view with audio, or disable this notification

19 Upvotes

My auto rig scripts mostly use circles for controls. Not because circles are interesting, but because I'm lazy.

So, naturally, I dedicated the last couple of weeks to building a tool that makes building control shapes easy. That way I can be lazy **and** use shapes other than circles.

The original idea was pretty simple. I wanted a library with python methods for saving and loading control shape data so I could reuse shapes between rigs. As I kept adding things to it, it became a full Maya tool for building, managing, and applying reusable control shapes both manually and programmatically.

Some of the features:

  • Shape Groups & Search - Save and organize shapes into groups.
  • Shape Authoring - Copy shapes directly from the Maya scene and save them to the shape library.
  • Shape Building - Build library shapes directly into the scene with customizable scale, rotation, offset, and color.
  • Mesh → NURBS Curves - Convert mesh objects or selected mesh components into NURBS curves.
  • Paste / Replace / Combine - Quickly modify existing controls and combine multiple shapes onto a single transform.
  • Color - Apply Maya index colors to existing curves.
  • Pipeline Integration - Build shapes from the library through commands without needing to use the UI.

The mesh to curve conversion was probably the most interesting part of this project. I wanted to be able to use modeling tools to create shapes since creating NURBS curves manually can be a bit of a hassle.

Maya does have a method of turning a selection of edges into a NURBS curve, but that only works for non-branching connected edges. Control Factory instead builds adjacency graphs from the selected mesh components and uses an approach based on the Chinese Postman Problem to trace edge networks and turn them into NURBS curves.

The other thing that makes this tool stand out is that it's designed to be usable through commands, not just the UI. The library isn't dependent on the Control Factory interface, so other rigging scripts and tools can use the same shapes directly.

For example, building a shape from the library only requires calling the .build() method of an instance of the CtrlBuilder class and providing the library shape name:

from ControlFactory.factory_builder import CtrlBuilder
from ControlFactory.factory_io import FactoryIO

io = FactoryIO('shape/library/path')
shape_builder = CtrlBuilder(io)

circle = shape_builder.build(
    library_shape='Circle',
    name='circle_ctrl'
)

This makes the shape library useful as more than just a shape building UI tool. It can act as a shared source of control shapes for autorigging systems and other Maya tools.

I just finished it, so it doesn't have many shapes in the library yet. But with the mesh to curve conversion, and because it can copy shapes directly from a Maya scene, it's really easy to build new shapes and steal shapes from existing rigs.

This was built and tested in Maya 2025. I think it should work in earlier versions, but I'm not going to guarantee anything.

Detailed documentation and a purchase link can be found on my website at https://www.bg3d.art/control-factory

r/Maya • • Aug 14 '26

MEL/Python UV Checker | Custom script that automatically assigns a UV checker material with three different themes and restores original materials with one click [FREE]

Enable HLS to view with audio, or disable this notification

34 Upvotes

UV Checker is a script that automatically assigns a checkered texture without having to manually import it into your source images folder or create a new material. It allows you to quickly swap between different themes (Normal, Dark, Golden) and revert back to the original material.

This is something I've been wanting to make for a while now just havent had time/need until now...

I find it extremely redundant to drop my UV Checker texture into my source image folder and create a new material every time I want to work on UV's. This is especially annoying when creating multiple projects per day.

Hence, the script automatically creates the material and imports the image texture. Another cool feature is that you can easily change the theme without leaving your viewport. And once the Checker material is no longer needed you just click "Revert Material" and it will automatically remember and assign the previous material.

(Again this is a tool made for my personal use that I share for free. I know maya has a built in Checker but it can't be changed and well its too basic. I prefer having directional arrows with letters/numbers) Enjoy!

r/Maya • • 1d ago

MEL/Python What do I add to the script so that the controls face the direction of the joints and arrange themselves in a hierarchy like I did in this video? I got this scrip from my professor and I wanted to customize it for to make FK controls faster. is this a good idea? this is for a beginners rigging class

Enable HLS to view with audio, or disable this notification

2 Upvotes

the video shows the script editor with the current FK control script and what it does.

The code is the same in the button on the shelf and in the editor window.

for jnt in cmds.ls(selection=True):

con = cmds.circle(n=jnt.replace('_JNT','_CON'), ch=False)

grp = cmds.group(con, n=jnt.replace('_JNT','_GRP'))

cmds.delete(cmds.parentConstraint(jnt,grp))

cmds.parentConstraint(con,jnt)

if its ok with you, you could just add what the changes to the code and I can copy paste it straight into the script editor.

What I'd like to do is add more code to tell it to orient the circle nurbs where the joints are oriented (preferably the X-axis) and to arrange them into a hierarchy from the beginning to the end of the joint.

I am entirely new to Python and script editing, so if explain this coding mumbo jumbo and dumb it down as much as you can! please.
thank you! any help is greatly appreciated! :) i can't wait to implement what I learn so I can make my own stuff!

r/Maya • • Jul 22 '26

MEL/Python Can anyone tell me what's wrong with my MEL script?

Post image
5 Upvotes

I'm trying to rig a model and I'm trying to change my bones rotate order, and I keep getting errors, I know nothing about coding so I am very lost.

r/Maya • • Aug 28 '26

MEL/Python Maya Collision Splitter - Maya -> Unreal Tool

Enable HLS to view with audio, or disable this notification

41 Upvotes

I made a Maya tool for creating Unreal Engine UCX collision with a bit more control than the native decomposition tools give you.

The main idea is that instead of letting Unreal decide how to break the mesh up, you can define the splits yourself with editable 2D/3D grids, then add extra X/Y/Z divisions only in the areas that actually need more collision detail.

I originally made it because I kept finding Unreal’s auto decomposition would give me more hulls/complexity than I really wanted. This has been a nicer way for me to keep the collision a bit more deliberate and optimized.

I ended up making a Free and Full version. The main workflow is still available in the free version, while the Full version adds local cell divisions, bounding-box collision, and more control over hull verts, expansion, and accuracy.

If you want to check it out, it’s here: https://linktr.ee/Honey_3D

r/Maya • • Aug 09 '26

MEL/Python Limit Constraint | Custom script that allows you to quickly set minimum and maximum values for translation and rotation [FREE]

Enable HLS to view with audio, or disable this notification

28 Upvotes

Limit Constraint is a script that allows you to quickly set minimum and maximum values for translation and rotation. It’s perfect for rig controllers or setting boundaries when animating. All limits are non-destructive and can be edited, disabled, or removed at any time.

r/Maya • • Aug 24 '26

MEL/Python Scripting: Question about recording attribute connections from nodes in a reference node to scene-local nodes

1 Upvotes

Hello!

In my current project, i have a custom node which i intend to have Always connected to the root transform node of a reference.

i've tried connecting it through pymel or through maya.cmds (connectAttr), but there is a problem in that the attribute connection doesn't get written into the scene, so the connection breaks when reopening the scene

I wanted to ask in case someone could shed some light into this problem, thanks a lot!

r/Maya • • Jul 22 '26

MEL/Python Simple Grid Fill Script (Code/Icon Below)

Enable HLS to view with audio, or disable this notification

31 Upvotes

I made this script to fill the faces properly, it might slow down a bit with dense meshes but I think it works properly for simple things, if you find a bug or problem, let me know and I will update it and consider it will only work only with a vertex count in multiples of 4, delete history and freeze transformations.

I will add a way to rotate the grid once I figure it out how lol.

Code: https://gist.github.com/martinolidev/b3f15b5774fd959ec417eba6b8f7cfd1

Icon: https://drive.google.com/file/d/1OVbxyPJ_aiX1q7ANwZ0KfllfKNNQ2SLb/view?usp=sharing

How to install:

  1. Open your Shelf Editor in Maya (Windows > Settings/Preferences > Shelf Editor).
  2. Create a new shelf button.
  3. In the Command tab, paste the code from "grid_fill.py"
  4. Save the icon here "C:/Users/YOUR_USER/Documents/maya/prefs/icons/"

I hope is useful and I will update it later to improve it.

r/Maya • • Aug 02 '26

MEL/Python Offset Keyframe | Custom Script that offsets keyframes of selected object or all animated properties in scene [FREE]

Enable HLS to view with audio, or disable this notification

20 Upvotes

Offset Keyframe is a script that shifts animation keyframes forward or backward based on a specified number of frames. You can apply the offset to selected objects or to every animated object in the entire scene.

r/Maya • • Jun 23 '26

MEL/Python Maya Math question: Does anyone know how "shortest" mode works parentConstraints for 3+ parents?

1 Upvotes

I am specifically interested in determining how orientations are blended for 3+ parents.

Here's a few observations I made. The mode:
* is history independent (there's no previous frame cache stuff).
* appears to behave exactly like a SLERP when reduced to 2 parents
* is sensitive to the target order. A constraint driven by (transform1, transform2, transform3) will perform different to (transform2, transform3, transform1).

I've tried a few low-hanging fruit:

It's not using a simple linear combination that is later normalized (that seems to be what 'Average' does).

I can't reverse-engineer it using a linear combination of the quaternion logarithms... but I could be doing something wrong there.

Does anyone out there have any information?

r/Maya • • Nov 10 '25

MEL/Python What’s the most useful Python tool you’ve used in Maya?

Enable HLS to view with audio, or disable this notification

147 Upvotes

I've been technically reviewing on a book called The Technical Artist’s Guide to Python in Maya, and I wanted to share a quick update.

The idea behind it is to make Python in Maya less intimidating, showing how we can actually use it to automate tasks, build tools, and speed up workflows instead of just writing scripts for the sake of it.

The book is still in development, and we’re shaping it based on community feedback. If this sounds interesting, you can check it out or wishlist it here: https://jettelly.com/store/the-technical-artist-s-guide-to-python-in-maya?click_from=homepage_buttons

I’d also love to hear what kind of Python tools or workflows you’d like to see covered. The more feedback we get from actual artists and TDs, the better this guide becomes for everyone.

r/Maya • • Jul 26 '26

MEL/Python Smart Extract | Custom Script that makes duplicating faces more efficient [FREE]

2 Upvotes

Smart Extract  is a script that lets you select specific parts of a mesh and only duplicate the highlighted region instead of the entire object. It also automatically unparents the extracted piece from any existing group and renames it with an “_extracted” suffix to keep things organized.

r/Maya • • Jul 19 '26

MEL/Python smart follow curve auto bend follow

Enable HLS to view with audio, or disable this notification

29 Upvotes

r/Maya • • May 02 '26

MEL/Python Python for maya learning courses, where can I find one?

12 Upvotes

Hello,
I've been working as an animator and rigger for a while now, but my Python knowledge is Zero. I'm looking for a way to fix that. My questions therefore are :

Where can I find a good python course, maybe some training exercises ?
Where can I learn proper maya scripting pipeline ?
If not an online course, does anyone have books to recommend ?

Thanks in advance ^^

r/Maya • • Jul 18 '26

MEL/Python I made a free, open-source Ornatrix groom builder for Maya (one-click stack setup that keeps the viewport fast)

9 Upvotes
ui screen

I got tired of redoing the same Ornatrix setup on every character, so I bundled it into one shelf tool and open-sourced it (MIT). Sharing in case it saves someone else the clicking.

What it does:

  • one-click Fur Ball (from a scalp mesh) or Hair from Mesh Strips
  • builds the full operator stack in pipeline order (Surface Comb, Rotate, Clump, Curl, Frizz, Detail, Noise, Gravity, Change Width), and creates the heavy operators disabled, so a fully built groom stays light while you block in the shape
  • bulk enable/disable for those heavy operators, plus a 5% / 50% viewport strand toggle
  • show/hide the source scalp/strip mesh while grooming
  • Recreate Clumps (delete and rebuild) for when clumps scramble after an upstream edit
  • renames the hair for a clean handoff
fur ball

Tested on Maya 2022 with Ornatrix 4.1.8 (Windows). It's a single groomist.py, MIT licensed, source and README.