Os jogadores já fazem capturas de tela para comemorar momentos divertidos em experiências. O módulo de desenvolvedores SelfieMode permite que os jogadores capturem uma memória mais limpa daquele momento sem a janela ou lista de jogadores de bate-papo, enquanto também suporta efeitos de filtro, escondendo outros caracteres e postagem.
Uso do módulo
Instalação
Para usar o módulo SelfieMode em uma experiência:
Na aba Exibir, abra a Caixa de ferramentas e selecione a aba Mercado.
Verifique se a ordenação de Modelos está selecionada e, em seguida, clique no botão Exibir Tudo para Categorias.
Encontre e clique no painel DEV MODULES
Encontre o módulo Modo Selfie e clique nele, ou arraste e solte-o para a visualização 3D.
Na janela do Explorador, mova todo o modelo SelfieMode para o ServerScriptService. Ao executar a experiência, o módulo será distribuído para vários serviços e começará a ser executado.
Configuração
O módulo é pré-configurado para funcionar com a maioria dos casos de uso, mas é fácil customizá-lo por meio da função configure.
Em StarterPlayerScripts, crie um novo Class. LocalScript e renomeie-o para o ConfigureSelfieMode.
Cole o seguinte código dentro do script novo.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
Movimento do personagem
Pode ser vantajoso impedir que o personagem do jogador se mova enquanto estiver no modo selfie. Para fazer isso, defina disableCharacterMovement para verdadeiro e uma chamada de configure.
LocalScript - ConfigureSelfieMode
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("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 então detectar por meio dos eventos actionActivated e actionDeactivated.
Profundidade de campo
Por padrão, o SelfieMode mostra uma profundidade de campo genérica (desfoque sutil do fundo) quando o jogador liga a ação.
Para mudar a profundidade de campo padrão, defina depthOfFieldEffect para sua própria instância de Class. DepthOfFieldEffect em uma chamada de configure.
LocalScript - ConfigureSelfieMode
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))local customDepthOfField = Instance.new("DepthOfFieldEffect")customDepthOfField. NearIntensity = 0customDepthOfField. FarIntensity = 1customDepthOfField. FocusDistance = 5customDepthOfField. InFocusRadius = 5 SelfieMode.configure({depthOfFieldEffect = customDepthOfField})
Bloqueio de visão
O botão de Bloqueio de visão faz com que o personagem do jogador olhe para a câmera enquanto a pose para selfie é configurada dentro de uma rotação realista para o pescoço.
Ocultar outros
Por padrão, outros personagens ficam visíveis junto ao personagem do jogador. Os jogadores podem obter uma foto solo perfeita clicando no botão Ocultar outros. Quando ligado, outros personagens são ocultados da tela e permanecem invisíveis que a ação seja desligada.
Filtro
A ação Filtro permite que o jogador aplique um filtro pré-definido, que tem as opções Realçar, Suave, Antigo, Fofo, Dramático e Monocromático.
Pose
A ação Pose permite que o jogador escolha uma pose pré-definida das opções Torcendo, Batendo palmas, Golfinho, Dança do Fio, Tocando Guitarra, Onda de Pulos, Mais alto, Top Rock, Rodopio e Onda.
Referência de API
Tipos
Ação
Cada ação é representada por um dicionário com os seguintes pares de chave-valor:
Chave | Tipo | Descrição |
---|---|---|
name | string | Noma da ação, mostrado primeiramente nas dicas. |
description | string | Descrição da ação, mostrado após nome nas dicas. |
icon | string | ID do recurso para o ícone da ação. |
activeIcon | string | ID do recurso para ícone da ação em estado "ativo". Só pode ser usado em ações pai, não em subações. |
actions | tabela | Lista opcional de subações. Isso permite que você crie submenus de várias outras ações. |
parent | Ação | O pai da ação; só se aplica a uma subação e aponta para a ação que a contém. |
onActivated | função | Callback opcional que é executado quando o jogador ativa uma ação ou subação. Normalmente, se a ação contiver subações, apenas as subações precisarão de um callback definido de modo a saber que o jogador ativou a subação e que não se trata de uma "expansão" da ação pai. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)
Enumeradores
SelfieMode. Action
O SelfieMode vem várias ações. Você pode usar esse enum com as funções activateAction, deactivateAction, toggleAction.
Nome | Resumo |
---|---|
DepthOfField | Referência da ação Profundidade de campo. |
LockGaze | Referência da ação Bloqueio de visão. |
HideOthers | Referência da ação Ocultar outros. |
Filter | Referência da ação Filtro. |
Pose | Referência da ](#pose)ação [Pode. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- Activate "Filter" action SelfieMode.activateAction(SelfieMode. Action. Filter)
Funções
configurar
configure(config:table)
Substitui as opções de configuração padrão por meio das chaves-valor na tabela config. Esta função só poder ser chamada de um Class. LocalScript.
Chave | Descrição | Padrão |
---|---|---|
disableCharacterMovement | Se verdadeiro, evita que o personagem se mova enquanto o modo selfie estiver aberto. | false |
depthOfFieldEffect | Class. DepthOfFieldEffectInstância personalizada opcional que aparece quando o jogador ativa a ação Profundidade de campo. |
LocalScript - ConfigureSelfieMode
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
Um jogador normalmente abre o modo selfie com o botão "câmera" do lado direito da tela, mas essa função permite abri-lo por meio de código. Ao implementar um botão personalizado, como mostrado abaixo, é preciso desabilitar o botão padrão por meio de setHudButtonEnabled. Esta função só poder ser chamada de um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local button = script. Parent
-- Remove the default button SelfieMode.setHudButtonEnabled(false)
-- Connect the custom button
button. Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
closeSelfieMode
closeSelfieMode()
Um jogador normalmente fecha o modo selfie com o botão ⊗ na parte inferior da tela, mas essa função permite que fechar o modo por meio de código. Só pode ser chamado de um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.closeSelfieMode()
isSelfieModeOpen
isSelfieModeOpen():boolean
Retorna true se o modo selfie estiver aberto como resultado da ação do jogador ou por meio de openSelfieMode. Esta função só poder ser chamada de um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
Define se o botão padrão para entrar no modo selfie é exibido. Útil ao implementar o openSelfieMode por meio de um botão personalizado de IU. Esta função só poder ser chamada de um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local button = script. Parent
-- Remove the default button SelfieMode.setHudButtonEnabled(false)
-- Connect the custom button
button. Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
getAction
getAction(action:SelfieMode. Action):Action
Obtém um tipo de ação por meio do enum SelfieMode. Action.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))local lockGazeAction = SelfieMode.getAction(SelfieMode. Action. LockGaze)
activateAction
activateAction(action:SelfieMode. Action)
Ativa de forma programática uma das ações padrão. É o mesmo que ocorre quando um jogador alterna a ação da barra de ações. Só pode ser chamado de um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- Activate "Filter" action SelfieMode.activateAction(SelfieMode. Action. Filter)
deactivateAction
deactivateAction(action:SelfieMode. Action)
Ativa de forma programática uma das ações padrão. É o mesmo que ocorre quando um jogador ativa a ação da barra de ações. Só pode ser chamado de um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- Deactivate "Filter" action SelfieMode.deactivateAction(SelfieMode. Action. Filter)
toggleAction
toggleAction(action:SelfieMode. Action):boolean
Desativa de forma programática uma das ações padrão. É o mesmo que quando um jogador ativa a ação fora da barra de ações. Só pode ser chamado de um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))local lockGazeAction = SelfieMode.getAction(SelfieMode. Action. LockGaze)local isEnabled = SelfieMode.toggleAction(lockGazeAction)if isEnabled thenprint("Activated", lockGazeAction.name)elseprint("Deactivated", lockGazeAction.name)end
setTheme
setTheme(theme:table)
Configura o tema do modo selfie, incluindo tamanho de texto, fonte, cores de botão/dica e mais. Esta função só poder ser chamada de um Class. LocalScript.
Geral
Chave | Descrição | Padrão |
---|---|---|
textSize | Tamanho de todo o texto. | "16" |
font | Font usada em toda a IU (Enum. Font). | GothamMedium |
padding | Preenchimento principal usado para posicionar elementos da IU (UDim). | (0, 12) |
paddingSmall | O preenchimento menor usado para aplicar margens sutis entre aos elementos (UDim). | (0, 6) |
paddingScreen | Preenchimento usado em torno dos cantos da janela para dar mais espaço ao modo selfie (UDim). | (0, 24) |
backgroundColor | Cor de plano de fundo usada na barra que mostra as ações (`Datatype. | [0, 0, 0] |
scrollBarColor | Cor da barra de rolagem usada em elementos de Class. ScrollingFrame do módulo (Datatype. Color3). | [255, 255, 255] |
Botões e dicas
Chave | Descrição | Padrão |
---|---|---|
openButtonBackgroundColor | Cor de fundo do botão da HUD do lado direito da tela, usado para abrir o modo selfie (Datatype. Color3). | [255, 255, 255] |
openButtonIconColor | Cor ícone de câmera do botão da HUD (Datatype. Color3). | [0, 0, 0] |
closeButtonBackgroundColor | Cor de plano de fundo do botão "fechar" (Datatype. Color3). | [0, 0, 0] |
closeButtonIconColor | Cor do ícone para o botão fechar (Datatype. Color3). | [255, 255, 255] |
actionButtonBackgroundColor | Cor de fundo de vários botões de ação usados para ligar e desligar ações (Datatype. Color3). | [255, 255, 255] |
actionButtonIconColor | Cor do ícone para vários botões de ação (Datatype. Color3). | [0, 0, 0] |
tooltipBackgroundColor | Cor de fundo para dicas e notificações (Datatype. Color3). | [0, 0, 0] |
tooltipNameColor | Cor do texto no nome das dicas (Datatype. Color3). Também usado como cor do texto para notificações. | [255, 255, 255] |
tooltipDescriptionColor | Cor das descrições das dicas, ligeiramente transparente para dar foco aos nomes das dicas (Datatype. Color3). Não é usado nas notificações. | [169, 169, 169] |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("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á ativo ou não. Quando desabilitado, toda a IU para o módulo é removida e todos os eventos são desconectados. Esta função só poder ser chamada de um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.setEnabled(false)
Eventos
selfieModeOpened
selfieModeOpened():RBXScriptSignal
Dispara quando o jogador abre o modo selfie ou quando a função openSelfieMode é chamada. O evento só pode ser conectado a um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeOpened:Connect(function()
print("Selfie mode open")
end)
selfieModeClosed
selfieModeClosed():RBXScriptSignal
Dispara quando o jogador fecha o modo selfie ou quando a função closeSelfieMode é chamada. O evento só pode ser conectado a um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeClosed:Connect(function()
print("Selfie mode closed")
end)
actionActivated
actionActivated(action:SelfieMode. Action):RBXScriptSignal
Inicia quando uma ação é ativada; esta pode ser uma das principais ações como Profundidade de Campo, , Bloquear Olhar, ou Ocultar OutrosAlternativamente, pode ser uma sub-ação como um filtro ou pose. A função conectada recebe a ação ativada. O evento só pode ser conectado a um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
actionDeactivated
actionDeactivated(action:SelfieMode. Action):RBXScriptSignal
Dispara quando uma ação primária ou subação é desativada. A função conectada recebe a ação desativada. O evento só pode ser conectado a um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)
filterChanged
filterChanged(newFilter:string, oldFilter:string):RBXScriptSignal
Dispara quando um filtro é aplicado ou removido. A função conectada recebe o nome do filtro novo e o nome do filtro antigo. O evento só pode ser conectado a um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Filter changed from", oldFilter, "to", newFilter)
end)
poseChanged
poseChanged(newPose:string, oldPose:string):RBXScriptSignal
Dispara quando uma pose é aplicava ou removida. A função conectada recebe o nome da pose nova e o nome da pose antiga. O evento só pode ser conectado a um Class. LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("Pose changed from", oldPose, "to", newPose)
end)