【译】Fabric引擎用户手册——画布图界面认识
Fabric引擎用户手册——画布图界面认识
翻译来源:
http://docs.fabric-engine.com/FabricEngine/2.0.1/HTML/CanvasUserGuide/graphview.html
【为方便读者阅读,作者对原文进行了少许调整。】
Fabric引擎的工作界面如下,包括消息日志界面、资源管理器界面、历史界面、渲染界面、数值编辑界面、画布图界面、时间轴界面。本文将首先对画布图解界面进行简单的介绍。
Fabric画布图(Canvas Graph View)是Fabric节点的基本编辑器,可以删除和添加节点、建立不同节点之间的连接、创建包含节点子图(和/或KL代码)的自定义节点。
在所有的Fabric集成环境中(包括单独的Fabric引擎),画布功能都是可行的,因此,无论使用哪种主程序,你都可以以相同的方式来工作。
创建节点
节点的创建方法有如下三种:
- 预设资源树(Preset Tree):你可以在预设资源树中查找你想要创建的节点。用鼠标将该节点拖拽到画布上来创建该节点。
- TAB搜索(Tab Search):当程序焦点在画布图上时,可以通过按下Tab键来进行智能搜索。你可以输入想要创建的节点的全称/部分名称来找到对应的节点,单击节点进行创建。
- 右键菜单(Context menu):一些特殊的节点,例如背景幕(backdrops)、空的图节点、空的函数节点等可以通过右键菜单来创建。
注意:有一些节点无法通过类型和方法来创建,例如Vec3.uint是不存在的,但是你可以通过查找Math.uint来创建。原因是这些预设资源是多态的,它们可以支持多种类型。
节点UI特性
通过UI可以为节点提供一系列的特性:
折叠按钮
每一个节点都可以通过点击位于节点头部右侧的图标来进行折叠显示,有三种显示状态:
显示所有端口
仅显示连接端口
不显示端口
还可以通过键盘上的1、2、3键来进行上述三种状态的切换。
头部端口
所有的节点都可以通过头部端口进行访问。这一功能在节点折叠的状态下非常有用。
自动布局
选择一个节点,然后按下Ctrl+R键,该节点的所有子节点将会自动布局。
缩放
按下A键,会将所有节点缩放到合适的大小;按下F键,窗口会将当前选中的节点缩放到合适的大小。
编辑
按下shift键,然后双击节点,将会进入该节点的编辑模式。将会进入该节点的子图或者是该节点的KL语言定义。
尾部端口链
可以显示尾部端口链(所有输入端口对应的尾部端口之和),想要显示输入端口对应的尾部端口,仅需鼠标悬停在节点的右侧与输入端口对应的位置即可。
节点连接
你可以通过单击和拖拽端口来进行不同节点之间的连接。再按住shift键的情况下,可以同时连接多个端口。此外,在节点处于折叠的情况下,可以使用头部端口来访问该节点的所有端口。
只有相同类型的端口才能进行连接。当被连接的两个端口的类型不一致时,会弹出端口连接失败的提示。
当点击一个节点的头部端口时,会有一个端口修饰列表,带有“=”的表示该端口是一个输入端口(建议该端口的值由外部传入),带有“>”表示该端口是一个输出端口或者输入输出端口。
端口暴露
为了让主程序或者带有子图的节点更容易的获得端口,端口可以被暴露出来,端口暴露有两种方法。
在画布的两侧面板上右击,然后选择创建端口(Create port),在该对话框中可以设置端口的名字和类型。如果该端口的类型是一个特殊的类型,你需要在 advanced->extension 处添加该名字的扩展。
连接两侧面板上的Expose端口和节点的任何一个端口。使用该方法会创建一个暴露节点,并连接该节点与暴露的节点。
端口选项
当创建或者编辑端口时,额外的端口选项可以通过扩展的元数据(metadata)来指定。
可见组合框,指定该端口以哪种方式暴露给主程序(例如Maya)
正常:如果可能的话,该端口的值将会映射并且转换为主程序的类型(属性)。
不透明:该端口的值应该被主程序以不透明的数据类型进行处理,可以在不同的主程序图中传递KL易失对象。
隐藏:该端口不会暴露给主程序。
保持选择框,对高级画布图是有用的。当该选择框被选中时,表明该端口的值会随着画布图进行存储;如果没有被选中,那么当画布图重新加载时,该值会被重置为默认值。
注意:该选项对于编辑的值会自动设定,在Maya或Softimage等主程序中会设置为简单的类型。
范围选择框,允许指定该值的范围。
组合选择框,允许为该值设置一系列的属性。索引顺序为0-N-1。
执行端口
一些节点可能会提供一个特殊的端口,称之为执行端口。它不包含任何的数据,它的存在仅仅是为了该节点的尾部端口链。你可以通过Execute.Merge节点来使用该端口,用于描述数据流。详细信息请参见KL2DFG Command line utility。
子图
在画布的空白区域右击,然后选择新建空白子图 (New empty graph),这将会创建一个包含子图(subgraph)的新的节点。按下shift键并且双击该节点可以对它进行编辑。点击右上角的Go up按钮结束子图的编辑。
子图的组合
选中多个节点可以组合为一个新的子图。选中多个节点,然后在任何一个节点上右击,在弹出的菜单中选择Implode,将会创建一个带有上述所选节点的新的节点。传入该节点子图的端口也会自动暴露出来。
针对上述操作,还可以执行相对的操作:取消组合。这将会移除带有子图的节点,但是被包含节点将会插入到当前的画布中,并且保留所有的连接关系。
复制和粘贴
可以使用系统指定的快捷键来进行画布的复制和粘贴。可以保存画布中的节点和节点图到系统的剪切板上。文本使用JSON进行编码,因此可以粘贴到任意一个应用程序中,例如文本编辑器或者是其它已经打开的画布。这允许你在不同的DCC中进行复制和粘贴操作。
定义扩展需求
一些节点图可以依赖于硬盘上的KL扩展程序,如果你打算写自定义的KL数据结构,或者是从网上下载第三方的KL扩展程序,那么你需要在程序的顶部指定所依赖的扩展程序。如果你想要定义一个来自于KL扩展程序的数据类型的端口,那么上述条件是十分有帮助的。不同的扩展程序使用逗号分隔,需要提供它的名称和版本号,如果版本号是星号,那么表示可以使用该扩展的任意版本。这些扩展程序在图和KL函数中均试用。
保存/导出预设资源
那些不被任何预设资源库包含的画布节点称之为内联节点(inline nodes)。这些节点会跟随着画布图进行保存。内联节点的名称为斜体,并且在名称的尾部有一个星号。
内联节点可以通过两种方式来保存在硬盘中。
对节点右击,然后选择导出节点图(Export graph),可以将该节点导出为外部文件来使用。当你想要和其他开发者共享该资源或者想要将该资源上传到服务器时,该方法非常实用。导出的节点图会保留当前输入的类型和值。
自定义你的预设资源库。在Fabric定义的环境变量文件中,在FABRIC_DFG_PATH下增加你的文件目录,该目录会作为你的自定义预设资源哭目录。对节点右击,然后选择创建预设资源(Create preset),选择预设资源库,便可以将选择的节点导出。
现在,你可以使用导出的预设资源来创建节点,创建的节点的名称不再是斜体,而且尾部也没有星号,并且可以通过TAB按键来对该节点进行智能搜索。
自定义KL节点
画布节点同样可以包含一个KL函数。在画布图上右击,然后选择新建空白函数(New empty function)来创建KL函数节点。按下shift键然后双击该节点(或者右击节点选择编辑)可以对节点进行编辑。关于更多KL自定义函数,请参考KL Function Editor。
背景幕
背景幕(Backdrops)是一个特殊的节点,用于管理组织你的工作空间。在画布图上右击,然后选择新建背景幕(New empty backdrop)。通过拖拽可以更改它的大小。右击背景幕选择属性可以更改它的颜色。移动背景幕会移动所有包含在背景幕内的节点。使用过程中,仅需要对背景幕内的一个节点进行布局(Ctrl+R),然后可以快速的移动背景幕。
注释
任何节点都可以包含注释。这对于了解其他人创建的画布图是十分有用的。通过右击该节点,然后选择设置注释(Set comment),可以为该节点增加一个注释。同样的,可以通过移除注释(Remove comment)来删除注释。双击注释可进行编辑。还可以对注释进行折叠和显示的操作。
注意:背景幕同样可以设置注释,方便对整个节点区域进行描述。