1.导入
通过FilePattern Top来加载一个指定文件夹中的所有abc,目的是识别abc的filePath和fileName。
Pattern:$HIP/Fix/*
2.识别abc文件起始帧
通过PythonScript Top来判断始末帧,并保存到@startFrame、@endFrame属性中。
import hou
import _alembic_hom_extensions as abc
fileDirObj = work_item.attrib("directory")
fileDir = fileDirObj.asString()
fileName = strData(work_item,"filename")
filePath = fileDir + "/" + fileName
#print(filePath)
timeRange = abc.alembicTimeRange(filePath)
startFrame = int(hou.timeToFrame(timeRange[0]))
endFrame = int(hou.timeToFrame(timeRange[1]))
#print((startFrame,endFrame))
work_item.setIntAttrib("startFrame",startFrame-1)
work_item.setIntAttrib("endFrame",endFrame-1)
3.定制处理逻辑
在Sop Network中构建处理逻辑。其中第一个节点为Alembic Sop,用来真正加载abc文件。
FileName:`@directory`/`@filename`
4.输出处理后的结果
建立Rop NetWork,在其中创建alembic Driver,设置始末帧(Start/End/Inc:@startFrame/@endFrame),设置导出路径为源文件旁边(Alembic File:$HIP/Fix/`strreplace(@filename,".abc","")`_reMerge.abc)。通过ROPFetch Top引用刚刚创建的alembic Driver,且Evaluate Using设置为ROP Node Configuration。
5.执行
执行ROPFetch Top