Os jogadores já tiram capturas de tela para comemorar momentos divertidos em experiências. O módulo SelfieMode desenvolvedor permite que os jogadores capturem uma memória mais limpa desse momento, sem a janela de chat ou lista de jogadores, enquanto também suporta efeitos de filtro, ocultação de outros personagens e poses.
Uso do Módulo
Instalação
Para usar o módulo SelfieMode em uma experiência:
No menu Janela do Studio ou na barra de ferramentas da aba Início, abra o Toolbox e selecione a aba Creator Store.

Certifique-se de que a ordenação por Modelos esteja selecionada, em seguida clique no botão Ver Todos para Categorias.

Localize e clique no bloco Pacotes.
Localize o módulo Modo Selfie e clique nele, ou arraste e solte-o na visualização 3D.

Na janela Explorador, mova todo o pacote SelfieMode para ReplicatedStorage. Ao executar a experiência, o módulo começará a rodar.
Configuração
O módulo está pré-configurado para funcionar na maioria dos casos de uso, mas você pode personalizá-lo facilmente por meio da função configure.
Em StarterPlayerScripts, crie um novo LocalScript e renomeie-o para ConfigureSelfieMode.
Cole o seguinte código no novo script.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Movimento do Personagem
Pode ser benéfico impedir que o personagem do jogador se mova enquanto estiver no modo selfie. Você pode fazer isso definindo disableCharacterMovement como verdadeiro em uma chamada configure.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Ações do Modo Selfie
O SelfieMode vem com as seguintes ações, cada uma das quais você pode usar com as funções activateAction, deactivateAction e toggleAction, ou detectar através dos eventos actionActivated e actionDeactivated.
Profundidade de Campo
Por padrão, o SelfieMode mostra um efeito genérico de profundidade de campo (desfoque sutil do fundo) quando um jogador ativa a ação.

Para alterar o efeito de profundidade de campo padrão, defina depthOfFieldEffect como sua própria instância DepthOfFieldEffect em uma chamada configure.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local customDepthOfField = Instance.new("DepthOfFieldEffect")customDepthOfField.NearIntensity = 0customDepthOfField.FarIntensity = 1customDepthOfField.FocusDistance = 5customDepthOfField.InFocusRadius = 5SelfieMode.configure({depthOfFieldEffect = customDepthOfField})
Olhar Fixo
O recurso Olhar Fixo faz com que o personagem do jogador olhe para a câmera enquanto configura a pose para a selfie, dentro de um intervalo realista de até onde seu pescoço pode girar.
Ocultar Outros
Por padrão, outros personagens são visíveis ao lado do personagem do jogador. Os jogadores podem obter uma captura perfeita clicando no botão Ocultar Outros. Quando ativado, outros personagens desaparecem da visão e permanecem invisíveis até que a ação seja desativada.
Filtro
A ação Filtro permite que o jogador aplique um filtro predefinido nas opções Pop, Suave, Antigo, Fofo, Dramático e Monocromático.

Pose
A ação Pose permite que o jogador selecione uma pose predefinida nas opções Aplausos, Vibrando, Golfinho, Dançando, Guitarra, Onda de Salto, Mais Alto, Top Rock, Rodopiar e Onda.

Referência da API
Tipos
Ação
Cada ação é representada por um dicionário com os seguintes pares chave-valor:
| Chave | Tipo | Descrição |
|---|---|---|
| name | string | Nome da ação, exibido primeiro nas dicas de ferramenta. |
| description | string | Descrição da ação, exibida após name nas dicas de ferramenta. |
| icon | string | ID do ativo para o ícone da ação. |
| activeIcon | string | ID do ativo para o ícone da ação no estado "ativo". Pode ser usado apenas em ações pai, não em sub-ações. |
| actions | table | Lista opcional de sub-ações. Isso permite que você crie submenus de várias outras ações. |
| parent | Ação | A ação pai; isso se aplica apenas a uma sub-ação e aponta para a ação que a contém. |
| onActivated | function | Função de callback opcional que é executada quando um jogador ativa uma ação ou sub-ação. Normalmente, se uma ação contém sub-ações, apenas as sub-ações precisarão de um callback definido como um meio de saber que o jogador ativou a sub-ação e não apenas "expandiu" a ação pai. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "ativada")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "desativada")
end)
Enums
SelfieMode.Action
O SelfieMode vem com várias ações. Você pode usar esse enum com as funções activateAction, deactivateAction e toggleAction.
| Nome | Resumo |
|---|---|
| DepthOfField | Referência à ação Profundidade de Campo. |
| LockGaze | Referência à ação Olhar Fixo. |
| HideOthers | Referência à ação Ocultar Outros. |
| Filter | Referência à ação Filtro. |
| Pose | Referência à ação Pose. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Ativar a ação "Filtro"SelfieMode.activateAction(SelfieMode.Action.Filter)
Funções
configure
configure(config: table)
Substitui opções de configuração padrão através das seguintes chaves/valores na tabela config. Esta função só pode ser chamada de um LocalScript.
| Chave | Descrição | Padrão |
|---|---|---|
| disableCharacterMovement | Se verdadeiro, impede que o personagem se mova enquanto o modo selfie estiver aberto. | false |
| depthOfFieldEffect | Instância opcional DepthOfFieldEffect personalizada que aparece quando o jogador ativa a ação Profundidade de Campo. |
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
Um jogador normalmente abrirá o modo selfie com o botão "câmera" no lado direito da tela, mas essa função permite que você o abra através do código. Ao implementar um botão personalizado como mostrado abaixo, você deve desativar o botão padrão através do setHudButtonEnabled. Esta função só pode ser chamada de um LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Remover o botão padrão
SelfieMode.setHudButtonEnabled(false)
-- Conectar o botão personalizado
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
closeSelfieMode
closeSelfieMode()
Um jogador normalmente fechará o modo selfie com o botão ⊗ na parte inferior da tela, mas essa função permite que você o feche através do código. Só pode ser chamado de um LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.closeSelfieMode()
isSelfieModeOpen
isSelfieModeOpen(): boolean
Retorna true se o modo selfie estiver aberto como resultado da ação do jogador ou através do openSelfieMode. Esta função só pode ser chamada de um LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
Define se o botão padrão para entrar no modo selfie está visível. Útil ao implementar openSelfieMode através de um botão de UI personalizado. Esta função só pode ser chamada de um LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Remover o botão padrão
SelfieMode.setHudButtonEnabled(false)
-- Conectar o botão personalizado
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
getAction
getAction(action: SelfieMode.Action): Ação
Obtém um tipo Ação através de um enum SelfieMode.Action.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
activateAction
activateAction(action: SelfieMode.Action)
Ativa programaticamente uma das ações padrão. Isso é o mesmo que quando um jogador ativa a ação a partir da barra de ações. Só pode ser chamado de um LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Ativar a ação "Filtro"SelfieMode.activateAction(SelfieMode.Action.Filter)
deactivateAction
deactivateAction(action: SelfieMode.Action)
Desativa programaticamente uma das ações padrão. Isso é o mesmo que quando um jogador desativa a ação a partir da barra de ações. Só pode ser chamado de um LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Desativar a ação "Filtro"SelfieMode.deactivateAction(SelfieMode.Action.Filter)
toggleAction
toggleAction(action: SelfieMode.Action): boolean
Alterna uma ação para "ligado" se estiver "desligada", ou alterna para "desligado" se estiver "ligada". Isso é o mesmo que quando um jogador clica na ação a partir da barra de ações. Retorna o novo estado "está ativado" como um booleano. Só pode ser chamado de um LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)local isEnabled = SelfieMode.toggleAction(lockGazeAction)if isEnabled thenprint("Ativado", lockGazeAction.name)elseprint("Desativado", lockGazeAction.name)end
setTheme
setTheme(theme: table)
Configura o tema do modo selfie, incluindo tamanho do texto, fonte, cores de botões/dicas de ferramenta e mais. Esta função só pode ser chamada de um LocalScript.
| Chave | Descrição | Padrão |
|---|---|---|
| textSize | Tamanho de todo o texto. | 16 |
| font | Fonte utilizada em toda a UI (Enum.Font). | GothamMedium |
| padding | Preenchimento principal usado para dispor elementos da UI (UDim). | (0, 12) |
| paddingSmall | Preenchimento menor usado para aplicar margens sutis entre elementos (UDim). | (0, 6) |
| paddingScreen | Preenchimento usado ao redor das bordas da tela para dar ao modo selfie um pouco de espaço (UDim). | (0, 24) |
| backgroundColor | Cor de fundo usada para a barra que exibe as ações (Color3). | [0, 0, 0] |
| scrollBarColor | Cor da barra de rolagem usada nos elementos ScrollingFrame do módulo (Color3). | [255, 255, 255] |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setTheme({textSize = 20,font = Enum.Font.Michroma,backgroundColor = Color3.fromRGB(0, 40, 75),})
setEnabled
setEnabled(isEnabled: boolean)
Define se o modo selfie está habilitado ou não. Quando desativado, toda a UI do módulo é removida e todos os eventos são desconectados. Esta função só pode ser chamada de um LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setEnabled(false)
Eventos
selfieModeOpened
Dispara quando o jogador abre o modo selfie ou quando openSelfieMode é chamado. Este evento só pode ser conectado em um LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeOpened:Connect(function()
print("Modo selfie aberto")
end)
selfieModeClosed
Dispara quando o jogador fecha o modo selfie ou quando closeSelfieMode é chamado. Este evento só pode ser conectado em um LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeClosed:Connect(function()
print("Modo selfie fechado")
end)
actionActivated
| Parâmetros | |
|---|---|
| action: SelfieMode.Action | A Ação ativada. |
Dispara quando uma ação é ativada; isso pode ser uma das ações principais, como Profundidade de Campo, Olhar Fixo ou Ocultar Outros; alternativamente, pode ser uma sub-ação como um filtro ou pose. A função conectada recebe a Ação ativada. Este evento só pode ser conectado em um LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "ativada")
end)
actionDeactivated
| Parâmetros | |
|---|---|
| action: SelfieMode.Action | A Ação desativada. |
Dispara quando uma ação principal ou sub-ação é desativada. A função conectada recebe a Ação desativada. Este evento só pode ser conectado em um LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "desativada")
end)
filterChanged
Dispara quando um filtro é aplicado ou removido. A função conectada recebe o nome do novo filtro e o nome do filtro antigo. Este evento só pode ser conectado em um LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Filtro alterado de", oldFilter, "para", newFilter)
end)
poseChanged
Dispara quando uma pose é aplicada ou removida. A função conectada recebe o nome da nova pose e o nome da pose antiga. Este evento só pode ser conectado em um LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("Pose alterada de", oldPose, "para", newPose)
end)