前段时间朋友接了个外包,实拍的原始素材在nuke里进行了变速,而一些cg动画在原素材中已经制作完成,需要一个工具对maya文件中动画进行相同的变速来匹配变速后的素材。 其实变速的原理和实现并不是特别复杂,不过繁复的数值计算需要借助脚本来实现。 然后借着节假日的最后一天,写了这个变速工具。这篇文章简单的记录下过程,并把它分享给需要的朋友。 变速的方式 变速实际上是对原始素材的抽帧和补帧, 而对于我们来说,最需要知道的是: 变速后的每一帧,对应的是原始素材中哪一帧画面。 比如,知道变速后的1001帧,是原本的1005帧, 这样把1005帧的动画复制到变速后的1001帧, 就可以完成了这一帧的匹配。 为了得知变速后的对应原始帧,我们可以用这样一个验证方式。 首先用软件输出一个这样的(纯数字)序列帧。 然后套上变速节点进行观察。 在Nuke中常用的变速节点有Retime,OFlow,Kronos等。 首先使用retime节点做最简单的倍速变速。 这里为范围1001-1100的序列帧做一个1.9倍的变速,filter就默认使用box。 点击变速后的每一帧,可以看到对应的图像。 比如变速后的1025帧的图像为原始1046和1047的融合。 然而每个变速节点又有几种不同的变速方式, 这里的retime节点就有none,box和nearest三种方式。 尝试不同的变速方式能看出,有的是直接进行取整,有的是会融合前后帧。 通过这些尝试和观察,对于直接的倍数变速,推导出这样一个公式: 起始帧 + (变速后的帧数指数)*倍数 - 倍数 注意:这里指数是指变速后序列的第几帧。 比如变速后的1035帧的指数就为35。(起始帧为1001帧的情况下) 把上述的公式带进去可以得到结果: 1001 + 35*1.9 - 1.9 = 1065.6 针对于retime节点,不同的变速方式它的取值为: none:直接去小数取整 box:四舍五入后,融合前后帧 nearest:有小数,直接进一位取整 说完了倍数变速,对于OFlow,Kronos和TimeWarp节点进行曲线变速的情况下,可以直接通过观察这里的值进行结果判断: 如图所示,变速后的1059帧对应原始的1081帧,Frame里的值为1080.562。 再次尝试不同变速方式,总结出不同变速方式的求值结果: timeWarp none:直接去小数取整 nearest:四舍五入取整 box:根据小数点的值,画面融合 oFlow motion:根据小数点的值,画面融合 frame:四舍五入取整 blend:根据小数点的值,画面融合 Kronos motion:根据小数点的值,画面融合 frame:四舍五入取整 blend:根据小数点的值,画面融合 通过上述的方法,我们就可以得到这样一个变速信息文件: 左侧为变速前帧数,右侧为对应的原始素材帧数,中间用空格隔开。 变速工具 工具我放在了github上,直接下载使用即可。 https://github.com/lingyunfx/MayaCameraRetime 使用步骤: 1.选择变速信息文件(txt格式) 2.选择变速方式,支持motion,frame,none三种类型。blend可以使用motion进行变速,nearest可以使用frame方式。 3.点击run按钮,工具会对maya中所有的动画进行变速。(保险起见,最好在操作前进行文件保存) |
大家都知道静态网页有利于SEO,但是很多新手在使用DZ论坛程序的时候不懂,很多人在问DZ
牛逼牛逼,之前的论坛应该见我发过,未来是即时渲染的天下,并且U-render 最有潜力很
所有版本官方配置单请点击链接:https://knowledge.autodesk.com/z ... -Autodesk-May
https://www.acfun.cn/player/ac11550103
Autodesk最近发布了3D模型动画软件Maya 2020.2和Maya LT 2020.2新功能的在线文档,两
https://player.bilibili.com/player.html?aid=74213651cid=127467367page=1