返回 导航

UE5

hangge.com

UE5 - 动态生成一个彩色立方体方阵(动态设置材质参数)

作者:hangge | 2025-09-13 09:44

1,创建立方体材质

(1)新建一个材质并命名为“M_Cube”,后面通过设置材质的颜色控制单个模型的颜色,颜色由方阵管理器分配给每一个立方体蓝图。

(2)双击打开“M_Cube”材质,在“材质图表”面板中按住 V 键并单击,新建一个“Param”节点并连接到“自发光颜色”引脚。
提示:需要记住该节点的名称为“Param”,在后续的操作中会使用该名称。

2,创建立方体蓝图

(1)新建一个“Actor”类蓝图并命名为“BP_BaseCube”,双击进入蓝图后在“组件”面板中添加一个立方体组件。

(2)选择立方体组件,在“细节”面板中设置“元素 0”为“M_Cube

(3)新建 3 个名称分别为“R”“G”“B”的浮点型变量并在“细节”面板中勾选“可编辑实例”与“生产时公开”选项。

(4)进入“事件图表”面板,在“事件开始运行”节点后连接“在材质上设置向量参数值”节点,设置“ParameterName”为传参节点“Param”,创建“创建向量”节点并分别连接“R”“G”“B3 个浮点型变量,最后将返回值连接到“Parameter Value”引脚。

3,创建方阵管理器

(1)新建一个“Actor”类蓝图并命名为“BP_CubeManager”。

(2)然后在“事件图表”中添加如下逻辑,实现在游戏开始时自动生成一组带颜色渐变的立方体,按照 5×5×5 的网格排列。
  • 中间部分通过三层 For Loop 嵌套在场景中生成一个个立方体实例。
  • For Loop 上侧为计算每一个立方体实例的三维偏移向量 Make Vector(X, Y, Z) 加到自身 Actor 位置 Get Actor Location 上,构成一个新的世界坐标用这个位置 Make Transform,传给 Spawn Actor BP Base Cub
  • For Loop 下侧为计算每一个立方体实例材质的颜色值,分别作为 RGB 通道输入到 Spawn Actor 的同名引脚,从而让每个立方体拥有基于其位置的独特颜色。
提示:因为材质的设定,“R”“G”“B”的值在 01 之间较为合适,如果大于 1 就会有更强的自发光效果。提前加 1 的目的是防止 0 参与除法运算,3 个“”节点和“”节点的输出引脚需要设置为“浮点(双精度)”类型。

4,运行测试

(1)编译并保存后将“BP_CubeManager” 蓝图拖曳到关卡中。

(2)进入 SIE 运行模式,可以看到关卡中生成了一个形状规则的彩色方阵。

附:为什么运行后的方阵是不规则的?

(1)假设我们将置 3 个“”节点的输出引脚类型为“浮点(双精度)”后输入 99.99,那么相邻的方块就会有部分重叠。

(2)如果我们将“SpawnActor BP Base Cube”的 “Collision Handing Override”设置为“不生成

(3)那么运行后的效果如下,为了避免出现重叠,部分立方体不能生成。

(4)由于不是稳固的立方体,我们此时如果进入“BP_BascCube”蓝图,选择立方体组件,在“细节”而面板中勾选“模拟物理”选项,编译并保存后再次进入运行模式,可以看到方阵存在坍塌的物理效果。
评论

全部评论(0)

回到顶部