Skip to content

Instantly share code, notes, and snippets.

View BigRoy's full-sized avatar

Roy Nieterau BigRoy

View GitHub Profile
"""
maya.cmds.listHistory() will always include the node itself when history is returned.
Here we're testing whether it's always the first node returned, if not a RuntimeError is raised.
We're also checking whether all nodes in the scene will return a valid history list, which isn't True.
The 'defaultColorMgtGlobals' node returns None instead of an empty list.
"""
from maya import cmds
import maya.OpenMaya as om
import maya.cmds as mc
def callback(node, clientData):
fnDep = om.MFnDependencyNode(node)
node_name = fnDep.name()
print node_name
if __name__ == '__main__':
# Delete previous run (testing only)
import maya.OpenMaya as om
import maya.cmds as mc
import uuid
def get_name(node):
"""Get the long name from the MObject where appropriate"""
if node.hasFn(om.MFn.kDagNode):
return om.MFnDagNode(node).fullPathName()
else:
return om.MFnDependencyNode(node).name()
import maya.cmds as mc
def offsets_to_input(mesh):
num_pts = mc.getAttr('{0}.pnts'.format(mesh), size=True)
for i in range(num_pts):
# Get the internal offset
offset = mc.getAttr('{0}.pnts[{1}]'.format(mesh, i))[0]
# Move the vertex position by the internal offset value (relative)
@BigRoy
BigRoy / inspect_file.py
Created October 27, 2015 10:56
Testing inspect filepath options for Pyblish plugins
cls.__path__ = None
if cls.__module__ != '__main__': # if not local (in-memory)
try:
cls.__path__ = inspect.getfile(cls)
except RuntimeError, e:
print e
@BigRoy
BigRoy / pyblish_get_family_options.py
Last active November 20, 2015 10:57
Get the options supported by a families' plug-ins by retrieving their "options" property and assembling them. The "options" property should be provided by the plug-in. For example this is done in Extractors in Pyblish Magenta: https://github.com/pyblish/pyblish-magenta
import pyblish.api
import logging
log = logging.getLogger(__name__)
def get_family_options(plugins, family):
"""Return the user-specifiable options for this family
The options name and types are gathered through
@BigRoy
BigRoy / integrate_asset_simple.py
Created February 27, 2016 12:32
A Pyblish integrator draft for Pyblish Magenta that integrates files into a "publish" folder next to the current file.
import os
import shutil
import pyblish.api
import pyblish.util
import pyblish_magenta.api
class IntegrateAssetsSimple(pyblish.api.Integrator):
"""Name and position instances on disk for shots
@BigRoy
BigRoy / fusion_print_selected_tool_inputs.py
Last active July 25, 2016 20:44
Debug print selected tool inputs in Fusion
# For each selected tool
tools = comp.GetToolList(True).values()
for tool in tools:
print tool.Name
# For each input
inputs = tool.GetInputList().values()
for input in inputs:
name = input.Name # ui friendly name
@BigRoy
BigRoy / mpxfiletranslator_crash_example.py
Created October 19, 2017 13:49
This is a custom MPxFileTranslator that can be loaded as plug-in into Maya. With this loaded as plug-in you can reference any `.txt` file on disk. To make this work save a `.ma` scene next to the text file with the same name and reference the txt file. What should happen is that the `.ma` should be loaded three times within a single reference no…
"""This is a custom MPxFileTranslator that can be loaded as plug-in into Maya.
With this loaded as plug-in you can reference any `.txt` file on disk.
To make this work save a `.ma` scene next to the text file with the same name
and reference the txt file. What should happen is that the `.ma` should be
loaded three times within a single reference node in Maya.
Note: it crashes in Maya 2018 when saving the scene and then reopening the scene.
"""
@BigRoy
BigRoy / avalon_dependencies.py
Last active June 7, 2019 13:09
Example pseudocode to collect dependencies and publish them in Avalon database
"""Example pseudocode to collect dependencies and publish them in Avalon database.
- Collect dependencies of what is included/used as representation at time of publish (example shows Maya implementation)
- Store in database under version[data][dependencies]
- Debug print dependencies for a representation (see psuedocode at end)
"""
import maya.cmds as mc
import avalon.api as api