UE4材质参数集合bate0115

材质参数集合

用于存储可以在任意材质中引用的任意标量参数和矢量参数集合的资源。


材质参数集合(MaterialParameterCollection) 是一个用于存储任意 [标量参数和矢量参数]集合的资源。 这些参数可以在任意材质中引用。这是一个强大的工具,美术借助这个工具可以一次性 将全局数据导入到多个材质。它还有助于设置每个关卡的效果,如雪量、破坏程度、湿度等。 如果不使用此工具,这些按关卡效果需要对关卡中的许多不同材质实例设置单独的参数值。

在上述示例中,使用了全局参数来控制场景的以下方面:

花朵随着风速和风力而变形的状态受到了控制。
玩家位置被跟踪并提供给植物叶子。该位置信息用于在玩家走到花和草附近时移动花草。
太阳角度和颜色也被跟踪,并用于正确地给水波着色,并将该效果限制为仅在光线直接射入水波时显示(玩家看向太阳时)。
水在一天的着色效果和总体漫反射光线颜色也受到控制。

创建和编辑材质参数集合

要创建材质参数集合,可以使用[内容浏览器]中的 新建(New) 菜单, 或 右键单击 快捷菜单,并可以向任何其他资源一样编辑和保存。

  1. 要创建材质参数集合,首先必须 右键单击 内容浏览器 以显示创建菜单。从该菜单,选择 材质和纹理(Materials & Textures) 部分, 然后选择 材质参数集合(Material Parameter Collection)。选择后,将在 内容浏览器 中创建新的材质参数集合。

    2.该材质参数集合将会添加并保存到 内容浏览器,就像任何其他资源一样。

    3.要编辑材质参数集合,必须先用 鼠标左键 双击 它,以打开它的属性窗口。

3.单击"标量参数(Scalar Parameters)"或"矢量参数(Vector Parameters)"旁边的 加号按钮 ,以创建想要在材质中访问的新参数。
对于您输入的任何标量或矢量参数,不要忘记为它们输入名称和默认值。


在材质中使用材质参数集合

向任何材质添加材质集合参数节点都是几步即可完成的过程。 在下面一节中,我们将介绍如何向非常简单的材质添加材质集合节点,游戏运行后,按下鼠标左键时,它将使材质呈现去饱和效果。

1.首先需要创建材质集合参数节点并填充数据。 为此,在 内容浏览器 中 单击右键,然后选择 材质和纹理(Materials & Textures) 部分,再选择 材质参数集合(Material Parameter Collection)。 这样将在 内容浏览器 中创建材质参数集合。创建后,需要为它命名。在本示例中,我们将使用 MPC_Global_Material_Prams 作为名称。 完成后,内容浏览器 中应该会显示类似下图的内容。



2.材质集合参数现已创建完毕,请通过 鼠标左键 双击 将其打开。 打开材质集合参数后,添加一个标量参数并命名为 Global_Desaturation。 保留Global_Desaturation的默认值0.0。完成之后,您的材质集合参数应该类似于下图。



3.现在,材质集合参数已经创建完毕,我们需要创建一个要与它一起使用的简单材质。 在本示例中,我们将创建以下材质。

对于该材质,我们需要两个 标量参数 材质表达式节点和一个 矢量参数 材质表达式节点。 这些节点应该命名为 Base_Color、Metallic 和 Roughness,各个节点应当与对应的输入连接起来。
4.节点与主材质节点已经连接完毕,现在需要向材质添加去饱和度材质表达式节点和材质表达式参数节点。 要添加去饱和度材质表达式节点,在 选用板(Palette) 中搜索Desaturation,然后将它从选用板拖到材质图表。 放置到位后,在 内容浏览器 中找到材质参数集合,并将它从 内容浏览器 拖到材质图表。 完成后,您的材质应该如下所示。



5.所有节点现已添加完成,接下来需要将它们连接起来。 首先,需要将基础色(Base Color)输出连接到去饱和度(Desaturation)节点的第一个输入。 接下来,需要将材质集合参数的输出连接到去饱和度(Desaturation)节点的 小数(Fraction) 输入。 完成后,将去饱和度(Desaturation)节点的输出连接到主材质节点的基础色(Base Color)输入。 最后,确保按 应用(Apply) 按钮来编译材质。 完成之后,您的材质图应该类似于下图。

6.要查材质集合参数的运行情况,必须先将使用该材质集合参数的材质应用于场景中的某些对象。 材质应用后,在 内容浏览器 中,用 鼠标左键 双击 材质集合参数将其打开。 打开后,可以将Global_Desaturation的 默认值(Default Value) 从0更改为1,并观察应用了该材质的对象的颜色变化,在本例中,从蓝色变为白色,如下示例所示。

通过蓝图更新材质参数集合

另一种操纵材质集合参数的方法是使用蓝图。 这是一种非常强大的操纵材质集合参数的方法,因为您可以在游戏运行期间,随时根据需要调整材质集合参数。

  1. 在开始之前,需要先完成几个操作。 首先,需要创建材质的一些[材质实例]。 在本示例中,需要根据上文创建的材质,创建三个材质实例。 在材质实例创建完成后,务必调节颜色,以便于您区分。 在本例中,选择了红色、绿色和蓝色作为材质实例的颜色。 完成后,您的 内容浏览器 应该如下所示。

    2.现在,材质实例已经创建完毕,接下来将它们应用于场景中的不同对象,方法是在 内容浏览器 中用 鼠标左键 单击材质实例,然后将它拖到场景中的对象上。 将材质实例拖到目标对象上面后,松开 鼠标左键 以将该材质实例应用于该对象。 完成后,您应该看到类似下图的内容。

    3.现在,材质实例已经应用于关卡中的对象,接下来打开关卡蓝图。 要打开关卡蓝图,单击主工具栏上的 蓝图(Blueprints) 图标,然后从下拉菜单中选择 关卡蓝图(Level Blueprint)。

    4.关卡蓝图打开后,开始放置一些节点。在本示例中,我们需要以下节点和变量。

按下鼠标左键
时间轴
设置标量参数值
浮点变量:Des
完成之后,您的蓝图图表应该类似于下图。

5.将正确节点添加到蓝图图表后,接下来需要设置它们。 首先要设置的是 设置标量参数值(Set Scalar Parameter Value)。 为此,需要先定义要使用的材质参数集合。 要进行定义,使用 鼠标左键 单击 集合(Collection) 输入,然后选择想要使用的材质参数集合。 接下来,选择想要操控的 参数名称(Parameter Name),在本例中为 Global_Desaturation。完成之后,您的设置标量参数值(Set Scalar Parameter Value)应该类似于下图。

6.接下来,我们需要设置时间轴,以便在按下 鼠标左键 时,颜色会随着时间而变化,然后松开鼠标左键时恢复原状。 要设置时间轴,首先使用 鼠标左键 并 双击 时间轴以将其打开。 执行此操作后,您应该会看到类似于下图的内容。

7.现在,时间轴已经打开,需要在其中填充一些数据,以使其在激活时执行一些操作。 首先需要单击 添加浮点型轨迹(Add Float Track) 图标,向时间轴添加 浮点型轨迹(Float Track)。 然后需要使用 鼠标右键 单击右侧灰色区域中的任意位置,然后从菜单中选择 添加键(Add Key) 来添加两个键轨迹。 我们需要添加两个键,一个在时间0处,值为0,一个在时间1处,值为1。 添加两个键点后,不要忘记为轨迹命名,以便于区分轨迹功能。在本示例中,我们将使用 Des_Amount 作为其名称。 完成后,您应该看到类似下图的内容。

8现在已正确设置 时间轴,您可以选择"时间轴(Timeline)"菜单,返回到 关卡蓝图 的 事件图表。 关卡蓝图可用后,您可以开始将所有节点连接起来。 完成之后,您的蓝图应该类似于下图.

9.现在已经全部连接妥当,确保按 编译(Compile) 按钮来 编译 关卡蓝图,然后关闭蓝图编辑器。 蓝图编辑器关闭后,接下来测试以查看游戏中的变化。为此,只需按主工具栏上的 播放(Play) 图标即可。 按播放后,会显示一个新窗口,其中正在运行关卡。 要查看材质集合参数的运行效果,按住 鼠标左键, 场景中的材质颜色会从初始色变为灰色。 松开 鼠标左键,材质会恢复为原始色。

限制和性能特征

材质最多可以引用两个不同的材质参数集合。一个通常用于表示游戏范围的值, 另一个可以用于表示特定于关卡的参数。一个集合最多可以包含1024个标量参数和1024个矢量 参数。
修改集合中的参数数量会导致引用该集合的所有材质重新编译。 如果需要添加大量参数,提前在空贴图中添加大量参数会更加快速。
如果重命名参数,引用该参数的任何材质都会继续按预期工作。但是,引用该参数的任何蓝图 现已破坏。您必须重新分配作用于该集合的蓝图函数的参数名称 来解决这个问题。
更新材质参数集合中的值比设置各个材质实例 上的许多不同参数更加高效。

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

推荐阅读更多精彩内容