我有一堆 csv 文件,其中每一列都有一个值,代表 Canadarm2 的 7 个段中的每个段的角度。最大的文件包含 5 小时任务中每秒的值,为 30 兆!
我在下面的 C4D 脚本管理器中编写了这个 python 脚本,它从 csv 读取数据并每秒创建关键帧,其中段根据角度数据旋转。
该脚本适用于最大约 1 兆的小文件,但我收到可怕的“Cinema4D 已停止响应”警报,或者它只是静静地坐在那里,当我尝试处理较大的文件时显然没有任何反应。
有没有人有过这样的经历?可能比我的 12 场演出更多的内存有帮助吗?如果我能在 C4D 中一次处理 30 分钟的数据,那我就赢了。
memLog=''
record = 0
frame=0
path='/Users/...'
filename = path + '30minutes_3meg.csv'
fileobj = open(filename, 'r')
rowcount=0
for row in fileobj:
rowcount=rowcount+1
if rowcount>1:
ar = row.split(',')
colcount=0
for angle in ar:
if colcount == 0:
log=angle
if log==memLog:
record=0
else:
record=1
print log
frame=frame+1
memLog=log
if colcount == 2:
if record==1:
rotate(frame,'SR','r',angle)
elif colcount == 4:
if record==1:
rotate(frame,'SY','r',angle)
elif colcount == 6:
if record==1:
rotate(frame,'SP','r',angle)
elif colcount == 8:
if record==1:
rotate(frame,'EP','h',angle)
elif colcount == 10:
if record==1:
rotate(frame,'WP','h',angle)
elif colcount == 12:
if record==1:
rotate(frame,'WY','h',angle)
elif colcount == 14:
if record==1:
rotate(frame,'WR','h',angle)
colcount=colcount+1