这篇文章上次修改于 344 天前,可能其部分内容已经发生变化。

方向模糊(dirblur),上帝之光(godrays),蓝宝石光线(S_rays)都是常用的nuke节点,可以用来制作体积光效。其中一个重要的参数:效果中心点位置信息(center),在移动的画面上,这个参数通常需要手动k帧对其素材,这有些不方便。可以通过houdini将该参数信息传递给nuke,从而免k关键帧,效果如下。

先对rubbertoy模型和相机做一个简单的动画,用extractcentroid节点提取质点
2024-01-27T12:49:12.png
对该质点使用vop节点获得相机下的坐标乘以对应的分辨率,输出v属性。
2024-01-27T12:51:12.png
2024-01-27T12:53:24.png
621.212,284.524即为nuke下center.x,center.y的值,也就是对应的屏幕坐标。

创建一个崭新的相机,使用vex读取上述vop节点的v属性
point('/obj/geo1/pointvop1',3,'v',0)
point('/obj/geo1/pointvop1',3,'v',1)
2024-01-27T12:57:31.png
这样相机的transform参数已经为对应的屏幕坐标信息了
2024-01-27T12:59:46.png
将相机导出fbx,参考如图
2024-01-26T17:06:40.png
在nuke中创建camera相机节点,读取该fbx文件,translate信息已经成功被读取。在godrays节点下center读取camera translate信息即可。
2024-01-27T13:08:37.png
可以看到该值与houdini中一致,代表着质点对应的屏幕坐标,自动跟踪,就不需要手动k关键帧了。

附hip,nk:
untitled.hip
1.nk