Fabric Engine是一个多用途的引擎,针对maya等软件写节点写功能很方便。尤其是canvas节点编辑面板,提供了大量现有的功能供用户调用,当然这些节点功能都是可被用户编辑修改的,除此之外还提供了自定义节点的功能,非常强大灵活。

初涉Fabric很容易被编辑器的各种数据类型弄迷糊。于是我扒了Write Canvas nodes in Maya-Fabric Engine这个视频来理清思路。

操作系统:windos7

软件平台:maya

使用工具:Fabric Engine2.0

案例内容:建立三个locator点,将第三个locator的位置放在前两个locator的中间点上。单个locator的位置可以用Vec3来存储,两个locator就得用Vec3[]来存储了,而最终输出给第三个locator的位置数据应该是Vec3,所以Vec3[]到Vec3,中间有一个计算过程。该案例会新建一个节点来处理这个中间的计算过程。

1.进入maya,打开节点编辑器,按tab键建立三个locator节点,选中locatorShape节点,点击节点编辑器上方的remove selected nodes from graph按钮,将其移除节点编辑器,留下三个locator节点。

2.在节点编辑器中,调出dfgMayaNode节点,在该节点的属性面板点击Open Canvas按钮。即可打开Canvas节点编辑面板。

3.在canvas的右侧Expose右键点击creat port功能,新建一个名为result,类型为Vec3的输出点。在canvas的左侧Expose右键点击creat port,新建一个名为targets,类型为Vec3[]的输入点。

4.怎么使用canvas中的现有节点,这里不谈。主要讲怎么新建一个节点,并用该节点将Vec3[]数据类型转换为Vec3数据类型。在Fabic的KL语言中,Vec3类型指的是三维数据类型,例如:Vec3(0,0,0),该数据类型可用于存储rgb信息,或者xyz信息,不一而足,根据需求使用。而Vec3[]指的是Vec3数据列表,这是由一个或多个Vec3数据类型构成的list。Fabric中的其他数据类型也是如此,比如:xfo[],xfo,该数据类型用于表示空间位置,例如:Xfo(ori, tr, sc)。

5.基于上面的分析,从Vec3[]到Vec3的转换就很容易了。我们都知道对列表操作的方法最简单的就是For循环语句,下面我们将把这个转换实现出来。

6.在canvas节点编辑器面板右键,点击New empty function,新建一个空白节点,命名为interpolatepositionarray;然后选中该节点,右键点击Edit进入编辑模式。建一个in口,名为targets,数据类型为Vec3[],建一个out口,名为result,数据类型为Vec3.

在该编辑模式下修改代码块为:

dfgEntry {
result = Vec3(0,0,0);
for(Size i = 0,i < targets.size(),i++)
result += target[i] / Float32(targets.size());
}

上代码块通过for语句求得了targets中Vec3[]数据类型的平均值,并到导出为Vec3数据类型。targets.size()方法用于计算该列表中元素数量。

7.点击Save保存该代码块,点击Go up回到canvas节点编辑器界面,将左右两侧Expose栏中的targets和result接口与interpolatepositionarray节点的targets[]与result接口相连。这样dfgMayaNode节点的编辑工作就完成了。关闭canvas回到maya节点编辑器面板。将两个locator连接到dfgMayaNode节点的入点,另一个locator连接到dfgMayaNode的出点,工作完成。

8.无论前两个locator怎么移动,第三个locator都会在这两个locator的中点。

Fabric Engine2.0的自定义节点功能的更多相关文章

  1. Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署

    6.1.平台特定使用的二进制文件配置 该方案与Hyperledger Fabric 1.0 从零开始(五)--运行测试e2e类似,根据企业需要,可以控制各节点的域名,及联盟链的统一域名.可以指定单独节 ...

  2. 微信公众号php从0开发,包括功能(自定义菜单,分享)

    之前写的一篇微信公众号文章. 工作需要,进行此次调研,并记录开发过程. 开发目的,页面授权,页面获取用户头像,用户昵称 微信id, 分享页面. 微信订阅号 无法获取用户个人信息 写在记录前,公众号也是 ...

  3. Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用

    Hyperledger Fabric 1.0 从零开始(十)--智能合约 Hyperledger Fabric 1.0 从零开始(十一)--CouchDB 上述两章,最近网上各路大神文章云集,方案多多 ...

  4. Hyperledger Fabric 1.0 从零开始(二)——环境构建(公网)

    1:环境构建 在本文中用到的宿主机环境是Centos ,版本为Centos.x86_647.2,通过Docker 容器来运行Fabric的节点,版本为v1.0.因此,启动Fabric网络中的节点需要先 ...

  5. HyperLedger Fabric 1.0的Transaction处理流程

    如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为 ...

  6. 三、主流区块链技术特点及Hyperledger Fabric V1.0版本特点

    一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...

  7. 003-主流区块链技术特点及Hyperledger Fabric V1.0版本特点

    一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...

  8. hyperledger fabric 1.0.5 分布式部署 (七)

    fabric 使用 fabric-ca 服务 准备部分 首先需要用户从github上download fabric-ca 的工程代码 cd $GOPATH/src/github.com/hyperle ...

  9. ztree : 增删改功能demo与自定义DOM功能demo的结合

    最近有个项目要用ztree,需要用ztree自带的功能(增删改),也需要自定义DOM的功能(置顶). ztree的demo里有增删改的demo,也有自定义DOM的demo,但没有两者结合的. 所以我把 ...

随机推荐

  1. 基于链路的OSPFMD5口令认证

    实验要求:掌握基于链路的OSPFMD5口令认证 拓扑如下: 配置如下: R1enable configure terminal interface s0/0/0ip address 192.168.1 ...

  2. [转]TCP滑动窗口详解

    TCP滑动窗口详解  http://lyjdamzwf.blog.163.com/blog/static/75206837201193373226/ TCP滑动窗口(Sliding Window)   ...

  3. 九度OJ1049题-去特定字符(和1111题特别像)

    题目1049:字符串去特定字符 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:11329 解决:5169 题目描述: 输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果. 输入: ...

  4. Scrapy对接selenium+phantomjs

    1.创建项目 :Jd 2.middlewares.py中添加selenium 1.导模块 :from selenium import webdriver 2.定义中间件 class seleniumM ...

  5. CF446 (Div. 1)简单题解

    A .DZY Loves Sequences pro:给定长度为N的序列,你最多可以改变一个数的值,问最长严格上升子序列长度. N<1e5. sol:分几种情况,一种的不改变: 一种是改变,然后 ...

  6. RNN-LSTM-GRU-BIRNN

    https://blog.csdn.net/wangyangzhizhou/article/details/76651116 共三篇 RNN的模型展开后多个时刻隐层互相连接,而所有循环神经网络都有一个 ...

  7. C++ Tips

    1. 虚函数不能是内联的 因为“内联”是指“在编译期间用被调用的函数体本身来代替函数调用的指令,”但是虚函数的“虚”是指“直到运行时才能知道要调用的是哪一个函数.”如果编译器在某个函数的调用点不知道具 ...

  8. hdu3338 Kakuro Extension 最大流

    If you solved problem like this, forget it.Because you need to use a completely different algorithm ...

  9. Redis 5.0.0 releases notes

    Redis 5.0 release notes ======================= ---------------------------------------------------- ...

  10. win7启动老是自动进入Boot Menu无法进入系统

    如图 进入bios设置 点击startup 选择UEFI/Legacy Boot 那里的Legacy Only选项,选择另一个就会出现这种问题 正常进入系统