Skip to content

Instantly share code, notes, and snippets.

@naritomo1984
Last active August 29, 2015 14:17
Show Gist options
  • Save naritomo1984/d309caef1d9d6ca7a61e to your computer and use it in GitHub Desktop.
Save naritomo1984/d309caef1d9d6ca7a61e to your computer and use it in GitHub Desktop.
Shake_EXPR
import pymel.core as pm
import random as rand
objs = pm.selected()
for obj in objs:
pm.addAttr(obj, sn = "Yamp", attributeType = "float")
pm.setAttr(str(obj)+".Yamp", amp)
pm.addAttr(obj, sn = "Zmove", attributeType = "float")
pm.setAttr(str(obj)+".Zmove", amp2)
pm.addAttr(obj, sn = "Zrot", attributeType = "float")
pm.setAttr(str(obj)+".Zrot", amp3)
pm.addAttr(obj, sn = "delay", attributeType = "float")
pm.setAttr(str(obj)+".delay", delay)
amp = rand.uniform(0.01, 0.02)
amp2 = rand.uniform(0.001, 0.002)
amp3 = rand.uniform(0.01, 0.02)
delay = rand.uniform(-10, -20)
expstr = "int $frame = `currentTime -q`;"
expstr += "if($frame == 1 ){"
expstr += str(obj)+".translateZ = 0;"
expstr += "}else{"
expstr += str(obj)+".translateY = abs(sin(time*22)*" + str(obj) + ".Yamp" + ");"
expstr += str(obj)+".translateZ +=" + str(obj) + ".Zmove" + ";"
expstr += str(obj)+".rotateZ = abs(sin(time*22)*" + str(obj) + ".Zrot" + ");"
expstr += "}"
exp = pm.expression(obj, string=expstr, n="exp"+str(obj))
pma = pm.createNode("plusMinusAverage")
pm.connectAttr("time1.outTime", pma.input1D[0], f=True)
pm.setAttr("{0}.input1D[1]".format(pma), delay)
pm.connectAttr("{0}.output1D".format(pma), "{0}.time".format(exp), f=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment