借助Houdini PDG批量处理alembic文件

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值