Skip to content

Instantly share code, notes, and snippets.

View PeterDrakeNichols's full-sized avatar

Pete PeterDrakeNichols

View GitHub Profile
@PeterDrakeNichols
PeterDrakeNichols / unfillShape.py
Last active June 28, 2023 20:52
Krita script to change filled shape to an outline that is easily refillable. Meant to make fixing animation spacing easier with the onion skin docker.
from krita import *
#A script to cut out the center of a filled shape so that you can see spacing better with the onion skin docker.
#Go to the frame and layer you want run the script and your left with an outline that you can see properly in the onion skin
#Just fill it back up when your done with the bucket tool
##------IMPORTANT!!!!!--------## Make sure onion skin opacity is less than 95% ish
#TIP: when refilling set your bucket tool to grow by 1px ish to get rid of any artifacts
#To add it to your project just go to tools -> scripts -> ten scripts-> click the elipse next to the hot key you want
#-> navigate to the script and your done!
@PeterDrakeNichols
PeterDrakeNichols / smartCollisions.py
Last active February 23, 2018 05:25
smart collisions
import maya.cmds as mc
import maya.mel as mm
import maya.api.OpenMaya as om
import gkak.utils.file
'''
excerpt from cMuscle.py:
Smart collision class for cMuscle system.
Uses getters and setters to make collision objects easier to work with procedurally
Functions for importing, exporting and mirroring collision objects
@PeterDrakeNichols
PeterDrakeNichols / ribbonTwistLimb.py
Last active January 21, 2018 18:06
super stable ribbon twist for arms and legs
import maya.cmds as mc
import maya.mel as mm
"""
functions for making an arm (or other limb) twist that never flips.
A nurbs surface with a twist deformer is created in world space.
The world space surface drives a ribbon with follicles attached to the limb via blendshape
Since There are no aim constraints involved so we dont have to worry about flipping
Notes:
@PeterDrakeNichols
PeterDrakeNichols / ballControl.py
Created January 3, 2018 00:21
ball control class
"""
class for creating ball control object
@category Rigging @subcategory Rigbase
@tags control class
@author: petey
"""
import maya.cmds as mc
class ballControl():
def __init__(
@PeterDrakeNichols
PeterDrakeNichols / softTarget.py
Last active January 21, 2018 17:49
softTarget
import maya.mel as mm
from rigit.v1_0.utils import hair
def makeSoftTarget(prefix, smoothness = 10, parent = None):
'''
a function for making a single transform with soft body effects
@param prefix: str, prefix for naming objects
@param smoothness: float, how loosely particle fallows, 10 is very loose 0 is 100% fallow
@PeterDrakeNichols
PeterDrakeNichols / esteban.py
Last active October 31, 2017 10:54
esteban py examples
for i in range(10):
for j in range(10):
coord = (i,0,j)
print coord
plane = mc.polyPlane()
mc.xform(plane, t = coord, ws=1)
mc.aimConstraint('locator1', plane)
# normal for loop iterating over string
for x in 'esteban':
@PeterDrakeNichols
PeterDrakeNichols / oneChannelFalloff.py
Created October 30, 2017 17:18
nodes for falloff from driven at
def oneChannelFalloff( ctrlAt, targetAts, stepFactor = 1 ):
'''
@param ctrlAt: string, attribute driving the targets
@param ctrlAt: string, attribute driven by stepped influence from ctrlAt
@param stepFactor: float, how much influence should the effect have
@param preval: float, optional starting value of control Attr to be normalized
'''
preval = mc.getAttr( ctrlAt )
step = 1.0 / len( targetAts )
@PeterDrakeNichols
PeterDrakeNichols / hasSkinCluster.py
Created October 11, 2017 16:39
test if has skincluster
def hasSkinCluster(objList = []):
hasClusterList = []
for obj in objList:
objHist = mc.listHistory(obj, pdo=True)
skinCluster = mc.ls(objHist, type="skinCluster") or [None]
cluster = skinCluster[0]
if cluster:
hasClusterList.append(obj)
return hasClusterList
@PeterDrakeNichols
PeterDrakeNichols / scriptEditor.py
Created October 6, 2017 17:45
ghost robot script editor
import sys, os
import maya.cmds as mc
import rigit.v1_0 as rigit
mobilePath = 'C:/Users/Peter/Google Drive/projects/'
officePath = '//MONTANA/jobs/ghost/bipedal_drone/assets/'
workingPath = officePath
assetName = 'bipod'
@PeterDrakeNichols
PeterDrakeNichols / scriptEditor.py
Created October 6, 2017 17:45
ghost robot script editor
import sys, os
import maya.cmds as mc
import rigit.v1_0 as rigit
mobilePath = 'C:/Users/Peter/Google Drive/projects/'
officePath = '//MONTANA/jobs/ghost/bipedal_drone/assets/'
workingPath = officePath
assetName = 'bipod'