Los jugadores ya hacen capturas de pantalla para conmemorar momentos divertidos en las experiencias. El módulo de desarrolladores SelfieMode permite a los jugadores capturar un recuerdo más limpio de ese momento sin la ventana de chat ni la lista de jugadores, además de admitir efectos de filtro, ocultar a otros personajes y posar.
Uso del módulo
Instalación
Sigue estos pasos para usar el módulo SelfieMode en una experiencia:
En la pestaña Ver, abre la Caja de herramientas y selecciona la pestaña Mercado.
Asegúrate de que la clasificación de Modelos esté seleccionada y, a continuación, haz clic en el botón Ver todo para las Categorías.
Busca y haz clic en el mosaico MÓDULOS DE DESARROLLADORES.
Busca 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 todo el modelo de Modo selfie a ServerScriptService. Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a ejecutarse.
Configuración
El módulo está preconfigurado para funcionar en la mayoría de los casos de uso, pero puedes personalizarlo fácilmente mediante la función de configuración.
En StarterPlayerScripts, crea un nuevo LocalScript y cámbiale el nombre a ConfigureSelfieMode.
Pega el siguiente código en el script nuevo.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game: GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
Movimiento del personaje
Puede ser ventajoso evitar que el personaje del jugador se mueva mientras está en el modo selfie. Puedes lograr esto al establecer disableCharacterMovement en verdadero en una llamada de configuración.
LocalScript - ConfigureSelfieMode
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
Acciones del modo selfie
SelfieMode incluye las siguientes acciones, cada una de las cuales puedes usar con las funciones activateAction, desactivateAction y toggleAction, o detectar a través de los eventos actionActivated y actionDeactivated.
Profundidad de campo
De forma predeterminada, 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 en tu propia instancia DepthOfFieldEffect en una llamada de configuración.
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 = 5SelfieMode.configure({depthOfFieldEffect = customDepthOfField})
Bloquear la mirada
El botón de alternancia de Bloquear mirada hace que el personaje del jugador vea a la cámara mientras se configura la pose de una selfie, dentro de un rango realista de giro del cuello.
Ocultar a otros
De forma predeterminada, los otros personajes son visibles junto al personaje del jugador. Los jugadores pueden obtener un tiro perfecto en solitario al hacer clic en el botón Ocultar a otros. Cuando se activa, los otros personajes se desvanecen y permanecen invisibles hasta que la acción se desactiva.
Filtro
La acción Filtrar permite al jugador aplicar un filtro preestablecido de las opciones Pop, Suave, Antiguo, Lindo, Dramático y Monocromo.
Pose
La acción Posar permite al jugador seleccionar una pose preestablecida entre las opciones Animar, Aplaudir, Delfín, Hilo dental, Guitarra, Saltar la ola, Ruido, Top Rock, Girar y Onda.
Referencia API
Tipos
Acción
Cada acción está representado por un diccionario con los siguientes pares clave-valor:
Clave | Tipo | Descripción |
---|---|---|
name | string | Nombre de la acción, que se muestra primero en los consejos sobre herramientas. |
description | string | Descripción de la acción, que se muestra después de nombre en los consejos sobre herramientas. |
icon | string | Identificación del recurso para el ícono de la acción. |
activeIcon | string | Identificación del recurso para el ícono de la acción en estado "activo". Solo se puede usar en las acciones principales, no en las subacciones. |
actions | table | Lista opcional de subacciones. Esto te permite crear submenús de otras acciones. |
parent | Acción | El padre de la acción; esto solo se aplica a una subacción y apunta a la acción que la contiene. |
onActivated | function | Función de devolución de llamada opcional que se ejecuta cuando un jugador activa una acción o subacción. Por lo general, si una acción contiene subacciones, solo las subacciones necesitarán una devolución de llamada definida como un medio para saber que el jugador activó la subacción y no simplemente "expandió" la acción principal. |
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)
Enumeraciones
SelfieMode.Action
SelfieMode viene con varias acciones. Puedes usar esta enumeración con las funciones activateAction, desactivateAction y toggleAction.
Nombre | Resumen |
---|---|
DepthOfField | Referencia a la acción de Profundidad de campo. |
LockGaze | Referencia a la acción Bloquear mirada. |
HideOthers | Referencia a la acción ](#hide-others)Ocultar a otros[. |
Filter | Referencia a la acción Filtrar. |
Pose | Referencia a la acción Posar. |
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- Activate "Filter" actionSelfieMode.activateAction(SelfieMode.Action.Filter)
Funciones
configure
configure(config:table)
Reemplaza las opciones de configuración predeterminadas a través de las siguientes claves o valores en la tabla config. A esta función solo se puede acceder desde un LocalScript.
Clave | Descripción | Predeterminado |
---|---|---|
disableCharacterMovement | Si es "true", evita que el personaje se mueva mientras el modo selfie está abierto. | false |
depthOfFieldEffect | La instancia personalizada DepthOfFieldEffect opcional que aparece cuando el jugador activa la acción Profundidad de campo. |
LocalScript - ConfigureSelfieMode
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
Por lo general, un jugador abre el modo selfie con el botón "cámara" de la parte derecha de la pantalla, pero esta función te permite abrirlo a través de 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. A esta función solo se puede acceder desde un 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()
Por lo general, un jugador cierra el modo selfie con el botón ⊗ en la parte inferior de la pantalla, pero esta función te permite cerrarlo a través de código. Solo se puede llamar desde un LocalScript.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("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. A esta función solo se puede acceder desde un LocalScript.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
Establece si se muestra el botón predeterminado para acceder al modo selfie. Es útil al implementar openSelfieMode a través de un botón de la interfaz de usuario personalizada. A esta función solo se puede acceder desde un 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
Obtiene un tipo Action a través de una enumeración 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)
Activa mediante programación una de las acciones predeterminadas. Esto es lo mismo que cuando un jugador activa la acción desde la barra de acción. Solo se puede llamar desde un LocalScript.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- Activate "Filter" actionSelfieMode.activateAction(SelfieMode.Action.Filter)
deactivateAction
deactivateAction(action:SelfieMode.Action)
Desactiva mediante programación una de las acciones predeterminadas. Es lo mismo que cuando un jugador desactiva la acción de la barra de acción. Solo se puede llamar desde un LocalScript.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- Deactivate "Filter" actionSelfieMode.deactivateAction(SelfieMode.Action.Filter)
toggleAction
toggleAction(action:SelfieMode.Action):boolean
Activa una acción si está desactivada o la desactiva si está activada. Esto es lo mismo que cuando un jugador hace clic en la acción desde la barra de acción. Devuelve el nuevo estado "está activado" como booleano. Solo se puede llamar desde un 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 el tema del modo selfie, incluido el tamaño del texto, la fuente, los colores del botón o la descripción de herramientas y más. A esta función solo se puede acceder desde un LocalScript.
General
Clave | Descripción | Predeterminado |
---|---|---|
textSize | Tamaño de todo el texto. | 16 |
font | Fuente utilizada en toda la interfaz de usuario (Enum.Font). | GothamMedium |
padding | Relleno principal que se usa para el diseño de los elementos de la interfaz de usuario (UDim). | (0, 12) |
paddingSmall | Relleno más pequeño que se usa para aplicar márgenes sutiles entre los elementos (UDim). | (0, 6) |
paddingScreen | Relleno que se usa alrededor de los bordes de la pantalla para darle espacio al modo selfie (UDim). | (0, 24) |
backgroundColor | Color de fondo que se usa para la barra que muestra las acciones (Color3). | [0, 0, 0] |
scrollBarColor | Color de la barra de desplazamiento que se usa en los elementos ScrollingFrame del módulo (Color3). | [255, 255, 255] |
Botones y consejos sobre herramientas
Clave | Descripción | Predeterminado |
---|---|---|
openButtonBackgroundColor | Color de fondo del botón de HUD de la parte derecha de la pantalla que se usa para abrir el modo selfie (Color3). | [255, 255, 255] |
openButtonIconColor | Color del ícono de la cámara del botón de HUD (Color3). | [0, 0, 0] |
closeButtonBackgroundColor | Color de fondo del botón "cerrar" (Color3). | [0, 0, 0] |
closeButtonIconColor | Color del ícono del botón "cerrar" (Color3). | [255, 255, 255] |
actionButtonBackgroundColor | Color de fondo de los distintos botones de acción utilizados para alternar acciones (Color3). | [255, 255, 255] |
actionButtonIconColor | Color del ícono para los distintos botones de acción (Color3). | [0, 0, 0] |
tooltipBackgroundColor | Color de fondo de los consejos sobre herramientas y las notificaciones (Color3). | [0, 0, 0] |
tooltipNameColor | Color del texto de los nombres de los consejos sobre herramientas (Color3). También se usa como color del texto para las notificaciones. | [255, 255, 255] |
tooltipDescriptionColor | Color de los consejos sobre herramientas, ligeramente difuminado para centrar la atención en los nombres de los consejos sobre herramientas (Color3). No se usa para las notificaciones. | [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)
Establece si el modo selfie está activado o no. Cuando se desactiva, se elimina toda la interfaz de usuario del módulo y se desconectan todos los eventos. A esta función solo se puede acceder desde un LocalScript.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.setEnabled(false)
Eventos
selfieModeOpened
selfieModeOpened():RBXScriptSignal
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:WaitForChild("SelfieMode"))
SelfieMode.selfieModeOpened:Connect(function()
print("Selfie mode open")
end)
selfieModeClosed
selfieModeClosed():RBXScriptSignal
Se activa cuando el jugador cierra el modo selfie o cuando se llama closeSelfieMode. Este evento solo se puede conectar en un 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
Se activa cuando se activa una acción; puede ser una de las acciones principales, como Profundidad de campo, Bloquear la mirada u Ocultar a otros; o puede ser una subacció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:WaitForChild("SelfieMode"))
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
actionDeactivated
actionDeactivated(action:SelfieMode.Action):RBXScriptSignal
Se activa cuando se desactiva una acción o subacción primaria. 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:WaitForChild("SelfieMode"))
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)
filterChanged
filterChanged(newFilter:string, oldFilter:string):RBXScriptSignal
Se activa cuando se aplica o se elimina un filtro. La función conectada recibe el nuevo nombre del 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:WaitForChild("SelfieMode"))
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Filter changed from", oldFilter, "to", newFilter)
end)
poseChanged
poseChanged(newPose:string, oldPose:string):RBXScriptSignal
Se activa cuando se aplica o se elimina una pose. La función conectada recibe el nuevo nombre de la pose y el antiguo nombre de la pose. Este evento solo se puede conectar en un 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)