Modalità selfie

I giocatori scattano già screenshot per commemorare i momenti divertenti delle loro esperienze. Il modulo SelfieMode dello sviluppatore consente ai giocatori di acquisire una memoria più pulita di quel momento senza la finestra di chat o l'elenco dei giocatori, supportando anche gli effetti del filtro, nascondendo altri personaggi, e posa.

Utilizzo del modulo

Installazione

Per utilizzare la ModalitàSelfie in un'esperienza:

  1. Dalla scheda Visualizza, aprire il Pannello degli strumenti e selezionare la scheda Marketplace.

    attiva il pulsante degli Strumenti in Studio
  2. Assicurarsi che la selezione dei modelli sia selezionata, quindi fare clic sul pulsante Vedi tutto per le Categorie.

  3. Individuare e fare clic sulla piastrella DEV MODULES.

  4. Individuare il modulo Modalità Selfie e fare clic su di esso, oppure trascinarlo e rilasciarlo nella visualizzazione 3D.

  5. Nella finestra Explorer, spostare l'intero modello ModalitàSelfie in ServerScriptService. Dopo aver avviato l'esperienza, il modulo si distribuirà a vari servizi e inizierà a funzionare.

Configurazione

Il modulo è preconfigurato per funzionare nella maggior parte dei casi di utilizzo, ma puoi personalizzarlo facilmente attraverso la funzione di configurazione.

  1. In StarterPlayerScripts, crea un nuovo LocalScript e rinominalo in ConfigureSelfieMode.

  2. Incolla il seguente codice nel nuovo script.

    LocalScript - ConfigureSelfieMode

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
    SelfieMode.configure({
    disableCharacterMovement = true
    })

Movimento del personaggio

Potrebbe essere vantaggioso evitare che il personaggio del giocatore si muova quando la modalità selfie è attiva. Puoi raggiungere questo obiettivo impostando disableCharacterMovement su vero in una chiamata di configurazione.

LocalScript - ConfigureSelfieMode

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.configure({
disableCharacterMovement = true
})

Azioni modalità selfie

La ModalitàSelfie viene fornita con le seguenti azioni, ciascuna che puoi utilizzare con le funzioni activateAction, deactivateAction e toggleAction o rilevare attraverso gli eventi actionActivated e actionDeactivated.

Profondità di campo

Per impostazione predefinita, quando il giocatore attiva l'azione, la ModalitàSelfie mostra un effetto di profondità di campo generico (sottile sfocatura dello sfondo).

Off
On

Per modificare la profondità predefinita dell'effetto di campo, imposta depthOfFieldEffect nella tua DepthOfFieldEffectrichiesta in una chiamata di configurazione.

LocalScript - ConfigureSelfieMode

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local customDepthOfField = Instance.new("DepthOfFieldEffect")
customDepthOfField.NearIntensity = 0
customDepthOfField.FarIntensity = 1
customDepthOfField.FocusDistance = 5
customDepthOfField.InFocusRadius = 5
SelfieMode.configure({
depthOfFieldEffect = customDepthOfField
})

Bloccare lo sguardo

La funzione di Blocco dello sguardo fa sì che il personaggio del giocatore guardi la fotocamera mentre si mette in posa per un selfie, con una rotazione realistica del collo.

Nascondi gli altri

Per impostazione predefinita, gli altri personaggi sono visibili simultaneamente rispetto al personaggio del giocatore. I giocatori possono ottenere un solo scatto perfetto facendo clic sul pulsante Nascondi gli altri. Quando attivato, gli altri personaggi scompaiono dalla visualizzazione e rimangono invisibili fino alla disattivazione dell'azione.

Filtro

L'azione Filtro consente al giocatore di applicare un filtro preimpostato dalle opzioni Pop, Soave, Antico, Carino, Drammatico e Monocromatico.

Soave
Drammatico
Monocromatico

Posa

L'azione di Posa consente al giocatore di selezionare una posa preimpostata tra le opzioni Esulta, Applaudi, Delfino, Filo interdentale, Chitarra, Ola, Rumore, Top Rock, Vortice e Onda.

Filo interdentale
Rumore
Vortice

Riferimento API

Tipi

Azione

Ciascuna azione è rappresentata da un dizionario con le seguenti coppie di valore chiave:

ChiaveTipoDescrizione
nomestringaNome dell'azione, visualizzato per primo tra i suggerimenti.
descriptionstringaDescrizione dell'azione, indicata dopo nome tra i suggerimenti.
iconastringaID risorsa per l'icona dell'azione.
activeIconstringaID risorsa per l'icona dell'azione in stato "attivo". Utilizzabile solo per le azioni "madre", non per le sotto-azioni.
azionitabellaElenco facoltativo di sotto-azioni. Ti consente di creare sottomenù di varie altre azioni.
parentAzione"Madre" dell'azione; applicabile solo a una sotto-azione e ai punti di azione in essa contenuti.
onActivatedfunzioneFunzione di richiamo facoltativa che si esegue quando un giocatore attiva un'azione o una sotto-azione. In genere, se un'azione contiene delle sotto-azioni, solo le sotto-azioni avranno bisogno di un richiamo definito come mezzo per sapere che il giocatore ha attivato la sotto-azione e non ha semplicemente "espanso" l'azione madre.
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)

Enums

Azione.ModalitàSelfie

La ModalitàSelfie viene fornita con diverse azioni. Puoi utilizzare questo enum con le funzioni deactivateAction, activateAction e toggleAction.

NomeSommario
DepthOfFieldRiferimento all'](#depth-of-field)azione della [Profondità di Campo.
LockGaze`Riferimento all'](#lock-gaze)azione di [Blocco dello sguardo.
NascondiAltriRiferimento all'](#hide-others)azione [Nascondi gli altri.
FilterRiferimento all'](#filter)azione [Filtro.
PosaRiferimento all'](#pose)azione [Posa.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
-- Activate "Filter" action
SelfieMode.activateAction(SelfieMode.Action.Filter)

Funzioni

Configurare

configure(config:table)

Sovrascrive la configurazione predefinita attraverso le seguenti chiavi/valori nella configtabella. Questa funzione può essere chiamata solo da un LocalScript.

ChiaveDescrizionePredefinito
disableCharacterMovementSe vero, impedisce al personaggio di muoversi quando la modalità selfie è aperta.falso
depthOfFieldEffectRichiesta DepthOfFieldEffectpersonalizzata facoltativa che appare quando il giocatore attiva l'](#depth-of-field)azione [Profondità di Campo.
LocalScript - ConfigureSelfieMode

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.configure({
disableCharacterMovement = true
})

apriModalitàSelfie

apriModalitàSelfie()

Il giocatore in genere aprirà la modalità selfie con il pulsante della fotocamera, posizionato sul lato destro dello schermo, ma questa funzione consente di aprirlo tramite codice. Quando si implementa un pulsante personalizzato, come mostrato di seguito, si disattivare il pulsante predefinito tramite setHudButtonEnabled. Questa funzione può essere chiamata solo da 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)

chiudiModalitàSelfie

chiudiModalitàSelfie()

In genere, il giocatore chiuderà la modalità selfie con il pulsante &CircleTimes, posizionato nella parte inferiore dello schermo, ma questa funzione consente di disattivarla tramite codice. Può essere chiamato solo da un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.closeSelfieMode()

isSelfieModeOpen

isSelfieModeOpen():booleano

Restituisce true se la modalità selfie è aperta come conseguenza di un'azione di gioco o tramite openSelfieMode. Questa funzione può essere chiamata solo da un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.openSelfieMode()
print(SelfieMode.isSelfieModeOpen())

setHudButton Abilitato

setHudButtonEnabled()

Imposta se il pulsante predefinito per entrare in modalità selfie sia visibile o meno. Utile quando si implementa openSelfieMode tramite un pulsante UI personalizzato. Questa funzione può essere chiamata solo da 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(azione:SelfieMode.Action):Azione

Consente di ottenere un tipo di Azione attraverso un enum SelfieMode.Action.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)

activateAction

activateAction(azione:SelfieMode.Action)

Attiva programmaticamente una delle azioni predefinite. Avviene la stessa cosa quando un giocatore attiva l'azione dalla barra delle azioni. Può essere chiamato solo da un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
-- Activate "Filter" action
SelfieMode.activateAction(SelfieMode.Action.Filter)

disattivareAzione

deactivateAction(azione:SelfieMode.Action)

Disattiva programmaticamente una delle azioni predefinite. Avviene la stessa cosa quando il giocatore disattiva l'azione dalla barra delle azioni. Può essere chiamato solo da un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
-- Deactivate "Filter" action
SelfieMode.deactivateAction(SelfieMode.Action.Filter)

toggleAzione

toggleAction(azione:SelfieMode.Action):booleano

Imposta un'azione su on se è disattivata, oppure la disattiva se è impostata su on. Avviene la stessa cosa quando il giocatore fa clic sull'azione dalla barra delle azioni. Restituisce il nuovo stato "impostato" come booleano. Può essere chiamato solo da 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 then
print("Activated", lockGazeAction.name)
else
print("Deactivated", lockGazeAction.name)
end

setTheme

setTheme(tema:table)

Configura il tema della modalità selfie, tra cui la dimensione del testo, il font, i colori dei tasti/tooltip e molto altro ancora. Questa funzione può essere chiamata solo da un LocalScript.

Generale

ChiaveDescrizionePredefinito
textSizeDimensione di tutto il testo.16
carattereFont utilizzato in tutta la UI (Enum.Font).GothamMedium
paddingImbottitura principale utilizzato per gli elementi UI visualizzabili (UDim).(0, 12)
paddingSmallImbottitura minore, utilizzata per applicare dei sottili margini tra gli UDimelementi.(0, 6)
paddingScreenImbottitura utilizzata intorno ai bordi dello schermo per dare alla modalità selfie un migliore aspetto (UDim).(0, 24)
backgroundColorColore dello sfondo utilizzato per la barra che consente di visualizzare le azioni (Color3).[0, 0, 0]
scrollBarColorColore della barra di scorrimento utilizzata negli ScrollingFrameelementi del modulo (Color3).[255, 255, 255]

Pulsanti e suggerimenti

ChiaveDescrizionePredefinito
openButtonBackgroundColorColore dello sfondo del pulsante HUD posizionato sul lato destro dello schermo, utilizzato per aprire la modalità selfie (Color3).[255, 255, 255]
openButtonIconColorColore dell'icona del pulsante HUD dell'Color3icona della fotocamera.[0, 0, 0]
closeButtonBackgroundColorColore dello sfondo del pulsante di chiusura (Color3).[0, 0, 0]
closeButtonIconColorColore dell'icona del pulsante "chiudi" (Color3).[255, 255, 255]
actionButtonBackgroundColorColore dello sfondo dei vari pulsanti di azione utilizzati per l'impostazione delle azioni (Color3).[255, 255, 255]
actionButtonIconColorColore dell'icona per i vari pulsanti dell'azione (Color3).[0, 0, 0]
tooltipBackgroundColorColore dello sfondo per suggerimenti e notifiche (Color3).[0, 0, 0]
tooltipNameColorColore del testo dei nomi dei suggerimenti (Color3). In uso anche come colore del testo per le notifiche.[255, 255, 255]
tooltipDescriptionColorColore delle descrizioni dei suggerimenti, leggermente sbiadito per mettere maggiormente in evidenza i nomi dei suggerimenti (Color3). Non utilizzato per le notifiche.[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:booleano)

Imposta se la modalità selfie sia attiva o meno. Se disattivata, l'intera UI del modulo viene rimossa e tutti gli eventi sono disconnessi. Questa funzione può essere chiamata solo da un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.setEnabled(false)

Eventi

selfieModeAperto

selfieModeAperto():RBXScriptSignal

Si accende quando il giocatore apre la modalità selfie o quando si richiama openSelfieMode. Questo evento può essere collegato solo in un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeOpened:Connect(function()
print("Selfie mode open")
end)

selfieModeChiuso

selfieModeClosed():RBXScriptSignal

Si accende quando il giocatore chiude la modalità selfie o quando si richiama closeSelfieMode. Questo evento può essere collegato solo in un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeClosed:Connect(function()
print("Selfie mode closed")
end)

azioneAttivato

actionActivated(azione:SelfieMode.Action):RBXScriptSignal

Si accende quando l'azione è attivata; può trattarsi di una delle azioni principali, come ad esempio Profondità del Campo, Blocco dello sguardo o Nascondi gli altri; in alternativa può essere una sotto-azione come un filtro o una posa. La funzione collegata riceve l'Azione attivata. Questo evento può essere collegato solo in un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)

azioneDeactivated

actionDeactivated(azione:SelfieMode.Action):RBXScriptSignal

Si accende quando un'azione primaria o una sotto-azione vengono disattivate. La funzione collegata riceve l'Azione disattivata. Questo evento può essere collegato solo in un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)

filtroCambiato

filterChanged(nuovoFilter:string, oldFilter:string):RBXScriptSignal

Si accende quando un filtro viene applicato o rimosso. La funzione collegata riceve il nuovo nome di filtro e il vecchio nome di filtro. Questo evento può essere collegato solo in 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)

posaCambiata

posaCambiata(nuovaPosa:string, oldPose:string):RBXScriptSignal

Si accende quando una posa viene applicata o rimossa. La funzione collegata riceve il nuovo nome della posa e il vecchio nome della posa. Questo evento può essere collegato solo in 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)