I giocatori già scattano screenshot per commemorare momenti divertenti nei giochi. Il modulo SelfieMode per sviluppatori consente ai giocatori di catturare un ricordo più pulito di quel momento senza la finestra della chat o l'elenco dei giocatori, supportando anche effetti di filtro, nascondendo altri personaggi e posando.
Utilizzo del Modulo
Installazione
Per utilizzare il modulo SelfieMode in un gioco:
Dal menu Finestra di Studio o dalla barra degli strumenti della scheda Home, apri il Toolbox e seleziona la scheda Creator Store.

Assicurati che sia selezionato l'ordinamento Modelli, quindi fai clic sul pulsante Vedi Tutti per Categorie.

Individua e fai clic sulla tessera Pacchetti.
Individua il modulo Modalità Selfie e fai clic su di esso, oppure trascinalo nella vista 3D.

Nella finestra Esplora, sposta l'intero pacchetto SelfieMode in ReplicatedStorage. Una volta avviato il gioco, il modulo inizierà a funzionare.
Configurazione
Il modulo è preconfigurato per funzionare nella maggior parte dei casi d'uso, ma puoi facilmente personalizzarlo tramite la funzione configure.
In StarterPlayerScripts, crea un nuovo LocalScript e rinominalo in ConfigureSelfieMode.
Incolla il seguente codice nel nuovo script.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Movimento del Personaggio
Potrebbe essere vantaggioso impedire al personaggio del giocatore di muoversi mentre è in modalità selfie. Puoi ottenere questo impostando disableCharacterMovement su true in una chiamata configure.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.configure({
disableCharacterMovement = true
})Azioni della Modalità Selfie
SelfieMode include le seguenti azioni, ognuna delle quali puoi utilizzare con le funzioni activateAction, deactivateAction e toggleAction, o rilevare tramite gli eventi actionActivated e actionDeactivated.
Profondità di Campo
Per impostazione predefinita, SelfieMode mostra un effetto generico di profondità di campo (sfocatura sottile dello sfondo) quando un giocatore attiva l'azione.

Per cambiare l'effetto di profondità di campo predefinito, imposta depthOfFieldEffect sulla tua istanza DepthOfFieldEffect in una chiamata configure.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local customDepthOfField = Instance.new("DepthOfFieldEffect")
customDepthOfField.NearIntensity = 0
customDepthOfField.FarIntensity = 1
customDepthOfField.FocusDistance = 5
customDepthOfField.InFocusRadius = 5
SelfieMode.configure({
depthOfFieldEffect = customDepthOfField
})Blocca Sguardo
L'attivazione del toggle Blocca Sguardo fa sì che il personaggio del giocatore guardi la fotocamera mentre si prepara la posa selfie, all'interno di un intervallo realistico di quanto può ruotare il collo.
Nascondi Altri
Per impostazione predefinita, altri personaggi sono visibili insieme al personaggio del giocatore. I giocatori possono ottenere uno scatto perfetto da soli facendo clic sul pulsante Nascondi Altri. Quando attivato, gli altri personaggi svaniscono dalla vista e rimangono invisibili fino a quando l'azione non viene disattivata.
Filtro
L'azione Filtro consente al giocatore di applicare un filtro preimpostato tra le opzioni Pop, Soft, Antique, Cute, Dramatic e Monochrome.

Posa
L'azione Posa consente al giocatore di selezionare una posa preimpostata tra le opzioni Cheer, Clapping, Dolphin, Flossing, Guitar, Jump Wave, Louder, Top Rock, Twirl e Wave.

Riferimento API
Tipi
Azione
Ogni azione è rappresentata da un dizionario con le seguenti coppie chiave-valore:
| Chiave | Tipo | Descrizione |
|---|---|---|
| name | string | Nome dell'azione, mostrato per primo nei tooltip. |
| description | string | Descrizione dell'azione, mostrata dopo name nei tooltip. |
| icon | string | ID dell'asset per l'icona dell'azione. |
| activeIcon | string | ID dell'asset per l'icona dell'azione nello stato "attivo". Può essere utilizzato solo su azioni principali, non su sotto-azioni. |
| actions | table | Elenco facoltativo di sotto-azioni. Questo consente di creare sottomenu di varie altre azioni. |
| parent | Azione | Il genitore dell'azione; questo si applica solo a una sotto-azione e punta all'azione che la contiene. |
| onActivated | function | Funzione di callback facoltativa che viene eseguita quando un giocatore attiva un'azione o una sotto-azione. Tipicamente, se un'azione contiene sotto-azioni, solo le sotto-azioni necessiteranno di una callback definita come mezzo per sapere che il giocatore ha attivato la sotto-azione e non ha semplicemente "espanso" l'azione principale. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "attivata")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "disattivata")
end)Enum
SelfieMode.Action
SelfieMode include diverse azioni. Puoi utilizzare questo enum con le funzioni activateAction, deactivateAction e toggleAction.
| Nome | Riepilogo |
|---|---|
| DepthOfField | Riferimento all'azione Profondità di Campo. |
| LockGaze | Riferimento all'azione Blocca Sguardo. |
| HideOthers | Riferimento all'azione Nascondi Altri. |
| Filter | Riferimento all'azione Filtro. |
| Pose | Riferimento all'azione Posa. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
-- Attiva l'azione "Filtro"
SelfieMode.activateAction(SelfieMode.Action.Filter)Funzioni
configure
configure(config: table)
Sovrascrive le opzioni di configurazione predefinite tramite le seguenti chiavi/valori nella tabella config. Questa funzione può essere chiamata solo da un LocalScript.
| Chiave | Descrizione | Predefinito |
|---|---|---|
| disableCharacterMovement | Se true, impedisce al personaggio di muoversi mentre la modalità selfie è aperta. | false |
| depthOfFieldEffect | Opzionale istanza personalizzata DepthOfFieldEffect che appare quando il giocatore attiva l'azione Profondità di Campo. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.configure({
disableCharacterMovement = true
})openSelfieMode
openSelfieMode()
Un giocatore aprirà tipicamente la modalità selfie con il pulsante "camera" sul lato destro dello schermo, ma questa funzione ti consente di aprirla tramite codice. Quando implementi un pulsante personalizzato come mostrato di seguito, dovresti disabilitare il pulsante predefinito tramite setHudButtonEnabled. Questa funzione può essere chiamata solo da un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Rimuovi il pulsante predefinito
SelfieMode.setHudButtonEnabled(false)
-- Collega il pulsante personalizzato
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)closeSelfieMode
closeSelfieMode()
Un giocatore chiuderà tipicamente la modalità selfie con il pulsante ⊗ in fondo allo schermo, ma questa funzione ti consente di chiuderla tramite codice. Può essere chiamata solo da un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.closeSelfieMode()isSelfieModeOpen
isSelfieModeOpen(): boolean
Restituisce true se la modalità selfie è aperta a seguito di un'azione del giocatore o tramite openSelfieMode. Questa funzione può essere chiamata solo da un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.openSelfieMode()
print(SelfieMode.isSelfieModeOpen())setHudButtonEnabled
setHudButtonEnabled()
Imposta se il pulsante predefinito per entrare in modalità selfie è mostrato. Utile quando si implementa openSelfieMode tramite un pulsante UI personalizzato. Questa funzione può essere chiamata solo da un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Rimuovi il pulsante predefinito
SelfieMode.setHudButtonEnabled(false)
-- Collega il pulsante personalizzato
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)getAction
getAction(action: SelfieMode.Action): Action
Ottiene un tipo Action tramite un enum SelfieMode.Action.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)activateAction
activateAction(action: SelfieMode.Action)
Attiva programmaticamente una delle azioni predefinite. Questo è lo stesso di quando un giocatore attiva l'azione dalla barra delle azioni. Può essere chiamata solo da un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
-- Attiva l'azione "Filtro"
SelfieMode.activateAction(SelfieMode.Action.Filter)deactivateAction
deactivateAction(action: SelfieMode.Action)
Disattiva programmaticamente una delle azioni predefinite. Questo è lo stesso di quando un giocatore disattiva l'azione dalla barra delle azioni. Può essere chiamata solo da un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
-- Disattiva l'azione "Filtro"
SelfieMode.deactivateAction(SelfieMode.Action.Filter)toggleAction
toggleAction(action: SelfieMode.Action): boolean
Attiva un'azione action se è spenta, o la disattiva se è accesa. Questo è lo stesso di quando un giocatore fa clic sull'azione dalla barra delle azioni. Restituisce il nuovo stato "è attivato su" come booleano. Può essere chiamata solo da un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
local isEnabled = SelfieMode.toggleAction(lockGazeAction)
if isEnabled then
print("Attivata", lockGazeAction.name)
else
print("Disattivata", lockGazeAction.name)
endsetTheme
setTheme(theme: table)
Configura il tema della modalità selfie, inclusi dimensione del testo, font, colori dei pulsanti/tooltips e altro. Questa funzione può essere chiamata solo da un LocalScript.
| Chiave | Descrizione | Predefinito |
|---|---|---|
| textSize | Dimensione di tutto il testo. | 16 |
| font | Font utilizzato in tutta l'interfaccia utente (Enum.Font). | GothamMedium |
| padding | Padding principale utilizzato per disporre gli elementi dell'interfaccia utente (UDim). | (0, 12) |
| paddingSmall | Padding più piccolo utilizzato per applicare margini sottili tra gli elementi (UDim). | (0, 6) |
| paddingScreen | Padding utilizzato attorno ai bordi dello schermo per dare alla modalità selfie un po' di respiro (UDim). | (0, 24) |
| backgroundColor | Colore di sfondo utilizzato per la barra che visualizza le azioni (Color3). | [0, 0, 0] |
| scrollBarColor | Colore della barra di scorrimento utilizzata negli elementi ScrollingFrame del modulo (Color3). | [255, 255, 255] |
local 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)
Imposta se la modalità selfie è abilitata o meno. Quando disabilitata, tutta l'interfaccia utente per il modulo viene rimossa e tutti gli eventi vengono disconnessi. Questa funzione può essere chiamata solo da un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.setEnabled(false)Eventi
selfieModeOpened
Si attiva quando il giocatore apre la modalità selfie o quando viene chiamato openSelfieMode. Questo evento può essere connesso solo in un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeOpened:Connect(function()
print("Modalità selfie aperta")
end)selfieModeClosed
Si attiva quando il giocatore chiude la modalità selfie o quando viene chiamato closeSelfieMode. Questo evento può essere connesso solo in un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeClosed:Connect(function()
print("Modalità selfie chiusa")
end)actionActivated
| Parametri | |
|---|---|
| action: SelfieMode.Action | L'azione Action attivata. |
Si attiva quando un'azione viene attivata; questa può essere una delle azioni principali come Profondità di Campo, Blocca Sguardo o Nascondi Altri; alternativamente può essere una sotto-azione come un filtro o una posa. La funzione connessa riceve l'Action attivata. Questo evento può essere connesso solo in un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "attivata")
end)actionDeactivated
| Parametri | |
|---|---|
| action: SelfieMode.Action | L'azione Action disattivata. |
Si attiva quando un'azione principale o una sotto-azione viene disattivata. La funzione connessa riceve l'Action disattivata. Questo evento può essere connesso solo in un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "disattivata")
end)filterChanged
Si attiva quando un filtro viene applicato o rimosso. La funzione connessa riceve il nome del nuovo filtro e il nome del filtro precedente. Questo evento può essere connesso solo in un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Filtro cambiato da", oldFilter, "a", newFilter)
end)poseChanged
Si attiva quando una posa viene applicata o rimossa. La funzione connessa riceve il nome della nuova posa e il nome della posa precedente. Questo evento può essere connesso solo in un LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("Posa cambiata da", oldPose, "a", newPose)
end)