Skip to content

Instantly share code, notes, and snippets.

@aigcoder
aigcoder / example_usage.py
Created December 31, 2025 10:09 — forked from chris-lesage/example_usage.py
A script to pin an object to a NurbsSurface in Autodesk Maya
import pymel.core as pm
'''
Here are some examples of how to use the pin_to_surface.py script.
'''
# make a nurbsPlane
oNurbs = pm.nurbsPlane(n='nurbsPlane1')
# You can specify the nurbsSurface by string, PyNode transform or PyNode shape.
@aigcoder
aigcoder / playblast_facs.py
Created December 9, 2025 12:17 — forked from gregoiredehame/playblast_facs.py
playblast with facs attributes HUD
from __future__ import annotations
import maya.mel as mel
import maya.cmds as cmds
import maya.api.OpenMaya as om2
import maya.api.OpenMayaUI as omui2
import os
import time
import logging
@aigcoder
aigcoder / note_state_test.py
Created June 23, 2025 12:18 — forked from blockinhead/note_state_test.py
maya python api 2.0 node example which evaluates with respect to node's state
# encoding: utf8
import maya.api.OpenMaya as om
import math
def maya_useNewAPI():
pass
@aigcoder
aigcoder / vp2_test.py
Created June 13, 2025 06:04 — forked from blockinhead/vp2_test.py
minimalistic maya locator with viewport 2.0 draw override
# encoding: utf8
import maya.api.OpenMaya as om
import maya.api.OpenMayaUI as omui
import maya.api.OpenMayaRender as omr
def maya_useNewAPI():
pass
@aigcoder
aigcoder / simple_collisions.py
Created April 18, 2025 09:50 — forked from danbradham/simple_collisions.py
Simple collision detection node network for Maya
from maya import cmds
def simple_collision_check(obj_xform, collider_shape):
'''
Create a node network that checks whether an objects xform is colliding with a mesh. Returns a condition node where outputX, Y, and Z are 1
for colliding and 0 when not colliding.
:param obj_xform: Path to object transform
:param collider_shape: Path to mesh transform
@aigcoder
aigcoder / resetBindPose.py
Created January 23, 2025 07:50 — forked from RiggingRanger/resetBindPose.py
Reset / Save Bind Pose in Maya
"""Reset bind pose for selected joints."""
import maya.cmds as cmds
cmds.dagPose(bindPose=True, reset=True)
@aigcoder
aigcoder / enterMoveJointsMode.py
Created January 23, 2025 07:50 — forked from RiggingRanger/enterMoveJointsMode.py
Move-Joints-Mode Maya Shelf
"""Enter move-joints-mode for all skinned geo."""
import maya.cmds as cmds
for skin in cmds.ls(type='skinCluster'):
cmds.skinCluster(skin, edit=True, moveJointsMode=True)
@aigcoder
aigcoder / soft_selection_weights.py
Created November 15, 2024 11:43 — forked from chris-lesage/soft_selection_weights.py
Get a list of soft selection weights in Autodesk Maya
import maya.cmds as cmds
import maya.OpenMaya as omo
# (Open Maya Old)
def soft_selection_weights():
''' create and return a list of the soft selection weights '''
#TODO: Would be nice to rewrite this using the new API. Low priority.
#TODO: Debug on multiple selections
# temporary hack. Turn off symmetry when reading MRichSelection until I learn to use symmetry.
import maya.cmds
import maya.mel as mel
def SetFPS(fps):
unit = 'ntscf'
if fps == 15:
unit = 'game'
elif fps == 24:
unit = 'film'
elif fps == 25:
@aigcoder
aigcoder / removeUnusedInfluences.py
Created July 18, 2024 05:05 — forked from chris-lesage/removeUnusedInfluences.py
Snippet to removeUnusedInfluences in Autodesk Maya using Python.
import maya.cmds as cmds
'''
# EXAMPLE USAGES:
# Removes all unused influences from skinCluster1
remove_unused_influences('skinCluster1')
# Removes the two specified joints from Body_SkinCluster,
but only if they are not currently weighted to anything.
remove_unused_influences('Body_SkinCluster', ['leg_L0_5_jnt', 'leg_R0_5_jnt'])