PDG初探——Houdini与Maya的数据交互

PDG初探——Houdini与Maya的数据交互

PDG系统里的“Command Chains”引起我的兴趣。它可以在PDG里开启其他软件的后台进程,运行指定的命令。这是一个开放的功能,目前内置了Houdini和Maya的接口,其他软件可以自行使用“generic command chain”来配置。

想必大家都有这种经历,需要从无数个maya文件里导出模型的abc缓存,然后再到houdini里引用。一遍遍开maya文件极其繁琐就不说了,重要的是maya的打开速度真的不敢恭维……开个场景等一年简直再正常不过了(忍不住吐槽辣鸡maya)。有了PDG,这些繁琐的任务全部可以批量自动化处理!我们今天就来看看如何实现,抛砖引玉~

本次实现的任务是批量将mb文件夹内的三个maya文件导出abc缓存,并通过alembic节点导入houdini中,然后分别生成相应的hip文件。

总的节点图先来一张。蓝色和黄色的节点框分别是maya command chain和houdini command chain。下面逐步分析。

首先使用makedir创建路径节点在当前路径下创建output文件夹用于存放abc。

然后使用file pattern,将当前路径下mb文件夹内的三个maya文件读取进来。注意这里的$PDG_DIR效果等同于$HIP哦,别晕。

然后就进到我们的maya command chain,它可以在后台调用maya,执行python命令。需要注意的是,必须手动指认$PDG_MAYAPY这个变量,这个变量指向的是maya安装路径下bin文件夹里的一个叫mayapy.exe的文件,该文件负责在后台执行maya命令。

如图所示设置好该变量,你可以直接指认到本机的maya路径,也可以放一份到公司服务器哦。

来到server begin看一看,这里需要设置“Session Count from Upstream Items”打勾,这样设置了以后,PDG会根据每一个maya文件开启一个maya进程,执行相应命令,每一次的循环依次执行。

使用attribute create节点创建相应的属性。@filename属性对应的就是mb文件夹内的文件名。@pdg_input对应file pattern节点读取进来的文件路径。

这里设置需要在Maya进程中执行的python命令,就是一个最基本的打开文件然后执行abc导出的一系列命令。

以上就是maya部分,PDG执行到这里以后会打开每一个maya文件然后分别导出abc缓存到当前路径的output路径下。我们接着看。

使用这个houdini command chain分别开启三个houdini进程,使用alembic archive节点导入每一个abc缓存,并保存相应的hip文件到scene路径下。

这个是每一个houdini进程内执行的python命令,完成上述任务。

大功告成!你只需要轻轻在这里点击cook output node命令,来执行整个PDG流程。

可以看到执行后,在相应路径下生成了对应的abc缓存和hip文件。

非常强大的功能!不得不说,PDG,你有点飘了~

最后分享一下hip文件,大家Enjoy~

https://pan.baidu.com/s/1UQ0rLkACiOrnlBPbihUKGw