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 fotografía fácil de usar que permite a los jugadores tomar una posa única con un fondo que representa su experiencia.

Uso de módulos

Instalación

Para usar el módulo Cabina de fotos en una experiencia:

  1. De la pestaña Ver, abra la Caja de herramientas y seleccione la pestaña Tienda del Creador .

    Toolbox toggle button in Studio
  2. Asegúrese de que se seleccione el Modelos clasificación y luego haga clic en el botón Ver Todo para Categorías .

  3. Ubique y haga clic en el mosaico de Modulos de Dev .

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

  5. En la ventana Explorer, mueva el modelo entero de PhotoBooth a ServerScriptService . Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a funcionar.

Colocando el stand

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

  1. Encuentra el malla Cabina de Fotografía dentro del directorio principal de la carpeta Espacio de Trabajo del módulo.

  2. Móvelo a la nivel superior de la hierarquía del espacio de trabajo y colócalo donde quieras.

Configuración

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

  1. En StarterPlayerScripts , crea un nuevo LocalScript y renombralo a ConfigurarFotomatón .

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

    LocalScript - ConfigurarCabinaFotográfica

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
    PhotoBooth.configure({
    frameMessage = "First Photo Booth Capture!",
    })

Conectando a los 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 pueda responder con su propia lógica personalizada.

Script local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)

Visibilidad de GUI

Por defecto, la cabina de fotos oculta todos los ScreenGuis y CoreGuis cuando se establece una foto. Si desea sobrepasar este comportamiento de auto-ocultamiento y programar qué GUI deben permanecer visibles, incluir los controles de otros guis y 2>mostrar otros guis2> y respon

Script local

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- Cree una GUI de pantalla que no se ocultará
local specialGuiInstance = Instance.new("ScreenGui")
-- Dibuja la interfaz de usuario de la GUI de la cabina de fotos por encima de la Interfaz gráfica (o GUI)de la cabina de fotos
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Establece el atributo en la GUI de la pantalla para evitar ocultar
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Añadir etiqueta de texto a la Interfaz gráfica (o GUI)
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "Remains visible when taking a photo"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- Ocultar todos los GUI de pantalla definidos por el desarrollador excepto los marcados 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
-- Ocultar GUI del núcleo específicas
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Mostrar todos los GUI de pantalla definidos por el desarrollador que se ocultaban
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Mostrar GUI del núcleo específicas que se ocultaron
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

Referencia de API

Funciones

configurar

configurar(Config: table )

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

ClaveDescripciónPor defecto
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!»
fadeUiDelayEs hora de mostrar el mensaje de marco antes de que se desvanezca, en segundos. Establece un número negativo para no desaparecer.3
closeButtonImageImagen para usar para el botón de cierre de la foto, colocado por encima de la imagen closeButtonBackgroundImage .haga clic aquí para ver la lista de propiedades de rbx.
closeButtonBackgroundImageImagen de fondo para usar para el botón de cierre de la foto.haga clic aquí para ver la lista de propiedades de rbx.
cameraLandscapePositionDistancia de la cámara de la cabina de fotos, en frente y hacia arriba del personaje, al tomar una foto en modo de paisaje ( Vector2 ).(5, 2)
cameraPortraitPositionDistancia de la cámara de la cabina de fotos, en frente y hacia arriba del personaje, al tomar una foto en modo retrato ( Vector2 ).(10, 1)
countdownFontFuente para 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 muestra el resultado de impresión ( UDim2 ).(0.5, 0, 0.5, 0)
printoutCharacterSizeCantidad de espacio de pantalla que el personaje ocupa en la impresión ( UDim2 ).(1, 0, 1, 0)
characterAnimationID de la animación que el personaje toma en la foto, enmarcada en su marco de inicio.""rboxassetid://6899663224"
filterImageImagen para aplicar sobre la foto como filtro. Si nil , se usará un filtro por defecto que oscurece los bordes de la imagen.nil
LocalScript - ConfigurarCabinaFotográfica

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.configure({
frameMessage = "What a cool pose!",
fadeUiDelay = 5,
maxActivationDistance = 5,
printoutCharacterSize = UDim2.fromScale(1.5, 1.5),
})

Establecer Fondos

setBackgrounds(背景: table )

Sobrescubre los fondos de pantalla predeterminados proporcionados por la cabina de fotos. Las imágenes de fondo deben estar en el aspecto 16: 9 (1024 × 768) para una experiencia óptima y sus ID de activos deben estar incluidos en el matriz/listade fondos. 1–4 (incluido) fondos pueden ser proporcionados.

Script local

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

Eventos

countdownIniciado

Se activa cuando termina la cuenta regresiva. Este evento solo se puede conectar en un LocalScript .

Script local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)

printoutMostrado

Se activa cuando se muestra el printout al usuario. Este evento solo se puede conectar en un LocalScript .

Script local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)

提示Show

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

Script local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)

Llamadas

esconderOtroGuis

otroGuis(devolución de llamada: function )

Este llamado se ejecuta inmediatamente antes de que se muestre el printout, lo que te permite desactivar todo ScreenGuis o elementos dentro de ellos antes de que se muestre el printout. Los GUI usados por la cabina de fotos tienen el atributo MostrarEnPhotoBooth establecido a true . Vea 1> Visibilidad de GUI1> para obtener det

mostrarOtroGuis

mostrarOtroGuis(devolución de llamada: function )

Este llamado se ejecuta después de que se cierre la impresión, lo que te permite reactivar todo ScreenGuis o elementos dentro de ellos. Los GUI usados por la cabina de fotos tienen el atributo MostrarEnPhotoBooth establecido como true . Ve a ver 2> Visibilidad de GUI2> para obtener más información y código de ejemplo.