Fabric Engine2.0的自定义节点功能
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的自定义节点功能的更多相关文章
- Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署
6.1.平台特定使用的二进制文件配置 该方案与Hyperledger Fabric 1.0 从零开始(五)--运行测试e2e类似,根据企业需要,可以控制各节点的域名,及联盟链的统一域名.可以指定单独节 ...
- 微信公众号php从0开发,包括功能(自定义菜单,分享)
之前写的一篇微信公众号文章. 工作需要,进行此次调研,并记录开发过程. 开发目的,页面授权,页面获取用户头像,用户昵称 微信id, 分享页面. 微信订阅号 无法获取用户个人信息 写在记录前,公众号也是 ...
- Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用
Hyperledger Fabric 1.0 从零开始(十)--智能合约 Hyperledger Fabric 1.0 从零开始(十一)--CouchDB 上述两章,最近网上各路大神文章云集,方案多多 ...
- Hyperledger Fabric 1.0 从零开始(二)——环境构建(公网)
1:环境构建 在本文中用到的宿主机环境是Centos ,版本为Centos.x86_647.2,通过Docker 容器来运行Fabric的节点,版本为v1.0.因此,启动Fabric网络中的节点需要先 ...
- HyperLedger Fabric 1.0的Transaction处理流程
如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为 ...
- 三、主流区块链技术特点及Hyperledger Fabric V1.0版本特点
一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...
- 003-主流区块链技术特点及Hyperledger Fabric V1.0版本特点
一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...
- hyperledger fabric 1.0.5 分布式部署 (七)
fabric 使用 fabric-ca 服务 准备部分 首先需要用户从github上download fabric-ca 的工程代码 cd $GOPATH/src/github.com/hyperle ...
- ztree : 增删改功能demo与自定义DOM功能demo的结合
最近有个项目要用ztree,需要用ztree自带的功能(增删改),也需要自定义DOM的功能(置顶). ztree的demo里有增删改的demo,也有自定义DOM的demo,但没有两者结合的. 所以我把 ...
随机推荐
- 2018最新APP Android UI设计规范
设计稿尺寸:从目前市场主流设备尺寸来看,我们要用 1080 x 1920 PX 来做安卓设计稿尺寸. 以1080x1920px作为设计稿标准尺寸的原由: 从中间尺寸向上和向下适配的时候界面调整的幅度 ...
- 【转】如何在win10(64位系统)上安装apache服务器
如何在win10(64位系统)上安装apache服务器 今天装了Apache服务器,下面是我总结的方法: 一,准备软件 1.64位的apache版本 传送门:http://www.apacheloun ...
- Gym-101673 :East Central North America Regional Contest (ECNA 2017)(寒假自训第8场)
A .Abstract Art 题意:求多个多边形的面积并. 思路:模板题. #include<bits/stdc++.h> using namespace std; typedef lo ...
- Java中如何正确的将byte[]数组转化为String类型?
很多人在编程时,总是喜欢用一下方法将数组转为字符串:(a为byte数组) String s=a.toString(); 可是每次返回的时候,新手看来返回的结果是乱码,比如说我,写RSA算法时,没有注意 ...
- Python——dict(自定义类作key)
Python的dict要求key为不可变数据类型,通常采用str或int,但在某些应用场景下,需要采用自定义类型对象作key, 此时的自定义类需要实现两个特殊方法:__hash__.__eq__,用于 ...
- python性能分析——insert()
我们在list中插入数据时,经常使用这两个函数: append():在列表的末尾增加一个数据 insert():在某个特定位置前加一个数据 Python内的list实现是通过数组实现的,而不是链表的形 ...
- java-类中需注意的问题
1.对成员变量的操作只能放在方法中,方法可以对成员变量和该方法中声明的局部变量进行操作. 在声明类的成员变量时,可以同时赋予初值,例如: class Test { int a=12; float b= ...
- JAVA 实用插件
一.alibaba开发规约插件 https://p3c.alibaba.com/plugin/eclipse/update 下载地址 alibaba是个优秀的公司,这个插件能很好的规范代码,推荐给大家 ...
- 使用patroni 解决hasura graphql-engine pg 数据库ha的问题
环境准备 机器pg 数据库地址修改为haproxy 的ip地址,端口是haproxy的tcp 端口,配置比较简单 hasura graphql-engine docker-compose versio ...
- oracle-sql优化器
优化器optimizer Oracle 执行计划(Explain Plan) 说明 http://langgufu.iteye.com/blog/2158163 explain plan是一个dml语 ...