• 作者:老汪软件技巧
  • 发表时间:2024-09-29 07:00
  • 浏览量:

总览描述

打开关卡后,引入眼帘的就是针对关卡的总体性文字描述,这里翻译一下:

这个地图涵盖一些在关卡中使用蓝图的有用技巧和技术。包括一些随机化案例、对象数组创建和一些Gameplay的行为,例如灯光跟踪和工作门!

批次阅览1.1 Randomly scattered meshes

随机分散的模型

蓝图分析:

本案例通过公开一些可调PUBLIC变量,随机化生成分散的模型在场景中,让我们来看看它的蓝图吧!

它的组件,就挂了一个空的根组件!

变量主要包括: 生成模型个数、随机范围最大半径、最小和最大缩放比例、随机Yaw旋转、样板模型数组

它的逻辑分为两大块:生成模型个数的约束(1-1000)、循环添加随机模型。

添加随机模型的逻辑又可以细分为:随机位置、随机旋转、随机缩放、随机模型!

随机位置的约束: 限定在半径范围内随机点,逻辑如下:

通过随机在边长为2倍半径的正方形内的一个偏移,然后Clamp向量的长度实现!

旋转的约束:

根据Random Yaw Rotation,决定是否需要随机Yaw轴的0-360°的随机旋转!

缩放的约束:

根据最大缩放向量和最小缩放向量,进行随机!

让我们继续看一下,如何添加多个模型的呢?

每一次循环,通过添加Static Mesh Component组件,并且给他随机从样品模型数组随机设置它的静态网格体。从而实现随机添加模型!

关键概念整理:

1.2 Automatic wall

自动化墙

翻译:构造脚本被用来扩展一行模型,它根据Actor的轴枢点到一个明确的结束点!

蓝图分析:

一个根组件+一个静态网格体组件(单个栅栏)

一个是结束点的偏移,一个是模型的宽度,一个是生成的模型网格。注意一下这个End Point是Show 3D Widget勾选状态,如下图

所以场景中,是很容易调整它的

分析一下逻辑:

(1)设置了Fence Start组件的Static Mesh;

(2)根据EndPoint 计算到轴枢点的投影距离(XY平面上)和 模型的宽度,计算需要生成多少个模型;

(3)循环添加静态网格体组件,并设置模型,附加到Fence start下。组件的相对位置是Mesh Width * 遍历的下标 作为他的X的相对偏移;

(4)生成完成时,根据结束点EndPoint的位置,调整了Fence start的Yaw的旋转,这样会导致它的所有子组件跟着旋转!

关键概念整理:

结果展示:

让我们改一组参数,看一下吧!

1.3 Automatic ring

自动化环

翻译:构造脚本用于在一个圆上摆放明确数量的模型,通过圆上每一个模型的位置决定它的旋转!

蓝图分析:

空空如也,只有一个根组件

生成的模型个数、圆的半径、是否面向圆心、模型缩放比例、空缺个数、生成的模型样板、Yaw轴旋转偏移

逻辑主要就两块:约束模型数量、循环在圆上生成模型,重点看如何生成的。

生成逻辑:

(1)根据模型个数和GapSize之和,计算每个模型在360°的圆上占据的角度(360 / (GapSize + Number Of Mesh))

(2)根据上一步的角度,将向量(Radius,0, 0)绕Yaw进行旋转,作为位置的相对偏移量

(3)如果需要物体朝向圆心,则根据上一步的Yaw旋转的角度,加上Yaw Offset,就是每个模型需要相对绕Yaw旋转的角度

结果展示:

这里给一组参数设置的结果,仅供参考!

1.4 Customizable spotlight

可自定义的聚光灯

翻译: 这个案例使用构造脚本组合了一个灯光的全部必要组件到Actor中。

蓝图分析:

看起来非常套娃,咱们分别看一下:

(1)Base mesh

灯架,用于安装到墙壁上,主要还是样子货

(2)Hinge mesh

(3)Spotlight mesh

也是样子货,就是个圆形的模型,用于放灯的!

(4)SpotLight

这是一个聚光灯组件,他有两层的锥形结构!

(5)Light beam mesh

这个是一个特殊的光束模型

简单介绍一下逻辑:

(1)限制Pitch角度,设置灯的Pitch角度和Yaw角度旋转

(2)根据Turn Off变量,决定是否显示灯光。

不显示灯光逻辑:将聚光灯和光束模型设为隐藏

显示灯光逻辑:给Slotlight Mesh的创建材质实例,设置它的颜色参数;聚光灯组件设置灯光颜色、强度、灯光半径、设置Light Beam Mesh的材质

关键概念整理:

结果展示:

咱们调一组参数看一下效果吧

总结

随机化就是灵活运用Random的Transform,在构造脚本动态添加Actor组件的过程,通过暴露参数调整到自己想要的效果!

致谢:

今天的学习就到此为止啦,喜欢的小伙伴点点关注+赞哦!有问题及时留言!感谢大家Thanks♪(・ω・)ノ!我是火火,火一般的男人!