Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # cwisbg.com
- # updated 1-17-19
- # 9-27-17
- # Current Data Structure, comma seperated
- # Frame, translate.x, translate.y, translate.z, rotate.x, rotate.y, rotate.z
- # will bake animation to a locator based on data
- from pymel.core import *
- w = workspace(act=1, q=1)
- fileLocation = fileDialog2(dir = w, ds=1, fm = 1 )[0].replace("\\","/")
- fname = fileLocation
- src = open(fname, 'r').readlines()
- src = [x.rstrip() for x in src]
- i = 0
- def grpr(name):
- g = ls(name)
- if not g:
- g = group(n=name,em=1)
- return g
- name = "Data"
- dataGrp = grpr(name)
- l = ls("{0}{1}_lctr".format(name,i))
- if not l:
- l = spaceLocator(n = "{0}{1}_lctr".format(name,i))
- lineTracker = 0
- for line in src:
- doLine = True
- #print "At line ", lineTracker
- data = line.split(",") # Split at Comma, change ',' to desired split character
- if len(data) < 1:
- print "line is empty, skipping"
- pass
- else:
- #print data
- frame = data[0] # Frame
- tx = data[1] # Translate X
- ty = data[2] # Translate Y
- tz = data[3] # Translate Z
- rx = data[4] # Rotation X
- ry = data[5] # Rotation Y
- rz = data[6] # Rotation Z
- if not tx or not ty or not tz or not rx or not ry or not rz:
- doLine = False
- if doLine:
- currentTime(frame, u=1)
- ll = spaceLocator(n = "{0}_{1}_lctr".format(name, frame))
- move(ll, float(tx),float(ty),float(tz))
- rotate(ll, float(rz),float(ry),float(rx))
- parent(ll, dataGrp)
- move(l, float(tx),float(ty),float(tz))
- rotate(l, float(rz),float(ry),float(rx))
- setKeyframe(l, at = "translate")
- setKeyframe(l, at = "rotate")
- i += 1
- lineTracker += 1
Advertisement
Add Comment
Please, Sign In to add comment