Cabine photo

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

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 :

  1. À partir de l'Affichage onglet, ouvrez la boîte à outils et sélectionnez l' boutique des créateurs onglet.

    Toolbox toggle button in Studio
  2. Assurez-vous que le tri par Modèles est sélectionné, puis cliquez sur le bouton Voir tout pour Catégories.

  3. Localisez et cliquez sur la case modules de pavé .

  4. Localisez le module Cabine photo et cliquez dessus, ou glissez-le dans la voir3D.

  5. 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.

  1. Localisez le PhotoBooth maillage à l'intérieur du dossier principal de la fente de travail du module.

  2. 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 :

  1. Dans StarterPlayerScripts , créez un nouveau LocalScript et renommez-le en ConfigurePhotoBooth .

  2. Collez le code suivant dans le nouveau script.

    LocalScript - Configurer le studio photo

    local 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

configurer(config: Library.table)

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éDescriptionPar défaut
frameMessageMessage 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 ! »
fadeUiDelayIl 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
closeButtonImageImage à utiliser pour le bouton de fermeture de photo, placé au-dessus de l'image closeButtonBackgroundImage.« rxbassetid://7027440823 »
closeButtonBackgroundImageImage de fond à utiliser pour le bouton de photo de fermeture.« rxbassetid://7027440891 »
cameraLandscapePositionDistance 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)
cameraPortraitPositionDistance 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)
countdownFontPolice à utiliser pour les numéros dans le compte à rebours ( Enum.Font ).GothamBlack
countdownTextColorCouleur des numéros dans le compte à rebours ( Color3 ).[255, 255, 255]
printoutCharacterPositionPosition du personnage sur l'écran lorsque le résultat d'impression est affiché ( UDim2 ).(0.5, 0, 0.5, 0)
printoutCharacterSizeQuantité d'espace d'écran que le personnage occupe dans le résultat d'impression ( UDim2 ).(1, 0, 1, 0)
characterAnimationID de la ressource de l'animation que le personnage prend dans la photo, suspendue à son cadre de départ.« rxbassetid://6899663224 »
filterImageImage à 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

setBackgrounds(背景: table )

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

autre gui ( rappel: function )

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

afficherAutreGuis(rappel: function )

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.