This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""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. | |
""" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
import os | |
from Qt import QtWidgets, QtCore, QtGui | |
def main(): | |
app = QtWidgets.QApplication(sys.argv) | |
path = r"C:\test\subfolder\file.txt" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def parse_mel_cmd(melStr): | |
"""Return the command, args and kwargs for a MEL command string""" | |
# Get python variant and split of pymel import line | |
import pymel.tools.mel2py as mel2py | |
pyCmd = mel2py.mel2pyStr(melStr) | |
pyCmd = pyCmd.splitlines()[1] | |
cmd, arguments = pyCmd.split("(", 1) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""This is a first draft template that could be used to retrieve the edits on referenced nodes that define a look | |
Next step would be to filter the edits of interest, like shader assignments, sets they are added to, attributes that were added or changed in value. | |
Then we need to store these changes in a format that is artist-friendly and can be re-applied in another scene. | |
""" | |
import maya.cmds as mc | |
from collections import defaultdict |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cls.__path__ = None | |
if cls.__module__ != '__main__': # if not local (in-memory) | |
try: | |
cls.__path__ = inspect.getfile(cls) | |
except RuntimeError, e: | |
print e |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import maya.OpenMaya as om | |
import maya.cmds as mc | |
import uuid | |
def ensure_id(node): | |
"""Add a uuid attribute on the given node with a unique value. | |
Skips nodes that already have the attribute, unless when used upon duplicating. | |
Maya temporarily assigns the prefix '__PrenotatoPerDuplicare_' so we use that |