Les joueurs effectuent déjà des captures d'écran pour immortaliser les moments forts de leurs expériences. Le module développeur SelfieMode permet aux joueurs de capturer un souvenir plus précis de ce moment sans fenêtre de discussion ni liste de joueurs, tout en prenant en charge les effets de filtre, le masquage d'autres personnages et la pose.
Utilisation du module
Installation
Pour utiliser le module SelfieMode dans une expérience :
Dans l'onglet Voir, ouvrez la Boîte à outils et sélectionnez l'onglet Marketplace.
Assurez-vous que le filtre Modèles est sélectionné, puis cliquez sur le bouton Voir tout pour afficher les catégories.
Localisez et cliquez sur la vignette MODULES DEV.
Localisez le module Mode Selfie et cliquez dessus, ou faites-le glisser dans la visualisation 3D.
Dans la fenêtre Explorateur, déplacez l'intégralité du SelfieMode dans ServerScriptService. Lors de l'exécution de l'expérience, le module se distribuera lui-même vers divers services et commencera à s'exécuter.
Paramétrage
Le module est préconfiguré pour fonctionner dans la plupart des cas d'utilisation, mais vous pouvez facilement le personnaliser grâce à sa fonction de configuration.
Dans StarterPlayerScripts, créez un nouveau LocalScript et renommez-le ConfigureSelfieMode.
Collez le code suivant dans le nouveau script.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
Mouvement du personnage
La possibilité d'empêcher le personnage du joueur de se déplacer en mode selfie peut s'avérer avantageuse. Vous pouvez y parvenir en attribuant la valeur vrai à l'option disableCharacterMovement dans un appel de configuration.
LocalScript - ConfigureSelfieMode
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
Actions du Mode Selfie
SelfieMode propose les actions suivantes, chacune pouvant être utilisée avec les fonctions activateAction, deactivateAction et toggleAction, ou détectée via les événements actionActivated et actionDeactivated.
Profondeur de champ
Par défaut, SelfieMode affiche un effet générique de profondeur de champ (flou subtil de l'arrière-plan) lorsqu'un joueur active ou désactive l'action.
Pour modifier l'effet de profondeur de champ par défaut, définissez depthOfFieldEffect à votre propre instance DepthOfFieldEffect dans un appel de configuration.
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})
Verrouiller le regard
L'option Verrouiller le regard oblige le personnage du joueur à regarder l'appareil photo lorsqu'il paramètre la pose pour le selfie, dans les limites réalistes de l'angle de rotation de son cou.
Masquer les autres
Les autres personnages sont visibles à côté du personnage du joueur par défaut. Les joueurs peuvent obtenir un cliché parfait en solo en cliquant sur le bouton Masquer les autres. Lorsqu'elle est activée, les autres personnages disparaissent et restent invisibles jusqu'à ce que l'action soit désactivée.
Filtre
L'action Filtre permet au lecteur d'appliquer un filtre prédéfini parmi les options Pop, Doux, Ancien, Mignon, Dramatique et Monochrome.
Pose
L'action Pose permet au joueur de sélectionner une pose prédéfinie parmi les options suivantes : Acclamer, Applaudir, Dauphin, Prendre la pose, Guitare, Sauter de vague à vague, Plus fort, Top Rock, Tournoiement et Vague.
Référence API
Types
Action
Chaque action est représentée par un dictionnaire contenant les paires clé-valeur suivantes :
Clé | Type | Description |
---|---|---|
nom | chaîne | Nom de l'action, affiché en premier dans les infobulles. |
description | chaîne | Description de l'action, affichée après nom dans les infobulles. |
icône | chaîne | ID de l'objet pour l'icône de l'action. |
activeIcon | chaîne | ID de l'objet pour l'icône de l'action dont le statut est « actif ». Peut uniquement être utilisé pour les actions parentes, et non pour les sous-actions. |
actions | tableau | Liste facultative des sous-actions. Cela vous permet de créer des sous-menus pour diverses autres actions. |
parent | Action | Le parent de l'action ; ceci s'applique uniquement à une sous-action et pointe vers l'action qui la contient. |
onActivated | fonction | Fonction de rappel facultative qui s'exécute lorsqu'un joueur active une action ou une sous-action. Généralement, si une action contient des sous-actions, seules ces dernières auront besoin d'un rappel défini pour savoir que le joueur a activé la sous-action et qu'il n'a pas simplement « étendu » l'action parente. |
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
SelfieMode.Action
SelfieMode propose plusieurs actions. Vous pouvez utiliser cette enum avec les fonctions activateAction, deactivateAction et toggleAction.
Nom | Résumé |
---|---|
DepthOfField | Référence à l'action Profondeur de champ. |
LockGaze | Référence à l'action Verrouiller le regard. |
HideOthers | Référence à l'action Masquer les autres. |
Filtre | Référence à l'action Filtre. |
Pose | Référence à l'action Pose. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- Activate "Filter" actionSelfieMode.activateAction(SelfieMode.Action.Filter)
Fonctions
configurer
configurer(config:table)
Remplace les options de configuration par défaut par le biais des clés/valeurs suivantes dans le tableau config. Cette fonction peut uniquement être appelée à partir d'un LocalScript.
Clé | Description | Par défaut |
---|---|---|
disableCharacterMovement | Si vrai, empêche le personnage de bouger lorsque le mode selfie est ouvert. | faux |
depthOfFieldEffect | Instance personnalisée facultative de DepthOfFieldEffect qui apparaît lorsque le joueur active l'action Profondeur de champ. |
LocalScript - ConfigureSelfieMode
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
Un joueur ouvre généralement le mode selfie à l'aide du bouton « caméra » situé sur le côté droit de l'écran, cette fonction vous permet de l'ouvrir à l'aide d'un code. Lorsque vous implémentez un bouton personnalisé comme indiqué ci-dessous, vous devez désactiver le bouton par défaut à l'aide de setHudButtonEnabled. Cette fonction peut uniquement être appelée à partir d'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()
Un joueur ferme généralement le mode selfie avec le bouton ⊗ en bas de l'écran, cette fonction vous permet de le fermer par le biais d'un code. Peut uniquement être appelé à partir d'un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.closeSelfieMode()
isSelfieModeOpen
isSelfieModeOpen() :boolean
Renvoie true si le mode selfie est ouvert suite à une action du joueur ou via openSelfieMode. Cette fonction peut uniquement être appelée à partir d'un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
Définit si le bouton par défaut pour entrer en mode selfie est affiché. Utile lors de la mise en œuvre du openSelfieMode via un bouton UI personnalisé. Cette fonction peut uniquement être appelée à partir d'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
Obtient un type d'Action via une 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)
Active de manière programmée l'une des actions par défaut. Cela correspond à l'activation de l'action par le joueur à partir de la barre d'action. Peut uniquement être appelé à partir d'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)
Désactive de manière programmée l'une des actions par défaut. Cela correspond à la désactivation de l'action par le joueur à partir de la barre d'action. Peut uniquement être appelé à partir d'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
Active une action si elle est désactivée, ou la désactive si elle est activée. Ceci correspond à un clic du joueur sur l'action dans la barre d'action. Renvoie le nouveau statut « est activé » sous la forme d'un booléen. Peut uniquement être appelé à partir d'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)
Configure le thème du mode selfie, notamment la taille du texte, la police, les couleurs des boutons et des infobulles, et plus encore. Cette fonction peut uniquement être appelée à partir d'un LocalScript.
Généralités
Clé | Description | Par défaut |
---|---|---|
textSize | Taille de tous les textes. | "16" |
font | Police utilisée dans toutes les UI (Enum.Font). | GothamMedium |
padding | Rembourrage principal utilisé pour l'agencement des objets de l'UI (UDim). | (0, 12) |
paddingSmall | Rembourrage plus petit utilisé pour appliquer des marges subtiles entre les objets (UDim). | (0, 6) |
paddingScreen | Rembourrage sur les bords de l'écran pour donner de l'espace au mode selfie (UDim). | (0, 24) |
backgroundColor | Couleur d'arrière-plan utilisée pour la barre qui affiche les actions (Color3). | [0, 0, 0] |
scrollBarColor | Couleur de la barre de défilement utilisée dans les éléments ScrollingFrame du module (Color3). | [255, 255, 255] |
Buttons et infobulles
Clé | Description | Par défaut |
---|---|---|
openButtonBackgroundColor | Couleur d'arrière-plan du bouton d'affichage tête haute utilisé pour ouvrir le mode selfie sur le côté droit de l'écran (Color3). | [255, 255, 255] |
openButtonIconColor | Couleur de l'icône de la caméra du bouton d'affichage tête haute (Color3). | [0, 0, 0] |
closeButtonBackgroundColor | Couleur d'arrière-plan du bouton « fermer » (Color3). | [0, 0, 0] |
closeButtonIconColor | Couleur de l'icône du bouton « fermer » (Color3). | [255, 255, 255] |
actionButtonBackgroundColor | Couleur d'arrière-plan des différents boutons d'action utilisés pour passer d'une action à l'autre (Color3). | [255, 255, 255] |
actionButtonIconColor | Couleur des icônes pour les différents boutons d'action (Color3). | [0, 0, 0] |
tooltipBackgroundColor | Couleur d'arrière-plan des infobulles et des notifications (Color3). | [0, 0, 0] |
tooltipNameColor | Couleur du texte des noms des infobulles (Color3). Également utilisée comme couleur du texte pour les notifications. | [255, 255, 255] |
tooltipDescriptionColor | Couleur des descriptions des infobulles, légèrement estompée pour mettre l'accent sur les noms des infobulles (Color3). Non utilisé pour les notifications. | [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)
Définit si le mode selfie est activé ou non. Lorsqu'il est désactivé, toute l'UI du module est supprimée et tous les événements sont déconnectés. Cette fonction peut uniquement être appelée à partir d'un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.setEnabled(false)
Événements
selfieModeOpened
selfieModeOpened() :RBXScriptSignal
Se déclenche lorsque le joueur ferme le mode selfie ou lorsque closeSelfieMode est appelé. Cet événement peut uniquement être lié dans 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 déclenche lorsque le lecteur ouvre le mode selfie ou lorsque openSelfieMode est appelé. Cet événement peut uniquement être lié dans 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 déclenche lorsqu'une action ou une sous-action principale est désactivée. La fonction liée reçoit l'Action désactivée. Cet événement peut uniquement être lié dans 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 déclenche lorsqu'une pose est appliquée ou supprimée. La fonction liée reçoit le nouveau nom et l'ancien nom de la pose. Cet événement peut uniquement être lié dans 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 déclenche lorsqu'un filtre est appliqué ou supprimé. La fonction liée reçoit le nouveau et l'ancien nom du filtre. Cet événement peut uniquement être lié dans 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 déclenche lorsqu'un filtre est appliqué ou supprimé. La fonction liée reçoit le nouveau nom et l'ancien nom de la pose. Cet événement peut uniquement être lié dans 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)