游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2313

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 551|回复: 12

[ifreecode] 从零开始学虚幻4游戏开发系列11

[复制链接]  [移动端链接]
排名
45697
昨日变化
14

41

主题

41

帖子

125

积分

Rank: 9Rank: 9Rank: 9

UID
257049
好友
0
蛮牛币
629
威望
0
注册时间
2017-11-30
在线时间
27 小时
最后登录
2018-2-1

专栏作家

发表于 2017-12-27 16:02:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
在本课的内容中,我们将学习如何创建可以动态变化的材质。

需要提醒大家的是,材质不仅仅可以作为花瓶一样的装饰品,我们也可以使用材质来辅助游戏设计。

接下来,我们将学习如何创建动态变化的材质,从而实现当玩家收集香蕉物品的时候,让方块从白色变成红色。

在创建材质实例之前,我们首先需要设置方块的材质。

在虚幻4中打开我们的项目,然后在Content Browser的Material文件夹中找到M_Cube,并双击将其打开。
图片1.png

图片2.png

首先我们需要创建材质的颜色。在材质编辑器中,可以看到有一个Constant3Vector节点连接到Base Color节点上。使用该节点来选择颜色是非常合适的,因为我中包含了RGB三个通道。

现在我们已经有了红色,接下来需要创建白色。添加另一个Constant3Vector节点,可以按下数字3键,然后左键单击Event Graph的空白区即可快速创建。

选中该节点,在Details面板中将Constant下面的R,G,B都设置为1.0。

图片3.png

为了让色彩从白色变成红色,我们需要创建两者之间的平滑过渡。而实现这一点的最简单方式就是使用linear interpolation(线性插值)。

图片4.png

这个词听起来有点唬人,其实也没那么复杂。线性插值的作用就是找到A和B两个数值之间的一个数值。在下图的例子中我们使用线性插值找到和100,200等距的值,也就是150。
当然,如果你对线性插值的数学概念很感兴趣,可以参考百度百科,或其它的更详细解释:

https://baike.baidu.com/item/%E7%BA%BF%E6%80%A7%E6%8F%92%E5%80%BC

如果我们能够控制alpha值,那么线性插值就会更加强大。我们可以认为alpha是A和B之间的百分之,当alpha为0时,我们得到的数值是A,而alpha为1时,数值是B。

在本课的内容中,我们将使用所收集到的香蕉梳理来控制alpha值。

使用LinearInterpolate节点

首先我们需要添加一个LinearInterpolate节点。按下键盘上的L键,然后在Event Graph的空白区左键单击。

图片5.png

接下来还需要创建一个Scalar Parameter节点,然后将其命名为ColorAlpha。接着我们按照以下方式来连接节点。

图片6.png

注意:默认情况下LinearInterpolate节点输出的是A,这是因为alpha的初始值是0,当alpha值变成1的时候,节点输出的就是B。

好了,现在材质已经准备好了。接下来我们还有一些准备工作,但是先让我们检查一下一切是否正常。点击材质编辑器上的Apply按钮,然后关闭材质编辑器。如果我们点击工具栏上的Play按钮,就可以看到方块的色彩是白色的了。

图片7.png

为了让方块可以改变颜色,我们需要动态编辑ColorAlpha参数。但是现在有一个问题,我们没法在游戏运行的时候动态编辑材质实例的参数。
解决的方法是使用动态材质实例。


关于Dynamic Material Instances(动态材质实例)


和常规的实例对象不同,我们可以在游戏运行的过程中对动态材质实例进行编辑。而实现这一点既可以使用蓝图系统,也可以直接使用C++代码。

我们可以对动态材质实例做很多操作,比如更改物体的透明度,让其变得透明,或是增加物体表面的specularity(镜面发射),让其显得更潮湿。

图片8.png

关于动态材质实例,更有意思的一点是我们可以分别对其进行编辑。

创建动态材质实例

我们只能在游戏运行的过程中创建动态材质实例,可以用蓝图系统或c++来实现这一点。

在虚幻4主编辑器的Content Browser中,找到Blueprints文件夹,然后双击打开BP_Player蓝图文件。

图片9.png

首先我们要创建一个新的动态材质实例,然后将其应用到方块的模型上。为此,我们可以在虚幻刚刚生成角色时进行这个操作,也就是要使用Event BeginPlay节点。

在Event Graph视图中找到或添加一个新的Event BeginPlay节点。

图片10.png

接下来添加一个Create Dynamic Material Instance(StaticMesh)节点,该节点将会同时创建并应用一个新的动态材质实例到方块模型上。

图片11.png

接着我们需要设置方块所使用的材质。在该节点的Source Material接口从下拉列表中选择M_Cube。

为了方便稍后引用材质,我们需要将其保存到一个变量中。为此,可以右键单击Create Dynamic Material Instance节点的Return Value蓝色接口,然后选择Promote to Variable。
此时在My Blueprint选项处会看到出现了一个新的变量,将其更名为CubeMaterial。也可以使用快捷键F2来完成该操作。

图片12.png

图片13.png

最后让我们从Event BeginPlay节点到Create Dynamic Material Instance节点之间的白色接口之间添加连接。

图片14.png

注意:一旦虚幻引擎生成了BP_Player,就会创建一个新的动态材质实例对象,然后将其应用到StaicMesh组件上。然后它会将所创建的材质保存在名为CubeMaterial的变量中。

好了,本课的内容到此结束。
在下一课的内容中,我们将创建一个计数器,从而记录所收集的

回复

使用道具 举报

7日久生情
2290/5000
排名
2910
昨日变化
3

9

主题

1114

帖子

2290

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
168159
好友
4
蛮牛币
5095
威望
0
注册时间
2016-9-12
在线时间
691 小时
最后登录
2018-9-21
发表于 2017-12-27 17:06:27 | 显示全部楼层

回复

使用道具 举报

7日久生情
2626/5000
排名
3274
昨日变化
15

2

主题

1812

帖子

2626

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
241666
好友
0
蛮牛币
10190
威望
0
注册时间
2017-9-6
在线时间
388 小时
最后登录
2018-9-22
发表于 2017-12-28 08:03:11 来自Mobile--- | 显示全部楼层
感谢分享

回复

使用道具 举报

5熟悉之中
933/1000
排名
2792
昨日变化
2

0

主题

138

帖子

933

积分

Rank: 5Rank: 5

UID
146162
好友
0
蛮牛币
1399
威望
0
注册时间
2016-4-20
在线时间
309 小时
最后登录
2018-9-21
发表于 2017-12-28 09:26:40 | 显示全部楼层

感谢分享

回复

使用道具 举报

5熟悉之中
641/1000
排名
3534
昨日变化

1

主题

38

帖子

641

积分

Rank: 5Rank: 5

UID
230664
好友
2
蛮牛币
1127
威望
0
注册时间
2017-7-6
在线时间
210 小时
最后登录
2018-8-30
发表于 2017-12-28 09:32:15 | 显示全部楼层
老铁,双击666  谢谢老哥的不吝教学

回复 支持 反对

使用道具 举报

7日久生情
3238/5000
排名
2047
昨日变化
15

0

主题

2116

帖子

3238

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
219676
好友
1
蛮牛币
2411
威望
0
注册时间
2017-7-12
在线时间
494 小时
最后登录
2018-9-21

活力之星

发表于 2017-12-28 11:16:51 | 显示全部楼层
谢谢分享

回复

使用道具 举报

排名
22952
昨日变化
34

0

主题

34

帖子

69

积分

Rank: 2Rank: 2

UID
186188
好友
0
蛮牛币
0
威望
0
注册时间
2016-11-23
在线时间
17 小时
最后登录
2018-5-25
发表于 2017-12-29 00:28:53 | 显示全部楼层
謝謝分享

回复

使用道具 举报

排名
37897
昨日变化
65

2

主题

32

帖子

56

积分

Rank: 2Rank: 2

UID
257804
好友
0
蛮牛币
125
威望
0
注册时间
2017-12-4
在线时间
16 小时
最后登录
2018-4-24
发表于 2018-1-6 23:21:15 | 显示全部楼层
感谢分享

回复

使用道具 举报

排名
37897
昨日变化
65

2

主题

32

帖子

56

积分

Rank: 2Rank: 2

UID
257804
好友
0
蛮牛币
125
威望
0
注册时间
2017-12-4
在线时间
16 小时
最后登录
2018-4-24
发表于 2018-1-6 23:26:09 | 显示全部楼层
感谢分享

回复

使用道具 举报

排名
37897
昨日变化
65

2

主题

32

帖子

56

积分

Rank: 2Rank: 2

UID
257804
好友
0
蛮牛币
125
威望
0
注册时间
2017-12-4
在线时间
16 小时
最后登录
2018-4-24
发表于 2018-1-6 23:35:45 | 显示全部楼层
感谢分享

回复

使用道具 举报

2初来乍到
143/150
排名
20243
昨日变化
18

0

主题

94

帖子

143

积分

Rank: 2Rank: 2

UID
182113
好友
0
蛮牛币
130
威望
0
注册时间
2016-11-8
在线时间
25 小时
最后登录
2018-6-21
发表于 2018-1-31 20:12:39 | 显示全部楼层
66666666666666666666666666

回复 支持 反对

使用道具 举报

2初来乍到
143/150
排名
20243
昨日变化
18

0

主题

94

帖子

143

积分

Rank: 2Rank: 2

UID
182113
好友
0
蛮牛币
130
威望
0
注册时间
2016-11-8
在线时间
25 小时
最后登录
2018-6-21
发表于 2018-2-1 17:42:49 | 显示全部楼层
6666666666666666666

回复 支持 反对

使用道具 举报

2初来乍到
143/150
排名
20243
昨日变化
18

0

主题

94

帖子

143

积分

Rank: 2Rank: 2

UID
182113
好友
0
蛮牛币
130
威望
0
注册时间
2016-11-8
在线时间
25 小时
最后登录
2018-6-21
发表于 2018-2-2 11:47:40 | 显示全部楼层
66666666666666666666666666
[发帖际遇]: facket 捡了钱没交公 蛮牛币 降了 3 . 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关闭

站长推荐 上一条 /1 下一条

快速回复 返回顶部 返回列表