Prendre une photo est un excellent moyen de commémorer une grande expérience. Le PhotoBooth module de développeur est un outil de photo facile à utiliser qui permet aux joueurs de frapper une posture unique avec un fond qui représente leur expérience.
Utilisation des modules
Installation
Pour utiliser le module PhotoBooth dans une expérience :
À partir de l'Affichage onglet, ouvrez la boîte à outils et sélectionnez l' boutique des créateurs onglet.
Assurez-vous que le tri par Modèles est sélectionné, puis cliquez sur le bouton Voir tout pour Catégories.
Localisez et cliquez sur la case modules de pavé .
Localisez le module Cabine photo et cliquez dessus, ou glissez-le dans la voir3D.
Dans la fenêtre Explorateur, déplacez le modèle entier de PhotoBooth dans ServerScriptService . Lorsque vous exécutez l'expérience, le module se distribuera à différents services et commencera à s'exécuter.
Placement du stand
Le module est livré avec un modèle PhotoBooth que vous pouvez positionner dans le monde 3D. Ce modèle est ce que les joueurs interagissent pour configurer une photo.
Localisez le PhotoBooth maillage à l'intérieur du dossier principal de la fente de travail du module.
Déplacez-le dans la hiérarchie de niveau supérieur Workspace et positionnez-le où vous le souhaitez.
Configuration
Le module est configuré pour fonctionner pour la plupart des cas d'utilisation, mais il peut être facilement personnalisé via la fonction 配置. Par exemple, pour modifier le message par défaut en bas de la photo :
Dans StarterPlayerScripts , créez un nouveau LocalScript et renommez-le en ConfigurePhotoBooth .
Collez le code suivant dans le nouveau script.
LocalScript - Configurer le studio photolocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
Connexion à événements
Chaque fois que le stand photo affiche un nouveau panneau à un client local, un événement correspondant est déclenché. Ces événements peuvent être connectés dans un LocalScript afin que vous puissiez répondre avec votre propre logique personnalisée.
Script local
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)
Visibilité de la GUI
Par défaut, le stand de photo masque tous les ScreenGuis et CoreGuis lorsqu'une photo est staged. Si vous souhaitez modifier ce comportement d'auto-masquage et décider programmiquement de la visibilité des GUIs, incluez le masquerAutreGuis et 1> afficherAutreGuis
Script local
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- Créer un GUI de création d'écran qui ne sera pas caché
local specialGuiInstance = Instance.new("ScreenGui")
-- Dé dessinez la GUI de l'écran au-dessus de l'interface interface utilisateur graphiquede la cabine photo
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Définir l'attribut sur la GUI de l'écran pour empêcher la cacher
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Ajouter une étiquette de texte à l'interface interface utilisateur graphique
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "Remains visible when taking a photo"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- Masquer toutes les interfaces graphiques de développeur sauf celles marquées par l'attribut
local instances = playerGui:GetChildren()
for _, instance in instances do
if instance:IsA("ScreenGui") and not instance:GetAttribute("ShowInPhotoBooth") and instance.Enabled then
instance.Enabled = false
table.insert(hiddenInstances, instance)
end
end
-- Cacher les interfaces graphiques du noyau spécifiques
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Afficher toutes les interfaces graphiques de développeur qui ont été cachées
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Afficher les interfaces utilisateur du noyau spécifiques qui étaient cachées
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
Référence de l'API
Fonctions
configurer
Les options de configuration par défaut sont remplacées par les valeurs suivantes dans la table config. Cette fonction ne peut être appelée que depuis un LocalScript.
Clé | Description | Par défaut |
---|---|---|
frameMessage | Message qui est affiché en bas de la photo. Sa durée peut être contrôlée via la propriété fadeUiDelay. | « Utilisez votre appareil pour prendre une capture d'écran et partager ! » |
fadeUiDelay | Il est temps d'afficher le message de cadre avant qu'il ne disparaisse, dans des secondes. Défini sur un nombre négatif pour ne jamais disparaître. | 3 |
closeButtonImage | Image à utiliser pour le bouton de fermeture de photo, placé au-dessus de l'image closeButtonBackgroundImage. | « rxbassetid://7027440823 » |
closeButtonBackgroundImage | Image de fond à utiliser pour le bouton de photo de fermeture. | « rxbassetid://7027440891 » |
cameraLandscapePosition | Distance de la caméra de la cabine photo, en avant et vers le haut du personnage, lorsque vous prenez une photo en mode paysage ( Vector2 ). | (5, 2) |
cameraPortraitPosition | Distance de la caméra de la cabine photo, en avant et vers le haut du personnage, lorsque vous prenez une photo en mode portrait ( Vector2 ). | (10, 1) |
countdownFont | Police à utiliser pour les numéros dans le compte à rebours ( Enum.Font ). | GothamBlack |
countdownTextColor | Couleur des numéros dans le compte à rebours ( Color3 ). | [255, 255, 255] |
printoutCharacterPosition | Position du personnage sur l'écran lorsque le résultat d'impression est affiché ( UDim2 ). | (0.5, 0, 0.5, 0) |
printoutCharacterSize | Quantité d'espace d'écran que le personnage occupe dans le résultat d'impression ( UDim2 ). | (1, 0, 1, 0) |
characterAnimation | ID de la ressource de l'animation que le personnage prend dans la photo, suspendue à son cadre de départ. | « rxbassetid://6899663224 » |
filterImage | Image à appliquer sur la photo en tant que filtres. Si nil , un filtre par défaut qui ombrage les bords de l'image sera utilisé. | nil |
LocalScript - Configurer le studio photo
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "What a cool pose!",fadeUiDelay = 5,maxActivationDistance = 5,printoutCharacterSize = UDim2.fromScale(1.5, 1.5),})
setBackgrounds
Surclasse les fonds d'arrière-plan fournis par le stand photo. Les images de fond devraient être au ratio d'aspect 16:9 (1024×768) pour une expérience optimale et leurs ID de fond doivent être inclus dans le matricedes fonds. 1–4 (y compris) les fonds peuvent être fournis.
Script local
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
Événements
compte à rebours commencé
Se déclenche lorsque le compte à rebours commence. Cet événement ne peut être connecté qu'à un LocalScript .
Script local
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
printoutAffiché
Se déclenche lorsque le résultat d'impression est affiché à l'utilisateur. Cet événement ne peut être connecté qu'à un LocalScript .
Script local
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
inviteShow
Se déclenche lorsque le tirage est fermé et que le bouton de la caméra est à nouveau affiché. Cet événement ne peut être connecté qu'à un LocalScript .
Script local
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)
Appels
masquerAutreGuis
Ce rappel s'exécute immédiatement avant l'affichage de la sortie, vous permettant de désactiver l'ensemble de ScreenGuis ou les éléments à l'intérieur avant l'affichage de la sortie. Les interfaces utilisées par le photo-booth ont l'attribut ShowInPhotoBooth défini sur true . Voir 1> GUI Visibility1> pour plus de code
afficherAutreGuis
Ce rappel s'exécute après la fermeture de l'imprimante, vous permettant de réactiver l'ensemble de ScreenGuis ou les éléments à l'intérieur. Les GUI utilisés par le stand photo ont l'attribut ShowInPhotoBooth défini sur true . Voir 1> visibilité de l'GUI1> pour plus de détails et d'échantillons de code.