Cabina de Fotos

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Tomar una foto es una manera perfecta de conmemorar una gran experiencia. El PhotoBooth módulo de desarrollador es una herramienta de escenificación de fotos fácil de usar que permite a los jugadores posar de manera única con un fondo que representa su experiencia.

Uso del módulo

Instalación

Para usar el módulo PhotoBooth en una experiencia:

  1. Desde el menú Ventana de Studio o la barra de herramientas de la pestaña Inicio, abre el Toolbox y selecciona la pestaña Tienda de Creadores.

  2. Asegúrate de que se haya seleccionado la clasificación de Modelos, luego haz clic en el botón Ver Todos para Categorías.

  3. Localiza y haz clic en el mosaico Paquetes.

  4. Localiza el módulo Cabina de Fotos y haz clic en él, o arrástralo y suéltalo en la vista 3D.

  5. En la ventana Explorer, mueve todo el modelo PhotoBooth a ReplicatedStorage. Al ejecutar la experiencia, el módulo comenzará a funcionar.

Posicionar la cabina

El módulo viene con un modelo de PhotoBooth que puedes posicionar en el mundo 3D. Este modelo es con el que los jugadores interactuarán para configurar una foto.

  1. Localiza el modelo PhotoBooth dentro de la carpeta Workspace de la carpeta principal del módulo.

  2. Muévelo a la jerarquía de Workspace de nivel superior y posiciónalo donde desees.

Configuración

El módulo está preconfigurado para funcionar en la mayoría de los casos de uso, pero se puede personalizar fácilmente a través de la función configure. Por ejemplo, para cambiar el mensaje predeterminado en la parte inferior de la foto:

  1. En StarterPlayerScripts, crea un nuevo LocalScript y renómbralo a ConfigurePhotoBooth.

  2. Pega el siguiente código en el nuevo script.

    LocalScript - ConfigurePhotoBooth

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
    PhotoBooth.configure({
    frameMessage = "¡Primer Captura en la Cabina de Fotos!",
    })

Conectar a eventos

Cada vez que la cabina de fotos muestra una nueva pantalla a un cliente local, se activa un evento correspondiente. Estos eventos se pueden conectar en un LocalScript para que puedas responder con tu propia lógica personalizada.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("La cuenta regresiva ha comenzado")
end)
PhotoBooth.printoutShown:Connect(function()
print("La impresión se está mostrando")
end)
PhotoBooth.promptShown:Connect(function()
print("El mensaje de la cámara se está mostrando")
end)

Visibilidad de la GUI

Por defecto, la cabina de fotos oculta todas los ScreenGuis y CoreGuis cuando se está realizando una foto. Si deseas anular este comportamiento de ocultación automática y decidir programáticamente qué GUIs deben permanecer visibles, incluye los callbacks hideOtherGuis y showOtherGuis y responde con tu propia lógica personalizada.

LocalScript

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- Crea una GUI de pantalla que no será oculta
local specialGuiInstance = Instance.new("ScreenGui")
-- Dibuja la GUI de pantalla por encima de la GUI de la cabina de fotos
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Establece un atributo en la GUI de pantalla para evitar que se oculte
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Añade una etiqueta de texto a la GUI
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "Permanece visible al tomar una foto"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- Oculta todas las GUIs de pantalla definidas por el desarrollador excepto aquellas marcadas con atributo
local instances = playerGui:GetChildren()
for _, instance in instances do
if instance:IsA("ScreenGui") and not instance:GetAttribute("ShowInPhotoBooth") and instance.Enabled then
instance.Enabled = false
table.insert(hiddenInstances, instance)
end
end
-- Oculta GUIs centrales específicas
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Muestra todas las GUIs de pantalla definidas por el desarrollador que fueron ocultadas
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Muestra GUIs centrales específicas que fueron ocultadas
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

Referencia de API

Funciones

configure

configure(config: table)

Sobrescribe las opciones de configuración predeterminadas a través de las siguientes claves/valores en la tabla config. Esta función solo se puede llamar desde un LocalScript.

ClaveDescripciónPredeterminado
frameMessageMensaje que se muestra en la parte inferior de la foto. Su duración se puede controlar a través de la propiedad fadeUiDelay."¡Usa tu dispositivo para tomar una captura de pantalla y compartir!"
fadeUiDelayTiempo que se muestra el mensaje del marco antes de desvanecerse, en segundos. Establecer en un número negativo para no desvanecer nunca.3
closeButtonImageImagen a usar para el botón de cierre de la foto, colocada sobre la imagen de fondo del botón de cierre closeButtonBackgroundImage."rbxassetid://7027440823"
closeButtonBackgroundImageImagen de fondo a usar para el botón de cierre de la foto."rbxassetid://7027440891"
cameraLandscapePositionDistancia de la cámara de la cabina de fotos, frente y hacia arriba desde el personaje, al tomar una foto en modo paisaje (Vector2).(5, 2)
cameraPortraitPositionDistancia de la cámara de la cabina de fotos, frente y hacia arriba desde el personaje, al tomar una foto en modo retrato (Vector2).(10, 1)
countdownFontFuente a usar para los números en la cuenta regresiva (Enum.Font).GothamBlack
countdownTextColorColor de los números en la cuenta regresiva (Color3).[255, 255, 255]
printoutCharacterPositionPosición del personaje en la pantalla cuando se está mostrando la impresión (UDim2).(0.5, 0, 0.5, 0)
printoutCharacterSizeCantidad de espacio en pantalla que ocupa el personaje en la impresión (UDim2).(1, 0, 1, 0)
characterAnimationID del activo de la animación que realiza el personaje en la foto, en pausa en su cuadro inicial."rbxassetid://6899663224"
filterImageImagen que se aplicará sobre la foto como un filtro. Si nil, se usará un filtro por defecto que oscurece los bordes de la imagen.nil
LocalScript - ConfigurePhotoBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.configure({
frameMessage = "¡Qué pose tan genial!",
fadeUiDelay = 5,
maxActivationDistance = 5,
printoutCharacterSize = UDim2.fromScale(1.5, 1.5),
})

setBackgrounds

setBackgrounds(backgrounds: table)

Sobrescribe los fondos predeterminados proporcionados por la cabina de fotos. Las imágenes de fondo deben tener una relación de aspecto de 16:9 (1024×576) para una experiencia óptima y sus IDs de activos deben estar incluidos en la matriz de fondos. Se pueden proporcionar de 1 a 4 fondos (inclusive).

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.setBackgrounds({
"rbxassetid://7018713114",
"rbxassetid://950538356",
})

Eventos

countdownStarted

Se inicia cuando la cuenta regresiva comienza. Este evento solo se puede conectar en un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("La cuenta regresiva ha comenzado")
end)

printoutShown

Se inicia cuando la impresión se muestra al usuario. Este evento solo se puede conectar en un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.printoutShown:Connect(function()
print("La impresión se está mostrando")
end)

promptShown

Se inicia cuando la impresión se cierra y el botón de la cámara se muestra de nuevo. Este evento solo se puede conectar en un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.promptShown:Connect(function()
print("El mensaje de la cámara se está mostrando")
end)

Callbacks

hideOtherGuis

hideOtherGuis(callback: function)

Este callback se ejecuta inmediatamente antes de que se muestre la impresión, permitiéndote desactivar toda la ScreenGuis o elementos dentro de ellas antes de que se muestre la impresión. Las GUIs utilizadas por la cabina de fotos tienen el atributo ShowInPhotoBooth establecido en true. Consulta Visibilidad de GUI para obtener detalles y código de muestra.

showOtherGuis

showOtherGuis(callback: function)

Este callback se ejecuta después de que se ha cerrado la impresión, permitiéndote volver a habilitar toda la ScreenGuis o elementos dentro de ellas. Las GUIs utilizadas por la cabina de fotos tienen el atributo ShowInPhotoBooth establecido en true. Consulta Visibilidad de GUI para obtener detalles y código de muestra.

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.