一个 火山 是地球的火山层中的一个火山,由于内部的压力来自岩浆和溶解气体。体验通常包括在挑战性游戏区域内的火山,例如可以平衡熔岩危险和岩浆危险的区域,或者动态地变更的火山周期。
使用 火山岛 - 开始 .rbxl 文件作为起始位置, 火山岛 - 完成 作为参考, 这个教程向您显示如何将环境变成火山爆发, 包括指导:
- 将引用材料分解为具有不同视觉和行为特性的个별组件。
- 配置表面涟漪以模拟热流从表面升到并且干扰坩埚表面。
- 配置烟块以模拟溶岩岩石在升到大气层时快速冷却。
- 配置从大锅中飞溅和流出的岩浆,以 imitate 各种熔岩粘度状态。
- 配置一个烟雾朵,以模拟捕捉玩家注意力的刺鼻污染。
分解参考
要创建可信的火山,请在设计过程中参考 Iceland 的实际火山爆发,因为它允许您将主题分解为具有不同视觉和行为特性的个별组件。例如,样例 Volcano Island - Complete 体验在 Iceland 的火山爆发进行了引用,以便为所有纹理和 VFX 设计决策提供关于大喷发和周围地形的所有视
有助于分解一个喷发成个人组件的火山,以便您可以计划如何使用不同的 VFX 对象来模拟其实体世界的对应。要示例,这个教程将样例火山分为六个独特组件:
- 地面涟漪 – 大理石上的小波浪。
- 烟花 – 从大锅中升起的小型、轻型溶岩碎片。
- 岩浆飞溅 – 由于火山的内部压力而从岩浆喷嘴喷出的熔岩。
- 岩浆流 – 从喷嘴离开的粘液岩。
- 烟雾喷嘴 – 从大锅升起的热气溢出。
下面的部分提供了对各种设计决策和技术的深度分析,您可以使用来重新创建这些组件的各个部分。当您查看这些决策并实验各种照明时,ParticleEmitter 和Beam属性,您会学会如何使用照明和VFX解决独特的环境要求。
配置照明
要将环境元素作为您的体验中的重要组成部分,它的反射对整个环境很重要,以便它作为玩家探索的对象显得突出。例如,要将玩家引入火山,您可以配置您的照明源,以便火山的岩浆在其他黑暗环境中显示为唯一的光源。
Studio 提供两种高级照明源您可以用于此技术:
- 全球照明 - 为整个户外环境提供照明。
- 本地照明 - 生成照明在您放置它们在体验中的周围。
本教程的这一部分教你如何使用两种照明源来使你的火山爆发成为场景中最有趣的点,以及创建令人惊喜的环境故事。要说明,无论是自定义照明还是自动照明,都必须使用两种照明源才能使你的火山爆发成为场景中最有趣的点,同时也使你的环境故事惊人。为了说明,无论是自
本地照明
本地照明是通过本地 照明源 在您的体验中发生的光照,例如 SpotLight 、 SurfaceLight 和 2>Class
在您为此教程准备的全球照明之前,您应该配置您本地的照明,因为没有灯光源,您无法看到 3D 空间来配置 VFX 对象。 但是,常见工作流程需要您同时在本地和全球照明上循环以便您可以看到 VFX 对象的更改,因此您需要灵活地设计您自己的体验的需求。
要重现样本中的火山照明,请在 Volcano Island - Complete 放置文件:
在 Explorer 窗口中,在 Workspace 中创建一个 Folder 文件夹,然后重命名文件夹 1> LocalLighting1>。
将三个 块 零件插入 本地照明 文件夹,然后将其重命名为 LightCaldera 、1>LightMagma1> 和 4>LightOutflow4>,分别为 7>LightCaldera7>、0>LightMagma0> 和 3>LightOutflow 3>。
将零件移到火山的整个位置,以便能够点燃整个火山。
- 将 LightCaldera 移动到空间中的中心,在喷嘴和悬崖之间。
- 将 LightMagma 移动到大锅和岩浆流出之间的间隙中的中心。
- 将 LightOutflow 移动到流程的上方,以便在流程的两个子流上显示。
在每个部分中插入一个 聚光灯 。
选择 PointLight 子, LightCaldera ,然后在 属性 窗口中,
- 将 亮度 设置为 15 以使光源更亮。
- 将 颜色 设置为 255, 85, 0 以涂漆灯光至暗橙色。
- 将 范围 设置为 60 以照亮整个喷泉区域。
选择 PointLight 子 LightMagma 和 LightOutflow 的后代,然后在 1> 属性1> 窗口中,
- 将 亮度 设置为 2 以使灯光源稍微更亮。
- 将 颜色 设置为 255, 81, 0 以涂色灯光到橙色色调。
- 将 范围 设置为 50 以照亮裂缝和出流区域。
在 Explorer 窗口中,选择 LocalLighting 文件夹中的所有块部分,然后在 Properties 窗口中,将 1> Transparency1> 设置为 4> 14> 以隐藏块,然后在 7> 属性7> 窗口中,将 0> 透明度0> 设置为 3>1 3> 以使块部分隐藏。
全球照明
在体验中,太阳或月亮的照射是来自太阳或月亮的照射。通过调整 Lighting 服务中的几个关键默认属性以及其子后处理效果对象,您可以显著改变全球照明对玩家的外观,并且可以与您放置在体验中的任何其他对象相互作用。 Class.ParticleEmitter</
例如,为了确保在教程中稍后生成流焕熔岩效果的 Beam 纹理能够发光,您必须配置 BloomEffect 属性来将照明显示为像摄像头查看明亮的灯光。同样,为了在夜间模拟更真实的颜色,您还必须调整 Class.BloomEffect 属性以溢出环境。
要重现在样本中的全球照明在Volcano Island - Complete放置文件:
在 Explorer 窗口中,选择 照明 服务,然后在 属性 窗口中,
- 将 环境 设置为 133, 152, 176 以设置一个浅灰色色调在整个户外环境上。
- 将 亮度 设置为 2 以使全球灯光源稍微 dimmer。
- 将 ColorShift_Top 设置为 207, 178, 72 以将黄色色调设置为反射从全球照明源面向的表面的光。
- 将 技术 设置为 未来 以更新照明技术系统。
- 将 ClockTime 设置为 4.3 以设置在 4am 之后的每四分之一的时间。
- 将 地理位置 设置为 199 以修改月亮的位置。
- 将 曝光补偿 设置为 -1 以将环境暴露到月球的一半。
在 Explorer 窗口中,选择 Bloom 服务中的 Lighting 子,然后在 1>属性1> 窗口中,
- 将 强度 设置为 0.75 以微暗所有颜色在环境内。
- 将 大小 设置为 80 以创建更宽的花瓣效果。
- 将 阈值 设置为0.85,以允许环境中的更多颜色发光。
在 Explorer 窗口中,将 ColorCorrection 对象插入 照明 服务,然后在 1> 属性1> 窗口中,
- 将 亮度 设置为 0.017 以稍微改变你的像素的颜色。
- 将 对比度 设置为 0.25 以在环境中以更鲜明的对比度显示亮色和黑暗颜色。
- 将 饱和度 设置为 -0.15 以饱和颜色在环境中。
- 将 TintColor 设置为 255, 214, 143 以浅黄色色调为像素着色。
(可选) 提供天空中的云朵。
- 在 探险器 窗口中,将 云朵 对象插入 地形服务 。
- 选择 云 对象,然后在 属性 窗口中,
- 将 封面 设置为 1 为提供天空全面覆盖。
- 将 密度 设置为 0.08 来使云层覆盖更少。
- 将 颜色 设置为 136, 143, 152 以设置一个浅灰色色调到云朵封面。
配置火山
现在您的本地和全球照明配置已完成,您可以配置关于实际火山和其周围地形的所有 VFX 对象了。 作为您跟随这些说明,正确重现样本 Volcano Island .rbxl 文件中的最终环境,观察每个步骤如何工作 together 添加角色、移动和照明到环境。
表面涟漪
地面涟漪 是由内部岩浆和压urized气体从地表流向大坑的小型涟漪,这些视觉现象通过传递实体世界物理过程的传导热传递和压urized气体从地表向地球的表面移动来表达。这种视觉现象传递出实体世界的物理过程的实体化视图,并且添加到您场景的实景。
表面波纹为玩家提供有价值的洞见,可以帮助他们了解火山爆发的状态。例如,如果岩浆和气体正在向上移动,并且拥有足够的力量来破坏岩浆在熔岩盆底部的状态,玩家可以判断火山正在活跃地喷发,因此他们应该在此游戏区域注意安全。
为了示例此过程,样本使用一个 ParticleEmitter 对象稍微低于喷嘴的基础以发射平坦、明亮的粒子,它们会在黑暗背景下逐渐收缩并扩展。这允许粒子以类似于真实世界元素在自然中移动的方式进行顺滑和连续的演员。
要重现样本中的火山岛上的地表涟漪:
在 Explorer 窗口中,在 Workspace 中创建一个 Folder 以容纳所有 caldera 对象,然后重命名文件夹 1> Caldera1>。
创建一个背景,为表面捲动提供高对比度背景。
将 块 部分插入 Caldera 文件夹,然后将其重命名为 背景 。
将 背景 放置在大锅上,略高于大锅的表面积。当部分靠近大锅时,它看起来像是它发光了,因为它离大锅的本地光源很近。
选择 背景 ,在 属性 窗口中,
将 颜色 设置为 0, 0, 0 使黑色块。
将 材质 设置为 铝箔 为背景提供材质。
创建涟漪效果。
- 复制 背景 ,重命名 岩浆涟漪 ,然后稍微缩放它到 caldera 的表面区域。
- 选择 MagmaRipples ,然后在 属性 窗口中,将 透明度 设置为 1> 11> 使块不可见。
- 将 ParticleEmitter 插入 MagmaRipples ,然后重命名 emitter Ripples 。
- 选择 涟漪 ,然后在 属性 窗口中,
将 纹理 设置为 rbxassetid://16829556885 以渲染像泡泡一样的粒子。
将 方向性向量 设置为 VelocityPerpendicular 以发射向纵向运动方向的粒子。
将 颜色 设置为一个包含粒子的颜色序列,其中粒子为棕色,变为明亮的红色,然后变为褐色。
- 单击 颜色 属性,然后单击“⋯”按钮。一个颜色序列弹出显示。
颜色序列的底轴上的每个三角形是一个 钥匙点 ,它在粒子生命时间的该点的颜色值决定。
在颜色序列中设置以下时间和值属性:
- 时间 = 0, RGB 值 = 0> 130, 53, 20>
- 时间 = 0.5 , RGB 值 = 0> 224, 37, 00>
- 时间 = 1, RGB 值 = 0> 147, 5, 00>
将 大小 设置为数字序列,在粒子增加大小向中间的生命时间前返回到其原始大小,并带有小窗口的变化。
- 单击 大小 属性,然后单击“⋯”按钮。一个数字序列弹出显示。默认情况下,图形是一个直线,图像从左到右保持相同大小。
数字序列的开始和结束各个方块是一个 键点 ,它在左到右的材质上的每个方块的大小值。
在数字顺序中设置以下时间和值属性:
- 时间=0, 值 =0> 4.810>,3>包装3>= 6> 0.438 6>
- 时间=0.341, 值 =0>8.750>,3>包装3>= 6>0.48 6>
- 时间=0.497, 值 =0>9.380>,3>包装3>= 6>0.5 6>
- 时间=0.644, 值 =0>8.750>,3>包装3>= 6>0.48 6>
- 时间=1, 值 =0> 4.810>,3>包装3>= 6> 0.438 6>
将 透明度 设置为一个数字序列,在 which 粒子开始为透明,随着生命时间的中间变得更不透明,然后在生命时间结束时再次变得透明。
单击 透明度 属性,然后单击“⋯”按钮。
在数字顺序中设置以下时间和值属性:
- 时间 = 0 , 值 = 0> 10> , 3> 包装 3> = 6> 0 6>
- 时间 = 0.3 , 值 = 0> 0.3870> , 3> 包装 3> = 6> 0.0375 6>
- 时间 = 0.5 , 值 = 0> 0.2690> , 3> 包装 3> = 6> 0.0812 6>
- 时间=0.7, 值 =0>0.3810>,3>包装3>= 6>0.05 6>
- 时间 = 0 , 值 = 0> 10> , 3> 包装 3> = 6> 0 6>
将 ZOffset 设置为 -2 来将纹理从熔岩溶岩中稍微移除。
将 Lifetime 设置为 5, 8 随机设置每个粒子的生命时间在 5 到 8 秒之间。
将 Rate 设置为 12 发射 12 粒子每秒。
将 旋转 设置为 -360, 360 以随机对每个粒子在圆圈中进行旋转。
将 速度 设置为 0.01 发射每个粒子的一千分之一。
将 光发射量 设置为 1 以显著亮起粒子。
将 LightInfluence 设置为 0 以防止环境灯对粒子的颜色产生影响。
将 亮度 设置为 15 以缩放发射器发出的光。
烟花
燃烧者 是小型、轻型的熔岩块,从大锅中迸发,快速辐射热量,随着它们在大气层中上升而发生。与表面涟漪类似,燃烧者显示内部压力正在快速提升,使热元素破坏岩浆的表面张力来释放压力。
该示例使用 ParticleEmitter 对象来发射具有运动模糊的粒子,使其纹理焕发。当粒子升起并达到其生命时间的终点时,发射器将粒子压缩为 1:1 比例来重新组成粒子。此技术允许粒子看起来像它们快速移动到喷发器离开,然后减速
此外,随着粒子数量增加,它们的颜色、不透明度和大小都会改变,以反映其变化温度。例如,它们的生命时间开始为大、棕色的粒子,但很快变成小橙色、然后紫色。此策略还有一个额外的好处,即可以渐变地环境中的照明,增加玩家在环境中的沉浸。
要重现从样本 火山岛 - 完成 位置文件中反射的火焰火焰:
将 圆柱体 部分插入 大锅 文件夹,然后重命名为 发光烟花 。
将位置 发光烟花 ,使其位于表面波纹的顶部,然后将其缩放到填满计dera内部的内部。部分显示为它离它的本地光源很近,因此它会发光。
选择 发光烟花 ,然后在 属性 窗口中,将 透明度 设置为1> 11>,以便使圆柱形隐形。
将 ParticleEmitter 插入 GlowingEmbers ,然后重命名 emitter Embers 。
选择 颖子 ,然后在 属性 窗口中
将 纹理 设置为 rbxassetid://17581858560 以渲染像长椭圆垂直和水平方向看起来像一个椭圆形状。
将 定向 设置为 向量平行 以发射方向与其并行的粒子。
将 颜色 设置为一个包含粒子的颜色序列,其中粒子为棕色,变为橙色,然后变为褐色。
- 时间 = 0, RGB 值 = 0> 130, 53, 20>
- 时间 = 0.5 , RGB 值 = 0> 224, 82, 00>
- 时间 = 1, RGB 值 = 0> 147, 5, 00>
将 大小 设置为一个数字序列,在其生命时间内,粒子的大小会相应减少。
- 时间=0, 值 =0> 0.3130>,3>包装3>= 6> 0.1 6>
- 时间 = 1, 值 = 0> 00>,3> 包装 3> = 6> 0 6>
将 扁平化 设置为在其生命时间的中间略有伸长的粒子。
- 时间 = 0 , 值 = 0> -30> , 3> 包装 3> = 6> 0 6>
- 时间=0.323, 值 =0>0-1880>,3>包装3>= 6>0 6>
- 时间 = 1, 值 = 0> -0.50>,3> 包装 3> = 6> 0 6>
- 将 透明度 设置为一个数字序列,在该数字序列中随机改变其不透明度来模拟烟熏在上升时发光。 实际值不重要,只是它们在生命时间过程中变化很多。
- 将 ZOffset 设置为 1 来将纹理从熔岩溶岩中稍微移除。
- 将 Lifetime 设置为 1, 5 随机设置每个粒子的生命时间在 1 到 5 秒之间。
- 将 速度 设置为 5, 8 随机发射每个粒子之间的 5 到 8 格每秒钟。
- 将 SpreadAngle 设置为 180, 180 以发射粒子在 X 和 Z 轴上角的斜角。
- 将 加速度 设置为 0, 10, 0 来模拟向上的力和向下的力。
- 将 拖动 设置为 0.8 以使粒子在呈指数下降的速度下降。
- 将 光发射量 设置为 1 以显著亮起粒子。
- 将 LightInfluence 设置为 0 以防止环境灯对粒子的颜色产生影响。
- 将 亮度 设置为 20 以缩放发射器发出的光。
岩浆飞溅
岩浆飞溅 是由内部岩浆和压urized气体在火山从结构上升到顶部时爆炸的细小溶岩块。这个火山核心组成部分的一个最常见的标志是确定火山不再是睡眠状态,并且正在快速喷发。
样本代表此过程使用两个 ParticleEmitter 对象,使用 翻书 动画每个粒子的材质在其生命时间。第一个粒子发射器发出像浓密、高粘度溅射而且重量和厚的粒子,使它们上升并下
每个粒子发射器动画其纹理在 64 个图片上,以模拟光平滑、生动的物理行为。 尽管您只能使用一个粒子发射器,但是重复动画会变得明显,因为您的玩家每次都会看到相同的动画。 但当两个粒子发射器用不同的自定义属性来动画翻书时,重复动画更难以发现。
该示例还提供一个 ParticleEmitter 对象,发出类似于气泡溅渍的粒子来代表更轻的网格溅渍。 此技术用动态移动填充空间,并隐藏翻页动画的重复。 作为额外奖励,如果您的体验包括水fall从 创建水fall
要重现从样本 火山岛 - 完成 位置文件中溅出的岩浆:
将 圆柱体 部分插入 Caldera 文件夹,然后重命名它 SplashingLava 。
位置 喷溅岩浆 。 使它位于地面的涟漪上,然后将其缩放到它覆盖整个熔岩浆的中间, где您想要使用熔岩浆来飞溅的地方。 零件看起来像它是发光了,因为它离开 caldera 的本地光源很近。
选择 溅射岩浆 ,然后在 属性 窗口中,将 透明度 设置为 1> 11> 使圆柱形隐形。
将 ParticleEmitter 插入 SplashingLava ,然后重命名 emitter WebbySplashes 。
选择 WebbySplashes ,然后在 属性 窗口中,
将 纹理 设置为 rbxassetid://17363668312 来渲染像网by splashes 的粒子。
将 Orientation 设置为 FacingCameraWorldUp ,以发射向相镜头发射的粒子,但仅在垂直向上世界的 Y 轴上旋转。
将 颜色 设置为 255, 152, 79 来为粒子涂色到浅橙色。
将 大小 设置为一个数字序列,在其生命时间内,粒子的大小会增加,并且有一个变窗。
- 时间=0, 值 =0>4.310>,3>包装3>= 6>0.762 6>
- 时间=1, 值 =0> 6.20>,3>包装3>= 6> 0.875 6>
将 扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平��
- 时间 = 0 , 值 = 0> -0.0750> , 3> 包装 3> = 6> 0.263 6>
- 时间 = 1, 值 = 0> -0.4130>,3> 包装 3> = 6> 0.412 6>
- 将 ZOffset 设置为 1 来将纹理从熔岩溶岩中稍微移除。
- 将 Lifetime 设置为 1.5, 2 随机设置每个粒子的生命时间在 1.5 到 2 秒之间。
- 将 速度 设置为 0.37 以每 3 秒发出一颗粒子。
- 将 RotSpeed 设置为 -20, 20 随机发出每个粒子在 -20 和 20 度之间。
- 将 速度 设置为 2 发射每个粒子 2 格/秒。
- 将 SpreadAngle 设置为 5, 5 以发射在 X 和 Z 轴上小角度的粒子。
- 将 FlipbookLayout 设置为 Grid8x8 以动态显示在 64 框持续时间内的材质。
- 将 FlipbookMode 设置为 Oneshot 以确保动画在其生命时间内只播放一次。
- 将 拖动 设置为 0.5 以使粒子在呈指数下降的速度下降。
- 将 光发射器发射光量设置为 0.1 以微亮地颗粒。
- 将 LightInfluence 设置为 0.25 以显著减少环境灯对粒子颜色的影响。
复制 DenseSplashes ,然后在 属性 窗口中,修改以下属性为额外的岩浆溅射提供变化。
将 名称 设置为 浓密飞溅 。
将 纹理 设置为 rbxassetid://17363669906 以渲染类似于密集溅射的粒子。
将 大小 设置为一个数字序列,在其生命时间内,粒子的大小会增加,并且有一个变窗。
- 时间=0, 值 =0>5.750>,3>包装3>= 6>0.762 6>
- 时间 = 1, 值 = 0> 7.370>,3> 包装 3> = 6> 0.8756>, 9> 枚velope 9> = 2> 12>
将 扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平扁平��
- 时间=0, 值 =0> 00>,3>包装3>= 6> 0.225 6>
- 时间 = 1, 值 = 0> -0.2620>,3> 包装 3> = 6> 0.15 6>
- 将 速度 设置为 0.289 以发出一粒子几乎每四分之一的速度。
用额外的飞溅填满喷嘴。
将 ParticleEmitter 插入 SplashingLava ,然后重命名 emitter SplashFill 。
选择 SplashFill ,然后在 属性 窗口中,
将 纹理 设置为 rbxassetid://17082061238 来渲染像更浅色网格溅射的粒子
将 Orientation 设置为 FacingCameraWorldUp ,以发射向相镜头发射的粒子,但仅在垂直向上世界的 Y 轴上旋转。
将 颜色 设置为 255, 152, 33 以涂色粒子。
将 大小 设置为一个数字序列,在其生命时间内,粒子的大小会增加,并且有一个变窗。
- 时间=0, 值 =0>1.250>,3>包装3>= 6>0.388 6>
- 时间=1, 值 =0> 6.380>,3>包装3>=6> 0.5636>, 9>边封 9>=0> 5.220>
将 透明度 设置为一个数字序列,在 which 粒子开始为透明,变为不透明,然后变为透明向终端。
- 时间 = 0 , 值 = 0> 10> , 3> 包装 3> = 6> 0 6>
- 时间 = 0.19 , 值 = 0> 00> , 3> 包装 3> = 6> 0 6>
- 时间 = 0.795 , 值 = 0> 00> , 3> 包装 3> = 6> 0 6>
- 时间 = 1 , 值 = 0> 10> , 3> 包装 3> = 6> 0 6>
- 将 ZOffset 设置为 1 来将纹理从熔岩溶岩中稍微移除。
- 将 Lifetime 设置为 1.5 以设置每个粒子的使用期为 1.5 秒。
- 将 Rate 设置为 8 以每 8 秒发射一颗粒子。
- 将 旋转 设置为 0, 360 以随机对每个粒子在半圆形中进行旋转。
- 将 RotSpeed 设置为 -50, 50 随机发射每个粒子在 -50 和 50 度之间。
- 将 速度 设置为 12, 20 以随机发射每个粒子在 12 和 20 每秒钟之间。
- 将 SpreadAngle 设置为 45, 45 以发射粒子在 X 和 Z 轴上沿角度发射。
- 将 加速度 设置为 0, -25, 0 来模拟重力并将粒子拉回。
- 将 拖动 设置为 1 以使粒子在呈指数下降的速度会增加。
- 将 光发射量 设置为 1 以显著亮起粒子。
- 将 LightInfluence 设置为 0 以防止环境灯对粒子的颜色产生影响。
- 将 亮度 设置为 8 以缩放发射器发出的光。
岩浆流
岩浆流是由岩浆在大锅中熔化并溢出的一种大规模的岩浆。随着火山爆发,随着熔岩冷却,它变成了坚固的岩石,创建了新的地块。
要模拟此过程,样本层上的多个 Beam 对象使用完整的纹理和属性配置,模拟岩浆冷却器在跑向更远的地方时的行为特性:
- 底层 渲染一个平滑的颜色,从温暖的红色变成冷色,以便表示岩浆开始变冷,例如将红色变成深红色或深褐色。
- 中间层 渲染黑色的表面,看起来像黑暗的吠壳,下面有显示发光的岩浆的缝隙。
- 顶层 渲染与中间层的同样的材质,但以更慢的评分度,翻转附件,并反向配置属性配置。这确保文本在同一方向上完全对齐,从而允许玩家轻松检测不实的材质重复。
通过梯层三个 Beam 对象创建一个幻觉的 parallax 让岩浆看起来有深度和音量,尽管它们只是三个 2D 图像。这允许玩家知道岩浆在熔岩深度和音量上流动速度不同,即使它们只是三个 2D 图像。
要重现从火山岛完成样本 Volcano Island - Complete 放置文件:
在 Explorer 窗口中,在 Workspace 中创建一个 Folder 以容纳所有流动的岩浆对象,然后重命名文件夹 1> FlowingMagma1>。
将 块 部分插入 流动岩浆 文件夹,然后将其重命名为 MagmaRiverBeam 。
将 岩浆河光束 移动到大锅边缘的下方。
配置从大坑到使用的所有流动岩浆光束,以便渲染它们的纹理。
- 将附件插入 MagmaRiverBeam ,然后旋转附件直到黄色视觉助手指向喷嘴。
- 将另一个附件插入 MagmaRiverBeam ,将其向前移动到隙缝中,然后旋转附件直到黄色视觉助手指向地面。
将 Beam 插入 MagmaRiverBeam ,然后将其重命名为 Magma 。
将零件的附件分配到 岩浆 。
- 在 探险器 窗口中,选择 岩浆 。
- 在 属性 窗口中,
- 将 附件0 设置在 caldera 边缘的附件上。
- 将 附件1 设置在创建的弯道上的附件上。光束在两个附件之间渲染其默认纹理。
自定义光束的视觉外观,让它看起来像是在流动的岩浆。
在 探险器 窗口中,验证 Magma 仍然是选中的。
在 属性 窗口中,
将 宽度0 设置为 50 以宽度从轴开始渲染。
将 宽度 1 设置为 50 以在矮间隙中满足叉子时宽度。
将 CurveSize0 设置为 -50 以向缝隙地板挺出 текстур。
将 CurveSize1 设置为 5 以在隙缝中将纹理曲线化。
将 颜色 设置为一个开始为红色亮起,然后逐渐变为红色深度的颜色序列,以模拟岩浆冷却。
- 时间 = 0 , RGB 值 = 0> 255, 51, 00>
- 时间 = 0.5 , RGB 值 = 0> 211, 39, 00>
- 时间 = 1, RGB 值 = 0> 118, 24, 00>
将 透明度 设置为一个数字序列,允许岩浆在附件点之间更具弹性。
- 时间 = 0, 值 = 0> 10>
- 时间 =0.0916, 值 =0>00>
- 时间 = 0.867, 值 = 0> 00>
- 时间 =0.941, 值 =0>0.7250>
- 时间 = 1, 值 = 0> 10>
- 将 光发射量 设置为 1 以显著亮起光束。
- 将 LightInfluence 设置为 0 以防止环境灯影响灯柱的颜色。
- 将 亮度 设置为 8 以缩放光束从光束发出的光。
将另一个 光束 插入 MagmaRiverBeam ,重命名它为 Crust1 ,然后使用同一过程在步骤 6 中将零件的附件添加到 1> Crust11> 使用同一过程在步骤 6 中添加零件的附件。
自定义光束的视觉外观,让它看起来像岩浆的顶部。
在 Explorer 窗口中,验证 Crust1 仍然是选中的。
在 属性 窗口中,
将 纹理 设置为 rbxassetid://17023930265 以渲染新的纹理,看起来像流动的饼皮。
将 宽度0 设置为 35 以宽度从轴开始渲染。
将 宽度 1 设置为 25 以宽扁地展开纹理。
将 TextureSpeed 设置为 0.01 以显著减慢纹理流的速度。
将 TextureLength 设置为 3 以稍微延长 текстур的长度。
将 CurveSize0 设置为 -50 以向缝隙地板挺出 текстур。
将 CurveSize1 设置为 5 以在隙缝中将纹理曲线化。
将颜色设置为 83, 83, 83 以染色光束。
将 透明度 设置为一个数字序列,允许在附件点之间让外壳更具弹性。
- 时间 = 0, 值 = 0> 10>
- 时间 = 0.22, 值 = 0> 00>
- 时间 = 0.85, 值 = 0> 00>
- 时间 = 1, 值 = 0> 10>
- 将 ZOffset 设置为 1 来将纹理从熔岩溶岩中稍微移除。
复制 Crust1 ,重命名为 Crust2 ,然后在 属性 窗口中,
- 将 附件0 设置为在齿轮槽中的附件。
- 将 附件1 设置在 caldera 边缘的附件上。
- 将 宽度0 设置为 25 以宽度从轴开始渲染。
- 将 宽度 1 设置为 35 以在矿井中满足叉子时宽度更大。
- 将 纹理速度 设置为 -0.008 以显著减慢纹理流量。
- 将 TextureLength 设置为 2 以稍微伸长纹理的长度。
- 将 CurveSize0 设置为 -5 以向缝隙楼层挺出 текстур。
- 将 CurveSize1 设置为 50 以在隙间曲线 текстур。
- 将 ZOffset 设置为 2 来从另一层壳中移除材质。
(可选) 使用这个过程,在溝槽周围创建更多光束来驱动岩浆。 确保调整属性以减慢纹理的速度并模拟颜色更暗的岩浆,在温度下降时冷却。
烟雾喷嘴
从大喷嘴发出的烟雾 将热压urized气、蒸汽和火山灰发射到大气层 。 这种火山排放的混合物可以在现实世界中看到数英里,因此 volcano 设计通常会在大喷嘴上部集中大量烟雾以便成为 3D 空间中的重要点。
而不是发出厚重的,可溶性烟雾,那个人看到即时跟随爆炸后即可看到的,样本使用一个 ParticleEmitter 对象来发出像薄烟雾样的粒子,看起来像烟雾颜色随着上升而升级。这种技术实现两个目标:
- 它会分解背景火山的轮廓,并在火山爆发周围创建更多视觉吸引力。
- 它允许烟雾看起来像它接受来自环境的光而仍然发出黑暗的存在,尽管烟雾正在将污秽燃烧成空气,以至于烟雾就像夜空一样变得灰色。
要重现样本中的火山岛烟雾 Volcano Island - Complete 放置文件:
将 块 部分插入 Caldera 文件夹,然后将其重命名为 SmokePlume 。
将位置 SmokePlume 在锅底下,然后将其缩放到大约为锅面积的一半。
将 ParticleEmitter 插入 SmokePlume ,然后重命名 emitter Smoke 。
选择 烟雾 ,然后在 属性 窗口中,
将 纹理 设置为 rbxassetid://16830673704 以渲染像厚烟一样的粒子。
将 颜色 设置为一个由黑色、变为浅色橙色,然后灰色的颜色序列,在锅底部从黑色到天空的照明。
- 时间 =0, RGB值 =0>0,0,00>
- 时间 = 0.374, RGB值 =0> 195, 104, 760>
- 时间 = 0.469, RGB 值 = 0> 225, 121, 860>
- 时间 =0.709, RGB值 =0>111, 111, 1110>
- 时间 =1, RGB值 =0> 113, 113, 1130>
将 透明度 设置为一个数字序列,在 which 粒子开始为透明,并在其生命时间的早期阶段变为全部不透明,然后在其生命时间的尾部变为透明。
- 时间 = 0, 值 = 0> 10>
- 时间 =0.0622, 值 =0>00>
- 时间 =0.845, 值 =0>00>
- 时间 = 0, 值 = 0> 10>
- 将 ZOffset 设置为 -10 来将纹理靠近喷嘴的顶部。
- 将 Lifetime 设置为 50, 60 随机设置每个粒子的生命时间在 50 到 60 秒之间。
- 将 速度 设置为 0.3 以每 3 秒发出一颗粒子。
- 将 旋转 设置为 -360, 360 以随机对每个粒子在圆圈中进行旋转。
- 将 RotSpeed 设置为 -5, 5 随机发射每个粒子在 -5 和 5 度之间每秒钟。
- 将 SpreadAngle 设置为 5, 5 以发射在 X 和 Z 轴上小角度的粒子。
- 将 加速度 设置为 0, 7, 0 来模拟向上的力和向下的力。
- 将 拖动 设置为 1 以使粒子在呈指数下降的速度会增加。
- 启用 风影响拖动 以便在环境中的风使烟雾环绕。
- 将 光发射器发射光量设置为 0.1 以微亮地颗粒。
- 将 LightInfluence 设置为 0.06 以显著减少环境灯对粒子颜色的影响。
在 命令栏 中,输入以下字符串使每个粒子的大小从 40 提升到 100 在整个生命周期内,使用小窗口的变化来提高它们的大小:
workspace.Caldera.SmokePlume.Smoke.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,40,5), NumberSequenceKeypoint.new(1,100,15)}