Creación de luces parpadeantes | Documentación del Centro de creación de Roblox (2024)

Las luces parpadeantes son una fuerza poderosa que influye en el tono de un entorno, ambiente. Por ejemplo, una casa con una iluminación de un brillo constante puede sentirse cálida e invitadora, pero si agregas luces parpadeantes al pasillo de esa misma inicio, se vuelve inquietante y podría sugerir un posible peligro por delante. Al modelar y programar estratégicamente diferentes fuentes de luz dentro de tu experiencia, puedes agregar un nuevo nivel a tu narración ambiental.

Al igual que con toda la creaciones3D, hay muchas formas de lograr cualquier objetivo en particular. En esta guía, puede crear rápidamente una animación de luz parpadeante utilizando herramientas y métodos disponibles solo en Studio con solo unos pocos recursos básicos, incluido un archivo .rbxm para el modelo de lámpara del banquero que contiene un niño Class.MeshParts que puede personalizar para adaptarse a la estética de sus propias experiencias.

En el siguiente método para crear luces parpadeantes, siga cada sección para aprender cómo crear:

  • Un brillo NumberSequence para influir en el brillo de la lámpara con el tiempo.

  • Un atributo de duración de bucle para determinar la cantidad de tiempo que debe tomar cada bucle parpadeante.

  • Un Script que configura cómo los dos atributos trabajan con el hijo del aplicación de modeladoMeshParts para parpadear la luz de la lámpara.

Puede crear sus propios activos en herramientas de modelado de terceros y seguir con su propio diseño. Para obtener información sobre la exportación de modelos para su uso en Studio, consulte Exportación de requisitos .

Importando la lámpara de muestra

Esta guía utiliza un archivo descargable .rbxm de un modelo de lámpara de banquero de alta calidad y personalizable para demostrar una técnica de luz parpadeante. Puede usar este modelo para comprender los principios básicos y luego aplicarlos a sus propios modelos que crea en Studio u otro software de modelado de terceros.

Para importar el BankersLamp.rbxm :

  1. En la ventana Explorador , haga clic con el botón derecho Espacio de trabajo . Aparecerá un menú contextual.

  2. Seleccione Insertar del archivo... Un navegador de archivos se muestra.

  3. Seleccione la BankersLamp .rbxm , luego haga clic en el botón Abrir . El modelo se muestra dentro del ventanilla.

    Creación de luces parpadeantes | Documentación del Centro de creación de Roblox (1)

Creación de una secuencia de números de brillo

Un NumberSequence es un tipo de datos que representa una serie de valores numéricos de 0 a 1 a lo largo de la vida de una instancia. Este tipo de datos es útil para crear luces parpadeantes porque puede especificar cómo desea que el brillo de la luz de la lámpara cambie a lo largo de su vida, y cuando cambia el brillo de la intensidad completa a ninguna luz en poco tiempo, puede lograr un efecto parpadeante.

El eje X de un NumberSequence representa el tiempo, y el eje Y representa el brillo relativo. Cada cuadrado al principio y al final de la secuencia numérica es un punto clave **** que determina el valor de la propiedad en ese punto de la vida útil del brillo de la luz. Cuando crea por primera vez un NumberSequence , el gráfico es una línea recta y la luz sigue siendo la misma intensidad de brillo a lo largo de su vida útil, pero al agregar y mover los puntos clave, puede crear curvas dentro de la secuencia y cambiar el brillo de la lámpara con el tiempo.

Creación de luces parpadeantes | Documentación del Centro de creación de Roblox (2)

Si bien la lámpara no tiene un brillo NumberSequence por defecto, puede crear un atributo de brillo, configurarlo en un introducirNumberSequence, y luego experimentar agregando puntos clave con diferentes valores hasta que la luz parpadee en su cadencia configurada.

Para crear un brillo NumberSequence :

  1. Añade un nuevo atributo NumberSequence al aplicación de modeladode la lámpara.

    1. En la ventana Explorador , seleccione el aplicación de modeladode lámpara.

    2. En la ventana Propiedades , vaya a la sección Atributos y haga clic en el botón Agregar Atributo . El cuadro de diálogo Agregar Atributo se muestra.

    3. En el diálogo Añadir atributo ,

      1. En el campo Nombre , ingrese Curva de Brillo .

      2. Haga clic en el menú desplegable Tipo , luego seleccione Secuencia de números .

      3. Haga clic en el botón Guardar . El nuevo atributo se muestra en la sección Atributos de la ventana Propiedades .

        Creación de luces parpadeantes | Documentación del Centro de creación de Roblox (3)
  2. Seleccione la nueva propiedad BrightnessCurve , luego haga clic en el botón ... . Un pop-up de secuencia de números se muestra.

    Creación de luces parpadeantes | Documentación del Centro de creación de Roblox (4)
  3. Realiza una de las siguientes acciones:

    • Para cambiar el brillo en un punto, haga clic en un punto clave y arrástrelo hacia arriba o hacia abajo, o ingrese un valor en el campo Valor .

    • Para insertar nuevos puntos clave, haga clic en cualquier punto en el gráfico.

    • Para eliminar un punto clave, seleccione el punto clave y luego el botón Eliminar .

    • Para agregar un rango aleatorio de brillo, haga clic en cualquier punto clave y arrastre las filas del sobre hacia arriba o hacia abajo. En ese momento, la luz se genera con un brillo aleatorio entre el sobre rosa.

Por ejemplo, el siguiente gráfico hace que el parpadeo de luz sea de brillo completo para el primer parpadeo, 50% de brillo para el segundo parpadeo y luego 75% de brillo para el tercer parpadeo.

Creación de luces parpadeantes | Documentación del Centro de creación de Roblox (5)

Creando una duración de bucle

Ahora que tienes un NumberSequence para determinar cómo cambia el brillo de la luz de la lámpara a lo largo de su vida, debes determinar cuánto tiempo quieres que dure el bucle parpadeante. En otras palabras, esta duración de bucle esencialmente regula la frecuencia con que se repite el NumberSequence, en segundos.

Para crear una duración de bucle:

  1. Añade un nuevo atributo de duración de bucle al aplicación de modeladode la lámpara.

    1. En la ventana Explorador , seleccione el aplicación de modeladode lámpara.

    2. En la ventana Propiedades , vaya a la sección Atributos y haga clic en el botón Agregar Atributo . El cuadro de diálogo Agregar Atributo se muestra.

    3. En el diálogo Añadir atributo ,

      1. En el campo Nombre , ingrese Duración del bucle .

      2. Haga clic en el menú desplegable Escriba , luego seleccione Número .

      3. Haga clic en el botón Guardar . El nuevo atributo se muestra en la sección Atributos de la ventana Propiedades .

        Creación de luces parpadeantes | Documentación del Centro de creación de Roblox (6)
  2. Establece el nuevo atributo LoopDuration en 1 . Esto le dice al NumberSequence que repita después de un segundo.

Programando el Parpadeo de Luz

Ahora que tienes todos los elementos para controlar el brillo de tu lámpara durante su vida útil, es hora de crear un Script que hará que todo funcione en conjunto y parpadee la luz.

Para programar el parpadeo de la luz:

  1. En la ventana Explorador , pase el cursor sobre el modelo de la lámpara y haga clic en el botón ⊕. Aparecerá un menú contextual.

  2. Desde el menú, inserte un Script .

  3. En el nuevo script, ingrese lo siguiendo:

local RunService = game:GetService("RunService")

-- Obtiene los valores de los atributos configurados en el aplicación de modelado.

local brightnessCurve = script.Parent:GetAttribute("BrightnessCurve")

local loopDuration = script.Parent:GetAttribute("LoopDuration")

-- Almacena referencias a las instancias del aplicación de modeladoque cambiarán.

local light = script.Parent.lamp_hood.SpotLight

local bulb = script.Parent.lightbulb

local beam = script.Parent.lamp_hood.Beam

-- Almacena los valores originales de las propiedades que cambiarán.

local origLightBrightness = light.Brightness

local origBeamBrightness = beam.Brightness

local origBulbColor = bulb.Color

-- Obtiene el valor de la secuencia de números (ns) en un momento específico (nsTime)

function evaluateNumberSequence(ns: NumberSequence, nsTime: number)

-- Si estamos en 0 o 1, devuelve el valor del primer o último punto clave, respectivamente.

if nsTime == 0 then

return ns.Keypoints[1].Value

end

if nsTime == 1 then

return ns.Keypoints[#ns.Keypoints].Value

end

-- De lo contrario, pasa por cada par secuencial de puntos clave.

for i = 1, #ns.Keypoints - 1 do

-- Obtiene el punto clave actual y el siguiente.

local currKp = ns.Keypoints[i]

local nextKp = ns.Keypoints[i + 1]

-- Si nsTime está entre los tiempos de los puntos clave,

if nsTime >= currKp.Time and nsTime < nextKp.Time then

-- Calcula donde nsTime se encuentra entre los tiempos de los puntos clave, llama a este alfa.

local alpha = (nsTime - currKp.Time) / (nextKp.Time - currKp.Time)

-- Devuelve el valor entre los puntos de nsTime usando alfa.

return currKp.Value + (nextKp.Value - currKp.Value) * alpha

end

end

end

RunService.Heartbeat:Connect(function()

-- Soluciona por el tiempo de la secuencia de números (entre 0 y 1).

local t = time() / loopDuration

local numberSequenceTime = t - math.floor(t)

-- Obtiene el valor de la secuencia de números en este momento.

local brightnessValue = evaluateNumberSequence(brightnessCurve, numberSequenceTime)

-- Ajusta las propiedades de brillo y color según este valor.

light.Brightness = origLightBrightness * brightnessValue

beam.Brightness = origBeamBrightness * brightnessValue

bulb.Color = Color3.new(

origBulbColor.r * brightnessValue,

origBulbColor.g * brightnessValue,

origBulbColor.b * brightnessValue

)

end)

Cuando pruebas tu experiencia, la función Heartbeat ejecuta lo siguiente en cada fotograma:

  1. Se resuelve por un tiempo (numberSequenceTime ) dentro del brightnessCurve``Datatype.NumberSequence basado en el tiempo actual.

    • El tiempo está entre 0 y 1, ya que estos representan el comienzo y el final de la secuencia de números, respectivamente.

  2. Soluciona el valor (brightnessValue ) del brightnessCurve``Datatype.NumberSequence en el tiempo numberSequenceTime.

    • evaluateNumberSequence() calcula el valor asociado con el tiempo para cualquier NumberSequence.

    • Este valor sirve como un valor de brillo relativo para aplicar a las propiedades que cambian con el tiempo.

  3. Cambia las propiedades de las lámparas multiplicando brightnessValue por el brillo de la luz, el brillo del rayo y el color de la bombilla.

Los cambios en estas propiedades con el tiempo resultan en el efecto parpadeante a continuación.

Creación de luces parpadeantes | Documentación del Centro de creación de Roblox (2024)
Top Articles
Latest Posts
Article information

Author: Moshe Kshlerin

Last Updated:

Views: 5934

Rating: 4.7 / 5 (57 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Moshe Kshlerin

Birthday: 1994-01-25

Address: Suite 609 315 Lupita Unions, Ronnieburgh, MI 62697

Phone: +2424755286529

Job: District Education Designer

Hobby: Yoga, Gunsmithing, Singing, 3D printing, Nordic skating, Soapmaking, Juggling

Introduction: My name is Moshe Kshlerin, I am a gleaming, attractive, outstanding, pleasant, delightful, outstanding, famous person who loves writing and wants to share my knowledge and understanding with you.