数字人轻松学Xpresso入门-7

【引言】

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

这篇研究一下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标签具有不同的功能,就像中医配伍中药一样,能解决很多不同的问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容