admin 发表于 2018-10-17 11:35:25

Nuke插件转Fusion插件的方法




本教程属于插件盲转,若有不对的地方,请指出。
首先拿一个简单案例边讲边操作,更方便理解。

本次我们要做一个像素化节点,虽然之前我发布过马赛克工具,其实是同理的,换个表现手法再来做一次,顺便研究Nuke的Gizmo布局。
Nukepedia原址:http://www.nukepedia.com/gizmos/filter/sd_pixelate

若不能下载原址的同学,我这边分流一个。

我们先用脚本查看器,或者Notepad工具打开Gizmo看看。

会发现有几十行的代码,如下图:



从中,我们一起来研究代码的结构,若是专业工具打开的,能看到代码行数,普通文本打开则没有,下文中我就直呼行数了。第1-13行,是本插件的信息:版本号,插件名,描述,参数名和作者信息。
从14行开始,是Nuke调用节点的代码,每大括号{}为一段数据,也称为节点,比如Input{ } 就是输入端的节点,大括号内的代码是该节点的参数名称,节点位置,或者表达式语句等等。
表达式几乎和Fusion差不多,只是调用的方法或者写法有点出入。

分析完简单的Nuke节点,我们回过来把他们编译成Fusion节点。
首先要了解Fusion的Macro宏工具的写法,再来编写就容易很多,不了解的可以去看下我出的视频教程。
加入微信公众号 cgsfusion回复: 插件制作

Fusion的宏插件规则也是相当简单易懂的。{} 大括号表示一个参数或者节点的段落,里面包含节点名称,组名,重命名,关联属性,表达式,值,位置信息,颜色信息等等。

转换对照给大家看下:


Reformat 的宽度和高度分别用了表达式,写的是获取Input1的宽度和高度都除以一个自定义参数,所以我在Fusion也用了Resize节点,在Width和Height值上写表达式,这边为何用OriginalWidth,与Width区别就在于它能获取源素材的原始宽高,不会因为代理原因,得到一个临时较小的画面,底下的UserControls{ } 则是自定义参数段落,这边我创建了一个Slider滑竿形式的控件,类型为整数-数值,最少值1,最大值设为1000,默认值是100。




这样我们的第一个节点参数,就能对应起来。
下面我把Fusion 像素化插件分享上来,供大家研究学习。 有问题的同学,跟帖回复吧。

UI结果和计算结果的对比:


http://i2.tiimg.com/512818/b4b20a130d6f9cf3.png


http://i2.tiimg.com/512818/1235575e9a01db7b.png



嘤嘤嘤吗 发表于 2018-11-7 23:05:23

谢谢大佬=-=

落叶飘123 发表于 2020-10-22 09:13:22

谢谢大佬=-=
页: [1]
查看完整版本: Nuke插件转Fusion插件的方法