Skip to content

Instantly share code, notes, and snippets.

@tokejepsen
tokejepsen / nukestudio_frame_exporter.py
Last active February 9, 2024 16:43
NukeStudio Frame Exporter
"""
Place in [NUKE_PATH]/Python/StartupUI
"""
import os
from PySide2 import QtCore, QtWidgets
import hiero.core.nuke as nuke
import hiero.core.nuke.Node
@tokejepsen
tokejepsen / post_script_ngskintools_import.py
Created May 10, 2019 09:27
mGear Post Script ngSkinTools Import
import os
import pymel.core as pc
import ngSkinTools.importExport
import mgear
basename = os.path.basename(pc.sceneName())
filename = os.path.splitext(basename)[0]
directory = os.path.dirname(pc.sceneName())
@tokejepsen
tokejepsen / post_script_studiolibray_import.py
Created May 10, 2019 09:29
mGear Post Script StudioLibrary Import
import os
import pymel.core as pc
from studiolibrarymaya import animitem
basename = os.path.basename(pc.sceneName())
filename = os.path.splitext(basename)[0]
directory = os.path.dirname(pc.sceneName())
@tokejepsen
tokejepsen / mut.py
Created February 1, 2016 14:11
Maya: Unfreeze Transform
import pymel.core
for node in pymel.core.ls(selection=True):
grp1 = pymel.core.group(empty=True)
grp2 = pymel.core.group(empty=True)
pymel.core.delete(pymel.core.parentConstraint(node, grp1))
pymel.core.delete(pymel.core.parentConstraint(node, grp2))
pymel.core.parent(node, grp1)
@tokejepsen
tokejepsen / mgaor.py
Last active May 18, 2022 02:22
Maya: Get Attribute On Renderlayer
import pymel.core
drg = pymel.core.PyNode('defaultRenderGlobals')
# iterate over the selected renderlayers.
# can select renderlayers through the outliner with "Display" > "DAG Objects Only"
data = {}
render_cams = []
for layer in pymel.core.ls(selection=True, type='renderLayer'):
@tokejepsen
tokejepsen / mcatu.py
Last active February 23, 2022 13:44
Maya: Convert AiStandardSurface to USDPreview Surface.
"""
Will convert aiStandardSurface to usdPreviewSurface.
Usage:
- Select aiStandardSurface nodes and execute code.
"""
import pymel.core as pc
def list_connections(node, skip_nodes, **kwargs):
@tokejepsen
tokejepsen / nssfoet.py
Last active November 5, 2021 14:56
Nuke: Start, middle and end frame of each TimeClip
"""
Select all TimeClips and run code.
Will produce a frame hold with start middle and end of the time clips.
"""
import nuke
frames = []
for node in nuke.selectedNodes():
node["selected"].setValue(False)
@tokejepsen
tokejepsen / mbtnw.py
Created October 29, 2021 14:44
Maya: Batch Transfer Ngskintools Weights
"""
Select targets then source last.
"""
import pymel.core as pc
from ngSkinTools.mllInterface import MllInterface
selection = pc.ls(selection=True)
targets = selection[:-1]
source = selection[-1]
@tokejepsen
tokejepsen / hold_frame_analyzer.py
Last active October 5, 2021 15:25
Hold Frame Analyzer
"""
Select the node to analyze for held frames.
Outputs a FrameHold node with animation synced to the held frames.
"incremental" > If True only increment held values by 1. If False held values are the frames.
"operation" > choice between "Auto Crop" and "Avg Intensities". Different footage can require different operations. If one operation misses a frame movement, then try the other.
"""
import nuke
@tokejepsen
tokejepsen / nvm.py
Last active August 25, 2021 14:49
Nuke: Vertical Merge
import nuke
x_separation = 110
y_separation = 110
selection = {}
for node in nuke.allNodes():
if node["selected"].value():
selection[node.name()] = node