Los jugadores ya toman capturas de pantalla para conmemorar momentos divertidos en las experiencias. El módulo SelfieMode desarrollador permite a los jugadores capturar un recuerdo más limpio de ese momento sin la ventana de chat ni la lista de jugadores, y también admite efectos de filtro, ocultación de otros personajes y poses.
Uso del Módulo
Instalación
Para usar el módulo SelfieMode en una experiencia:
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 del Creador.

Asegúrate de que la clasificación de Modelos esté seleccionada, luego haz clic en el botón Ver Todos para Categorías.

Localiza y haz clic en el mosaico de Paquetes.
Localiza el módulo Modo Selfie y haz clic en él, o arrástralo y suéltalo en la vista 3D.

En la ventana del Explorador, mueve el paquete completo SelfieMode a ReplicatedStorage. Al ejecutar la experiencia, el módulo comenzará a ejecutarse.
Configuración
El módulo está preconfigurado para funcionar en la mayoría de los casos, pero puedes personalizarlo fácilmente a través de la función configure.
En StarterPlayerScripts, crea un nuevo LocalScript y renómbralo a ConfigureSelfieMode.
Pega el siguiente código en el nuevo script.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Movimiento del Personaje
Puede ser ventajoso evitar que el personaje del jugador se mueve mientras está en modo selfie. Puedes lograr esto estableciendo disableCharacterMovement en true en una llamada a configure.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Acciones del Modo Selfie
SelfieMode viene con las siguientes acciones, cada una de las cuales puedes utilizar con las funciones activateAction, deactivateAction y toggleAction, o detectar a través de los eventos actionActivated y actionDeactivated.
Profundidad de Campo
Por defecto, SelfieMode muestra un efecto genérico de profundidad de campo (desenfoque sutil del fondo) cuando un jugador activa la acción.

Para cambiar el efecto de profundidad de campo predeterminado, establece depthOfFieldEffect a tu propia instancia de DepthOfFieldEffect en una llamada a 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})
Bloquear Mirada
El interruptor de Bloquear Mirada hace que el personaje del jugador mire hacia la cámara mientras configura la pose de selfie, dentro de un rango realista de cuán lejos puede girar su cuello.
Ocultar Otros
Por defecto, otros personajes son visibles junto al personaje del jugador. Los jugadores pueden obtener una toma perfecta en solitario haciendo clic en el botón Ocultar Otros. Cuando se activa, otros personajes se desvanecen de la vista y permanecen invisibles hasta que la acción se desactive.
Filtro
La acción Filtro permite al jugador aplicar un filtro preestablecido de las opciones Pop, Suave, Antiguo, Lindo, Dramático y Monocromo.

Pose
La acción Pose permite al jugador seleccionar una pose preestablecida de las opciones Animar, Aplaudir, Delfín, Flossing, Guitarra, Saltando y Saludando, Más Fuerte, Top Rock, Girar y Saludar.

Referencia de la API
Tipos
Acción
Cada acción es representada por un diccionario con los siguientes pares clave-valor:
| Clave | Tipo | Descripción |
|---|---|---|
| name | string | Nombre de la acción, mostrado primero en las descripciones emergentes. |
| description | string | Descripción de la acción, mostrada después del nombre en las descripciones emergentes. |
| icon | string | ID del activo para el ícono de la acción. |
| activeIcon | string | ID del activo para el ícono de la acción en estado "activo". Solo se puede utilizar en acciones principales, no en sub-acciones. |
| actions | table | Lista opcional de sub-acciones. Esto te permite crear submenús de varias otras acciones. |
| parent | Action | El padre de la acción; esto solo se aplica a una sub-acción y apunta a la acción que la contiene. |
| onActivated | function | Función de callback opcional que se ejecuta cuando un jugador activa una acción o sub-acción. Normalmente, si una acción contiene sub-acciones, solo las sub-acciones necesitarán que se defina un callback como medio de saber que el jugador activó la sub-acción y no simplemente "expansó" la acción principal. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activado")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "desactivado")
end)
Enums
SelfieMode.Action
SelfieMode viene con varias acciones. Puedes usar este enum con las funciones activateAction, deactivateAction y toggleAction.
| Nombre | Resumen |
|---|---|
| DepthOfField | Referencia a la acción Profundidad de Campo. |
| LockGaze | Referencia a la acción Bloquear Mirada. |
| HideOthers | Referencia a la acción Ocultar Otros. |
| Filter | Referencia a la acción Filtro. |
| Pose | Referencia a la acción Pose. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Activar la acción "Filtro"SelfieMode.activateAction(SelfieMode.Action.Filter)
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.
| Clave | Descripción | Predeterminado |
|---|---|---|
| disableCharacterMovement | Si es verdadero, evita que el personaje se mueva mientras el modo selfie está abierto. | false |
| depthOfFieldEffect | Instancia opcional personalizada de DepthOfFieldEffect que aparece cuando el jugador activa la acción de Profundidad de Campo. |
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
Un jugador generalmente abrirá el modo selfie con el botón "cámara" en el lado derecho de la pantalla, pero esta función te permite abrirlo a través del código. Al implementar un botón personalizado como se muestra a continuación, debes desactivar el botón predeterminado a través de setHudButtonEnabled. Esta función solo se puede llamar desde un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Eliminar el botón predeterminado
SelfieMode.setHudButtonEnabled(false)
-- Conectar el botón personalizado
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
closeSelfieMode
closeSelfieMode()
Un jugador generalmente cerrará el modo selfie con el botón ⊗ en la parte inferior de la pantalla, pero esta función te permite cerrarlo a través del código. Solo se puede llamar desde un LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.closeSelfieMode()
isSelfieModeOpen
isSelfieModeOpen(): boolean
Devuelve true si el modo selfie está abierto como resultado de la acción del jugador o a través de openSelfieMode. Esta función solo se puede llamar desde un LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
Establece si se muestra o no el botón predeterminado para ingresar al modo selfie. Útil al implementar openSelfieMode a través de un botón personalizado en la interfaz. Esta función solo se puede llamar desde un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Eliminar el botón predeterminado
SelfieMode.setHudButtonEnabled(false)
-- Conectar el botón personalizado
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
getAction
getAction(action: SelfieMode.Action): Action
Obtiene un tipo de Action a través de un enum de SelfieMode.Action.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
activateAction
activateAction(action: SelfieMode.Action)
Activa programáticamente una de las acciones predeterminadas. Esto es lo mismo que cuando un jugador activa la acción desde la barra de acciones. Solo se puede llamar desde un LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Activar la acción "Filtro"SelfieMode.activateAction(SelfieMode.Action.Filter)
deactivateAction
deactivateAction(action: SelfieMode.Action)
Desactiva programáticamente una de las acciones predeterminadas. Esto es lo mismo que cuando un jugador desactiva la acción desde la barra de acciones. Solo se puede llamar desde un LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Desactivar la acción "Filtro"SelfieMode.deactivateAction(SelfieMode.Action.Filter)
toggleAction
toggleAction(action: SelfieMode.Action): boolean
Alterna una acción encendida si está apagada, o la apaga si está encendida. Esto es lo mismo que cuando un jugador hace clic en la acción desde la barra de acciones. Devuelve el nuevo estado "¿está activado?" como un booleano. Solo se puede llamar desde un 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("Activado", lockGazeAction.name)elseprint("Desactivado", lockGazeAction.name)end
setTheme
setTheme(theme: table)
Configura el tema del modo selfie, incluyendo tamaño de texto, fuente, colores de botones/descripciones emergentes y más. Esta función solo se puede llamar desde un LocalScript.
| Clave | Descripción | Predeterminado |
|---|---|---|
| textSize | Tamaño de todo el texto. | 16 |
| font | Fuente utilizada en toda la IU (Enum.Font). | GothamMedium |
| padding | Relleno principal utilizado para organizar los elementos de la IU (UDim). | (0, 12) |
| paddingSmall | Relleno más pequeño usado para aplicar márgenes sutiles entre elementos (UDim). | (0, 6) |
| paddingScreen | Relleno utilizado alrededor de los bordes de la pantalla para dar algo de espacio al modo selfie (UDim). | (0, 24) |
| backgroundColor | Color de fondo utilizado para la barra que muestra las acciones (Color3). | [0, 0, 0] |
| scrollBarColor | Color de la barra de desplazamiento utilizada en los elementos de ScrollingFrame del 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)
Establece si el modo selfie está habilitado o no. Cuando se deshabilita, toda la IU del módulo se elimina y todos los eventos se desconectan. Esta función solo se puede llamar desde un LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setEnabled(false)
Eventos
selfieModeOpened
Se activa cuando el jugador abre el modo selfie o cuando se llama a openSelfieMode. Este evento solo se puede conectar en un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeOpened:Connect(function()
print("Modo selfie abierto")
end)
selfieModeClosed
Se activa cuando el jugador cierra el modo selfie o cuando se llama a closeSelfieMode. Este evento solo se puede conectar en un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeClosed:Connect(function()
print("Modo selfie cerrado")
end)
actionActivated
| Parámetros | |
|---|---|
| action: SelfieMode.Action | La Acción activada. |
Se activa cuando se activa una acción; esta puede ser una de las acciones primarias como Profundidad de Campo, Bloquear Mirada o Ocultar Otros; alternativamente puede ser una sub-acción como un filtro o una pose. La función conectada recibe la Acción activada. Este evento solo se puede conectar en un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activado")
end)
actionDeactivated
| Parámetros | |
|---|---|
| action: SelfieMode.Action | La Acción desactivada. |
Se activa cuando una acción primaria o sub-acción se desactiva. La función conectada recibe la Acción desactivada. Este evento solo se puede conectar en un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "desactivado")
end)
filterChanged
Se activa cuando se aplica o se elimina un filtro. La función conectada recibe el nombre del nuevo filtro y el nombre del filtro antiguo. Este evento solo se puede conectar en un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Filtro cambiado de", oldFilter, "a", newFilter)
end)
poseChanged
Se activa cuando se aplica o se elimina una pose. La función conectada recibe el nombre de la nueva pose y el nombre de la pose antigua. Este evento solo se puede conectar en un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("Pose cambiada de", oldPose, "a", newPose)
end)