Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import maya.cmds as cmds
- def main():
- for obj in cmds.ls(sl=True, l=True):
- pointer, = cmds.spaceLocator(n="|%s_Follow" % obj.rsplit("|", 1)[-1])
- dec = cmds.shadingNode("decomposeMatrix", au=True)
- cmds.addAttr(pointer, ln="match_frame", k=True)
- mul = cmds.shadingNode("multMatrix", au=True)
- code = []
- for at in "tr":
- for ax in "xyz":
- cmds.addAttr(pointer, ln="match_%s%s" % (at, ax))
- code.append("%s.%s%s = %s.match_%s%s;" % (pointer, at, ax, pointer, at, ax))
- cmds.connectAttr("%s.o%s%s" % (dec, at, ax), "%s.match_%s%s" % (pointer, at, ax))
- exp = cmds.expression(n="%s_Express" % pointer, s="if (%s.match_frame == time1.o) {\n%s}" % (pointer, "\n".join(code)))
- cmds.connectAttr("%s.bbsi" % obj, "%s.los" % pointer)
- cmds.connectAttr("%s.ro" % pointer, "%s.ro" % dec)
- cmds.connectAttr("%s.pim" % obj, "%s.i[1]" % mul)
- cmds.connectAttr("%s.wm" % obj, "%s.i[0]" % mul)
- cmds.connectAttr("%s.o" % mul, "%s.imat" % dec)
- cmds.setAttr("%s.match_frame" % pointer, cmds.currentTime(q=True))
- cmds.select(pointer)
Add Comment
Please, Sign In to add comment