- 作者:老汪软件技巧
- 发表时间: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♪(・ω・)ノ!我是火火,火一般的男人!