Cabine de Fotos

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Tirar uma foto é uma maneira perfeita de comemorar uma grande experiência. O módulo Cabine de Fotos do desenvolvedor é uma ferramenta de estúdio de fotos fácil de usar que permite que os jogadores façam uma pose única com um fundo que representa sua experiência.

Uso do módulo

Instalação

Para usar o módulo Cabine de Fotos em uma experiência:

  1. No menu Janela do Studio ou na barra de ferramentas da aba Início, abra a Caixa de Ferramentas e selecione a aba Loja do Criador.

  2. Certifique-se de que a classificação Modelos está selecionada e, em seguida, clique no botão Ver Todos para Categorias.

  3. Localize e clique no bloco Pacotes.

  4. Localize o módulo Cabine de Fotos e clique nele, ou arraste e solte-o na visualização 3D.

  5. Na janela Explorador, mova todo o modelo Cabine de Fotos para ReplicatedStorage. Ao executar a experiência, o módulo começará a funcionar.

Posicionar a cabine

O módulo vem com um modelo de Cabine de Fotos que você pode posicionar no mundo 3D. Este modelo é o que os jogadores interagirão para configurar uma foto.

  1. Localize a malha Cabine de Fotos dentro da pasta Workspace da pasta principal do módulo.

  2. Mova-o para a hierarquia de Workspace de nível superior e posicione onde desejar.

Configuração

O módulo está pré-configurado para funcionar na maioria dos casos de uso, mas pode ser facilmente personalizado através da função configurar. Por exemplo, para alterar a mensagem padrão na parte inferior da foto:

  1. Em StarterPlayerScripts, crie um novo LocalScript e renomeie-o para ConfigurarCabineDeFotos.

  2. Cole o seguinte código no novo script.

    LocalScript - ConfigurarCabineDeFotos

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CabineDeFotos = require(ReplicatedStorage.CabineDeFotos)
    CabineDeFotos.configurar({
    mensaFrame = "Primeira Captura na Cabine de Fotos!",
    })

Conectar-se a eventos

Sempre que a cabine de fotos exibe uma nova tela para um cliente local, um evento correspondente é acionado. Esses eventos podem ser conectados em um LocalScript para que você possa responder com sua própria lógica personalizada.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local CabineDeFotos = require(ReplicatedStorage.CabineDeFotos)
CabineDeFotos.contagemRegressivaIniciada:Connect(function()
print("A contagem regressiva começou")
end)
CabineDeFotos.impressãoExibida:Connect(function()
print("A impressão está sendo exibida")
end)
CabineDeFotos.promptExibido:Connect(function()
print("O prompt da câmera está sendo exibido")
end)

Visibilidade da GUI

Por padrão, a cabine de fotos oculta todas as ScreenGuis e CoreGuis quando uma foto é apresentada. Se você quiser substituir esse comportamento de ocultação automática e decidir programaticamente quais GUIs devem permanecer visíveis, inclua os retornos de chamada ocultarOutrasGuis e mostrarOutrasGuis e responda com sua própria lógica personalizada.

LocalScript

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local CabineDeFotos = require(ReplicatedStorage.CabineDeFotos)
local jogador = Players.LocalPlayer
local playerGui = jogador:WaitForChild("PlayerGui")
local instânciasOcultas = {}
-- Crie uma GUI de tela que não será oculta
local instânciaGuiEspecial = Instance.new("ScreenGui")
-- Desenhe a GUI de tela acima da GUI da cabine de fotos
instânciaGuiEspecial.DisplayOrder = 1
instânciaGuiEspecial.Parent = playerGui
-- Defina um atributo na GUI da tela para evitar a ocultação
instânciaGuiEspecial:SetAttribute("ShowInPhotoBooth", true)
-- Adicione um rótulo de texto à GUI
local rótuloEspecial = Instance.new("TextLabel")
rótuloEspecial.Size = UDim2.fromScale(1, 0.1)
rótuloEspecial.Text = "Permanece visível ao tirar uma foto"
rótuloEspecial.Font = Enum.Font.GothamMedium
rótuloEspecial.TextSize = 24
rótuloEspecial.Parent = instânciaGuiEspecial
CabineDeFotos.ocultarOutrasGuis(function()
-- Oculte todas as GUIs de tela definidas pelo desenvolvedor, exceto aquelas marcadas com atributo
local instâncias = playerGui:GetChildren()
for _, instância in instâncias do
if instância:IsA("ScreenGui") and not instância:GetAttribute("ShowInPhotoBooth") and instância.Enabled then
instância.Enabled = false
table.insert(instânciasOcultas, instância)
end
end
-- Oculte GUIs de núcleo específicas
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
CabineDeFotos.mostrarOutrasGuis(function()
-- Mostre todas as GUIs de tela definidas pelo desenvolvedor que foram ocultas
for _, instância in instânciasOcultas do
instância.Enabled = true
end
instânciasOcultas = {}
-- Mostre GUIs de núcleo específicas que foram ocultas
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

Referência da API

Funções

configurar

configurar(config: table)

Substitui as opções de configuração padrão através das seguintes chaves/valores na tabela config. Esta função só pode ser chamada a partir de um LocalScript.

ChaveDescriçãoPadrão
mensaFrameMensagem que é mostrada na parte inferior da foto. Sua duração pode ser controlada pela propriedade fadeUiDelay."Use seu dispositivo para tirar uma captura de tela e compartilhar!"
fadeUiDelayTempo para mostrar a mensagem do quadro antes que ela desapareça, em segundos. Defina um número negativo para nunca desaparecer.3
imagemBotãoFecharImagem a ser usada para o botão de fechar a foto, colocada sobre a imagem closeButtonBackgroundImage."rbxassetid://7027440823"
imagemFundoBotãoFecharImagem de fundo a ser usada para o botão de fechar a foto."rbxassetid://7027440891"
posiçãoCameraPaisagemDistância da câmera da cabine de fotos, à frente e para cima do personagem, ao tirar uma foto em modo paisagem (Vector2).(5, 2)
posiçãoCameraRetratoDistância da câmera da cabine de fotos, à frente e para cima do personagem, ao tirar uma foto em modo retrato (Vector2).(10, 1)
fonteContagemRegressivaFonte a ser usada para os números na contagem regressiva (Enum.Font).GothamBlack
corTextoContagemRegressivaCor dos números na contagem regressiva (Color3).[255, 255, 255]
posiçãoPersonagemImpressãoPosição do personagem na tela quando a impressão está sendo exibida (UDim2).(0.5, 0, 0.5, 0)
tamanhoPersonagemImpressãoQuantidade de espaço na tela que o personagem ocupa na impressão (UDim2).(1, 0, 1, 0)
animaçãoPersonagemID do ativo da animação que o personagem assume na foto, pausada em seu quadro inicial."rbxassetid://6899663224"
imagemFiltroImagem a ser aplicada sobre a foto como um filtro. Se nil, um filtro padrão que escurece as bordas da imagem será usado.nil
LocalScript - ConfigurarCabineDeFotos

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local CabineDeFotos = require(ReplicatedStorage.CabineDeFotos)
CabineDeFotos.configurar({
mensaFrame = "Que pose legal!",
fadeUiDelay = 5,
máximaDistânciaAtivação = 5,
tamanhoPersonagemImpressão = UDim2.fromScale(1.5, 1.5),
})

setBackgrounds

setBackgrounds(backgrounds: table)

Substitui os fundos padrão fornecidos pela cabine de fotos. As imagens de fundo devem ter uma proporção de 16:9 (1024×576) para uma experiência otimizada e seus IDs de ativo devem ser incluídos no array de fundos. É possível fornecer de 1 a 4 fundos (inclusive).

LocalScript

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

Eventos

contagemRegressivaIniciada

Dispara quando a contagem regressiva começa. Este evento só pode ser conectado em um LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local CabineDeFotos = require(ReplicatedStorage.CabineDeFotos)
CabineDeFotos.contagemRegressivaIniciada:Connect(function()
print("A contagem regressiva começou")
end)

impressãoExibida

Dispara quando a impressão é exibida ao usuário. Este evento só pode ser conectado em um LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local CabineDeFotos = require(ReplicatedStorage.CabineDeFotos)
CabineDeFotos.impressãoExibida:Connect(function()
print("A impressão está sendo exibida")
end)

promptExibido

Dispara quando a impressão é fechada e o botão da câmera está sendo exibido novamente. Este evento só pode ser conectado em um LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local CabineDeFotos = require(ReplicatedStorage.CabineDeFotos)
CabineDeFotos.promptExibido:Connect(function()
print("O prompt da câmera está sendo exibido")
end)

Callbacks

ocultarOutrasGuis

ocultarOutrasGuis(callback: function)

Esse callback é executado imediatamente antes da impressão ser exibida, permitindo que você desative toda a ScreenGuis ou elementos dentro delas antes que a impressão seja mostrada. GUIs usadas pela cabine de fotos têm o atributo ShowInPhotoBooth definido como true. Veja Visibilidade da GUI para detalhes e código de exemplo.

mostrarOutrasGuis

mostrarOutrasGuis(callback: function)

Esse callback é executado após a impressão ter sido fechada, permitindo que você reative toda a ScreenGuis ou elementos dentro delas. GUIs usadas pela cabine de fotos têm o atributo ShowInPhotoBooth definido como true. Veja Visibilidade da GUI para detalhes e código de exemplo.

©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.