Kabina Fotograficzna

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Fotografowanie to doskonały sposób na uczczenie wielkiego doświadczenia. PhotoBoothmoduł rozwoju jest łatwym narzędziem do fotografowania, które umożliwia graczom uderzenie unikalnej pozy z tła, które reprezentuje ich doświadczenie.

Użyj modułu

Instalacja

Aby użyć modułu Fotobudka w doświadczeniu:

  1. Z zakładki Zobacz, otwórz Skrzynię narzędzi i wybierz Sklep z twórcami.

    Toolbox toggle button in Studio
  2. Upewnij się, że Modele sortowanie jest zaznaczone, a następnie kliknij przycisk Zobacz wszystko dla Kategorie.

  3. Lokalizuj i klikaj na płytę Moduły Rozwoju .

  4. Lokalizuj moduł Fotobudka i kliknij na niego, lub przeciągnij go do 3D-wizualizacji.

  5. W oknie Explorer przenieś cały model PhotoBooth do ServerScriptService . Po uruchomieniu doświadczenia moduł zostanie rozdzielony na różne usługi i zacznie działać.

Pozycjonowanie Stoiska

Moduł kompletyuje jeden model Fotobudki , który możesz umieścić w świecie 3D. Jest to właśnie z modelu gracze będą interagować, aby ustawić fotografię.

  1. Lokalizuj Pokaz zdjęć wierzchownik w Workspace działce modułu głównego.

  2. Przenieś go do najwyższego poziomu hierarchii Workspace i umieść go tam, gdzie chcesz.

Konfiguracja

Moduł jest zaprojektowany tak, aby działał dla większości przypadków użycia, ale można go łatwo dostosować poprzez funkcję konfiguruj. Na przykład, aby zmienić domyślną wiadomość na dole zdjęcia:

  1. W StarterPlayerScripts , utwórz nowy LocalScript i zmień go na KonfigurujFotobudkę .

  2. Wklej następujący kod do nowego skryptu.

    Lokalny Skrypt - KonfigurujCabinęFotograficzną

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
    PhotoBooth.configure({
    frameMessage = "First Photo Booth Capture!",
    })

Łączenie z wydarzeniami

Za każdym razem, gdy fotobudka wyświetla nowy ekran dla lokalnego klienta, zostaje uruchomiony odpowiedni wątek zdarzenia. Te wątki można połączyć w LocalScript, aby móc reagować z własną niestandardową logiką.

Lokalny Skrypt

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)

Widoczność GUI

Domyślnie fotobudka ukrywa wszystkie ScreenGuis i CoreGuiskiedy zdjęcie jest zapisane, jeśli chcesz zmienić ten automatyczny ukrywania zachowań i programowo zdecydować, które GUI powinny pozostać widoczne, włącz

Lokalny Skrypt

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 = {}
-- Utwórz interfejs użytkownika, który nie zostanie ukryty
local specialGuiInstance = Instance.new("ScreenGui")
-- Rozrysuj GUI ekranu ponad GUI fotobudki
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Ustaw atrybut na GUI ekranu, aby zapobiec ukrywaniu
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Dodaj etykietę tekstową do interfejsu
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()
-- Ukryj wszystkie interfejsy użytkownika zdefiniowane przez programistę, z wyjątkiem tych zaznaczonych atrybutem
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
-- Ukryj GUI związane z rdzeniem
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Pokaż wszystkie interfejsy użytkownika zdefiniowane przez programistę, które były ukryte
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Pokaż specjalne interfejsy użytkownika głównego, które zostały ukryte
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

Referencja API

Funkcje

konfigurować

konfigurować(config: table )

Przywraca domyślne opcje konfiguracji poprzez następujące klucze/werte w tabeli config. Ta funkcja może być wywołana tylko z LocalScript .

KluczOpisDomyślny
frameMessageWiadomość, która jest pokazana w dolnej części zdjęcia. Jej trwałość można kontrolować za pośrednictwem właściwości fadeUiDelay.„Użyj swojego urządzenia, aby zrobić zdjęcie ekranu i udostępniaćsię nim!”
fadeUiDelayPora pokazać wiadomość o ramach, zanim zniknie, w sekundach. Ustaw na ujemną liczbę, aby nigdy się nie zniknęło.3
closeButtonImageObraz do użycia dla przycisku zamknięcia, umieszczony nad closeButtonBackgroundImage obrazem.„rbxassetid://7027440823”
closeButtonBackgroundImageZdjęcie tła do użycia dla przycisku zamknięcia zdjęcia.„rbxassetid://7027440891”
cameraLandscapePositionOdległość kamery fotobudki, przed i w górę od postaci, podczas gdy robi się zdjęcie w trybie krajobrazu ( Vector2 ).(5, 2)
cameraPortraitPositionOdległość kamery fotobudki, przed i w górę od postaci, przy braniu zdjęcia w trybie portretu ( Vector2 ).(10, 1)
countdownFontFont do użycia dla liczb w liczbie odlicznej ( Enum.Font ).GothamBlack
countdownTextColorKolor liczb w liczbie odliczowej ( Color3 ).[255, 255, 255]
printoutCharacterPositionPozycja znaku na ekranie, gdy wydruk jest pokazany ( UDim2 ).(0.5, 0, 0.5, 0)
printoutCharacterSizeIlość obszaru ekranu, którego zajmuje postać w wydruku ( UDim2 ).(1, 0, 1, 0)
characterAnimationID zasobu animacji, którą postać w zdjęciu wstrzymała w klatce startowej.„rbxassetid://6899663224”
filterImageObraz do zastosowania nad zdjęciem jako filtr. Jeśli nil , będzie używany domyślny filtr, który zmniejsza krawędzie obrazu.nil
Lokalny Skrypt - KonfigurujCabinęFotograficzną

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),
})

ustawienia tła

setBackgrounds(背景: table )

Przywraca domyślne tła dostarczone przez fotobudkę. Obrazy tła powinny być w rozdzielczości 16: 9 (1024 × 768) dla optymalnego doświadczenia i ich ID zasobów powinny być włączone w tła. 1–4 (włącznie) tła można zapewnić.

Lokalny Skrypt

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.setBackgrounds({
"rbxassetid://7018713114",
"rbxassetid://950538356",
})

Wydarzenia

odliczanieZaczęte

Występuje, gdy rozpoczyna się liczdownik. Ten wątek może być połączony tylko w LocalScript .

Lokalny Skrypt

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)

printoutZapisać

Wystąpi, gdy wydruk zostanie pokazany użytkownikowi. Ten wydarzenie może być połączony tylko w jednym LocalScript .

Lokalny Skrypt

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)

pokaż

Wystąpi, gdy wydruk zostanie zamknięty i przycisk kamery zostanie ponownie pokazany. Ten wydarzenie może być połączony tylko w LocalScript .

Lokalny Skrypt

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)

Wezwania

ukryjInnyGuis

hideOtherGuis( callback: function )

Ten zwrotny callback zostanie natychmiastowo wykonany przed wyświetleniem drukowania, pozwalając na wyłączenie całego ScreenGuis lub elementów w nim przed wyświetleniem drukowania. GUI używane przez fotobudkę mają atrybut ShowInPhotoBooth ustawiony na true . Patrz 1> GUI Visibility1> dla sz

pokażInnyGuis

pokażInnyGuis( callback: function )

Ten zwrotny callback zostanie wykonany po zamknięciu drukowania, umożliwiając ponowne włączenie całego ScreenGuis lub elementów w nim. GUI używane przez fotobudkę mają atrybut ShowInPhotoBooth ustawiony na true . Zobacz 1> Widoczność GUI1> dla szczegółów i kodu przykładow