数字人轻松学Xpresso入门-7

作者: DIGITALMAN | 来源:发表于2017-08-11 14:28 被阅读520次

【引言】

越来越难了,要又心理准备啊。

这篇研究一下XPRESSO和材质方面的应用。通过四个案例学习几个重要的“节点”。

【研究】

第一案例 制作材质动画。

在《XPRESSO入门-5》中,举例子制作过下图,皮带绕轮子转动的动画。方法是利用XPRESSO控制皮带模型上材质的U和V方向的数值,制作出该材质纹理移动的动画。实际上,利用这种办法可以制作出很多类似的动画,比如管线中的水流动画等。

再比如:

1、理发馆门口的招牌灯的制作。

2、你可以用XPRESSO控制里边“圆柱”,制作旋转动画。但也可以用XPRESSO直接控制“圆柱”的纹理,制作出旋转动画。就看哪个更方便控制,就用哪一个。

第二案例 制作一个能够改变的材质动画。

场景如果有一个模型,我们想把它的材质改变(当然,你必须先制作出不同的材质),使用XPRESSO,会更加方便。

1、在场景中建立一个立方体。

2、建立如下材质(漫反射、玻璃、钢等,随你)

3、添加一个空白物体,建立XP标签。把任意一个材质球赋给立方体。

4、点击空白物体,添加“用户数据”,建立如下数据。

5、打开XPRESSO编辑器,添加-XPRESSO节点--常规--链接列表。在属性栏,把7个材质拖进来。

6、“链接列表”节点

输入端口:

索引[-2147483648..2147483647] 此端口使您可以从列表中访问一个特定的对象。例如,传递的值为 0 到此端口,以访问的列表中第一个对象;输入值为 1 ,来访问列表中第二个对象等等。

如果索引值大于列表中的对象数目,该指数再次循环返回到列表的开头。比如,在列表中有两个对象和索引值为 2,该节点将输出的第一个对象 (从0开始,0为第一个)。

输出端口:

链接:输出链接列表中选定的索引号对应的对象。

数量 :[-2147483648..2147483647]   输出链接列表中的对象的总数。

7、把模型右侧的纹理拖入进来,把空白物体拖入进来,建立如下连接。空白数据节点--用户自己定义--数据,链接“链接列表”的索引节点。链接输出端连接纹理的“材质”输入端口。

8、调整数据输入(0-6),渲染看看:(因为列表里共有7个材质,所以编号从0-6)

9、由于自定义数据,动画的属性是勾选的,所以我们可以K帧制作材质变化的动画。

10、在0帧点,数量为0,在90帧,数量为6,进行K帧。按SHIFT+F3,调出时间线,调整动画的曲线为直线,这样保证材质变化是均匀的。渲染动画就如题图所示。

11、如何让材质随机变化呢?

那么就必须采用“随机”节点,让它随机产生0-6的随机数值出来。打开XPRESSO编辑器,添加一个随机节点。

该节点能够产生随机数。

属性面板:

有两种模式可用于生成这些数字: 自由和时间。在属性管理器中选择所需的模式。

该节点可以输出随机值的下列数据类型: 布尔、 整数、 法线、 实数或矢量。指定通过该节点的输出端口所需的数据类型。

自由模式:在此模式下,将生成随机数,每次计算节点时将产生新的随机值。这将导致每个动画看起来不同。

时间模式:在此模式下,相同的随机数,将生成每帧动画,即,如果动画是停了下来,然后重播它将会前一动画一样,因为,例如,帧 34 始终将输出相同的值。

仅有正的:这个你懂得。

输入端口:只有一个“随机种子”,改变它的值,会产生不同的随机值。(比如种子为“123”,那么你可能在一个流程产生的随机数值不同虽然不同,但是,如果再执行一遍,它产生还是这些随机数值。为了产生变化,每次循环,输入不同的随机种子,那么它产生的随机数值是完全不同的,保证了随机性,这就是它的用处。)

输出端口:

实数:-1.0  ~1.0 可以添加多个输出端口。

整数:-2147483648..2147483647。

布尔:0或1。

法线:用XYZ表示。

矢量:用XYZ表示。

12、如何让它随机产生0-6的随机数值出来?

首先保证随机数节点 RAND()产生的数值范围是: 1>RAND()>0;利用绝对节点,来处理这个问题。

其次:生成一定范围的随机数方法是这样的,假设给定数字范围最小是A,最大是B,公式是:

=A+RAND()*(B-A)。举例来说,要生成大于60小于100的随机数字,因为(100-60)*RAND()返回结果是0到40之间,加上范围的下限60就返回了60到100之间的数字。

添加绝对节点把随机从 -1~1,转换为0~1;数学节点采用乘法,“输入2端口”的数值为6 (6-0),再加上0就不用编写了。最后用通用节点,数据类型为“整数”,保证随机值:0-6。

13、建立连接如下:点击播放,发现材质更换跟“疯”了一样。如何控制变化的节奏看?必须建立一个“时钟”或开关控制随机数产生的频率。这个问题参考上一篇,自己研究一下。

第三案例  另一种改变纹理方法

上面的方法虽然能改变一个模型上的纹理,它的优点是随机性好,但可控性差。下面再举一个案例用另一种方法改变纹理,这个方法比上一个方法的可控性好。

1、在场景中建立如下材质和一个模型”球“。

2、建立反射环境-天空;再建立空白物体,添加XPRESSO标签。

3、点击空白--用户数据

首先“添加群组”--建立“控制组”;在“控制组”下面点击添加数据---建立“材质列表”。 数据类型--整数;用户界面---循环。勾选动画(可以K帧)。

其次,添加数据格式为:数字;列表名称(注意,那个分号为半角分号)。

4、在空白的属性窗口出现--控制--材质列表。

5、把空白物体拖入XP编辑面板;把模型”球“右边的材质标签拖入--纹理;把四种材质从材质编辑窗口拖入,分别选择各自的输出和输入端口,如下。如何一一对应进行连接呢?

6、添加--逻辑--条件节点。把”条件节点“数据类型改为”材质“,这个是关键!建立如下连接。

7、条件节点用法:有点象编程的SWITCH CASE 语句。

”条件节点“就像一个交换开关,具有两个或更多的输入端口。(可以向该节点添加任意数量的”输入端口“)

”开关端口“值确定哪个”输入端口“的值从“输出端口”输出出去。例如,如果开关设置为 0,该节点输出第一 (即最顶部) 输入端口值。如果开关设置为 1,该节点输出第二个输入端口值等。选择”条件节点“的数据类型在属性管理器中改变。

了解该节点以后,还需要解释上面的逻辑吗?

比如材质列表选择塑料材质,塑料材质对应的数值为1,输入到”条件节点“的开关端口,”条件节点“就把对应的“输入2端口”的值通过“输出端口”输出给“纹理节点”材质。输入2端口的值是什么?是塑料材质对象,也就是把塑料材质赋给了”球体模型了。

8、渲染测试:

9、制作材质改变动画,直接点击材质列表进行改变材质,K帧即可。(略)

所以说,这种方式可控性比较好。

第四案例  制作随机纹理

1、制作一个立方体,然后克隆为如下。

2、制作一个凹凸材质,赋予克隆。渲染之后发现,每个立方材质都是一样的。这种感觉太死板。

能否改变一下,使每个立方体的贴图UV有点偏移,从而产生一些变化。

3、在克隆上按C,转化为多个立方体,使每个物体都有该材质。一个一个手工改变UV偏移值吗?当然不能,我们利用XPRESSO帮助我们改变它们。

4、建立一个空白物体,添加XPRESSO标签。把任意立方体的右侧材质标签拖进来。为纹理的偏移U和偏移V添加一个随机标签。

5、因为“随机节点”输出端口如果为实数,那么数的范围为-1~1之间的随机数,对于立方体来说偏移太小了(模型为200CM),所以,添加一个数学节点用乘法,“输入2端口”为100。再利用一个随机节点连接纹理的“连续输入端”,这个输入端是布尔值,不是1就是0,如果随机节点产生为0,则纹理不连续,否则,只要“随机节点”产生的数据不是零,纹理就当为“真”,产生连续。

6、不好理解是吧,复制一个结果,数据类型改为布尔看看。只要“随机“节点实数输出的不是0,连续就当为”真“。

7、现在有一个立方体的纹理发生偏移了。如何让这些立方体的纹理都发生偏移呢?用上边的“链接列表”节点吗?

太没意思了,学习几个新的节点,在几个节点配合下,逐步选出每个材质。

先给出逻辑关系图吧,这里有三个新节点:层级,对象索引,标签,连接如下:

8、点击播放,或点击场景,你会发现纹理发生了不同的偏移,形成”随机“纹理,目的达到了。

关于这三个新节点的详细说明和使用原理,请见下一篇,这篇内容太多了。我猜你的头都“痛”了吧?

下图是“层级节点”的属性设置:

纹理随机了很多。

【感悟】

        通过以上XPRESSO学习,问你一个问题,XPRESSO标签是什么?

        我感觉:它是一个“万能”,又是一个“自定义”标签,什么都没有,什么都可能,什么都能做,非常自由自在,随你如何编辑,它的功能就会改变,正如老子的话“玄而又玄,变化出焉”,这不像如“平滑”标签那样功能那样固定和有限。所以,从事动画的CG人,一定要好好学习它啊!

         天下一理。我最近学习中医,我的感悟是:中医配伍中药的理论基本都来自《神农本草经》。本草经用简明的语言只记录不同的药物药性(四气:温热寒凉,五味酸苦甘咸辛)和归经,并没有说明什么东西治疗什么病;而李时珍的《本草纲目》,却详细的把什么药物治疗什么病都列出来了,限制了药物的灵活使用,中医很少用。(李时珍的最大贡献不仅是《本草纲目》一书,而是《濒湖脉学》)人之所以得病,是人的的阴阳平衡被破坏了(外部和内部的影响),中医治病就是通过药物(这只是其中一种办法之一)的药性和归经,通过人体来调整自身的阴阳平衡,使之“升降出入”正常。

         跑题了,我的意思是说XPRESSO标签虽然没有直接什么功能,但是,那里边能添加各种不同的节点,经过不同的逻辑组合,就会使XPRESSO标签具有不同的功能,就像中医配伍中药一样,能解决很多不同的问题。

相关文章

  • 数字人轻松学Xpresso入门-7

    【引言】 越来越难了,要又心理准备啊。 这篇研究一下XPRESSO和材质方面的应用。通过四个案例学习几个重要的“节...

  • 数字人轻松学Xpresso入门-8

    【引言】 好久没有写XPRESSO文章了,是因为天气太热的缘故。 这几天下雨,天气凉爽,心情也好了,接着写一篇有关...

  • 数字人轻松学Xpresso入门-6

    【引言】 这篇继续用XPRESSO来研究一下“数字变化”的动画。 XPRESSO是制作动画的利器,但有时候制作动画...

  • 数字人轻松学Xpresso入门-5

    废话不多说,继续用XPRESSO研究皮带轮子的运动。 第一步制作轮子: 1、在场景中建立一个圆盘,设置如下: 2、...

  • 数字人轻松学Xpresso入门-1

    【引言】 很早就想写python 和 Xpresso方面的东西,想在这方面研究一下。毕竟从事软件编程多年,我觉得写...

  • 数字人轻松学Xpresso入门-2

    为什么上一篇用集成电图,这一篇用电子积木图呢?比喻它的功能和特点:XP(以下简称)每个节点的输入输出端口以...

  • 数字人轻松学Xpresso入门-3

    【引言】 通过上一篇的讲解,希望能够带领CG人进入图形化编程领域。三维软件在模拟物质世界的运动和相互联系规...

  • 数字人轻松学Xpresso入门-4

    【引言】 本篇有两个目的: 一是通过个实例来学习一下,如何用XPRESSO检测模型物体相互"影响"。 二是交流一下...

  • 2020-04-04

    数字人轻松学习Blender系列之八:建模-7—— LoopTools(桥接 / Circle / Flatten...

  • 生活中的幸运儿!贵人相助之数字能量学生气磁场

    易号堂 在前面文章为大家分享了什么是数字能量学以及数字能量学的作用,接下来的文章中,我们将为大家分享数字能量学入门...

网友评论

本文标题:数字人轻松学Xpresso入门-7

本文链接:https://www.haomeiwen.com/subject/emnlrxtx.html