Stanowisko fotograficzne

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

Rozpoczęcie sesji zdjęciowej to idealny sposób na upamiętnienie wspaniałego doświadczenia.Moduł rozwojowy Fotobudka jest łatwym w użyciu narzędziem do stylizacji zdjęć, które pozwala graczom uderzyć w unikalną pozę z tłem, które reprezentuje ich doświadczenie.

Użycie modułu

Instalacja

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

  1. Z zakładki Widok, otwórz Pudełko z narzędziami i wybierz zakładkę Sklep z twórcami .

    Toolbox toggle button in Studio
  2. Upewnij się, że wybrano sortowanie modele , a następnie kliknij przycisk Zobacz wszystko dla kategorii .

  3. Zlokalizuj i kliknij pasek modułów rozwojowych .

  4. Zlokalizuj moduł stoisko fotograficzne i kliknij go, lub przeciągnij i upuść do widoku 3D.

  5. W oknie Eksploratora przenieś cały model PhotoBooth do ServerScriptService .Po uruchomieniu doświadczenia moduł rozproszy się na różne usługi i rozpocznie działanie.

Pozycjonuj stoisko

Moduł zawiera jeden model Fotobudki , który możesz umieścić w świecie 3D.Ten model jest tym, z czym gracze będą interakcjonować, aby ustawić zdjęcie.

  1. Zlokalizuj siatkę Fotobudka wewnątrz katalogu Przestrzeń robocza modułu głównego katalogu.

  2. Przenieś ją do hierarchii najwyższego poziomu Przestrzeni roboczej i umieść ją tam, gdzie chcesz.

Konfiguracja

Moduł jest wstępnie skonfigurowany do pracy w większości przypadków użycia, ale można go łatwo dostosować za pomocą funkcji konfiguruj.Na przykład, aby zmienić domyślną wiadomość na dole zdjęcia:

  1. W StarterPlayerScripts , utwórz nowy LocalScript i zmień nazwę na Konfiguruj fotobudkę .

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

    LocalScript - Konfiguruj fotobudkę

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

Połącz z wydarzeniami

Za każdym razem, gdy stoisko fotograficzne wyświetla nowy ekran dla lokalnego klienta, uruchamiane jest odpowiednie wydarzenie.Te wydarzenia mogą być połączone w LocalScript tak, abyś mógł odpowiedzieć za pomocą własnej niestandardowej logiki.

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)

Widzialność interfejsu GUI

Domyślnie stoisko fotograficzne ukrywa wszystkie ScreenGuis i CoreGuis gdy powstaje zdjęcie.Jeśli chcesz anulować to zachowanie automatycznego ukrywania i programowo zdecydować, które interfejsy użytkownika powinny pozostać widoczne, dodaj hideOtherGuis i showOtherGuis powroty i odpowiedz z własną niestandardową logiką.

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 = {}
-- Stwórz interfejs GUI ekranu, który nie zostanie ukryty
local specialGuiInstance = Instance.new("ScreenGui")
-- Narysuj interfejs użytkownika ekranu powyżej interfejsu użytkownika stoisk fotograficznych
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Ustaw atrybut na interfejsie GUI, aby zapobiec ukrywaniu
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Dodaj etykietę tekstową do interfejsu GUI
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 ekranowe określone przez programistę, z wyjątkiem tych oznaczonych 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 konkretne podstawowe interfejsy GUI
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Pokaż wszystkie interfejsy użytkownika ekranu zdefiniowane przez programistę, które zostały ukryte
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Pokaż konkretne podstawowe interfejsy, które były ukryte
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

Referencja API

Funkcje

skonfigurować

konfigurować(config: table )

Nadpisanie domyślnych opcji konfiguracyjnych za pomocą następujących kluczy/wartości w tabeli config.Funkcja ta może być wywołana tylko z LocalScript.

KluczOpisDomyślny
frameMessageWiadomość, która jest wyświetlana na dole zdjęcia. Jego czas trwania można kontrolować za pomocą właściwości fadeUiDelay.„Użyj swojego urządzenia, aby zrobić zrzut ekranu i udostępniaćsię nim!”
fadeUiDelayCzas na wyświetlenie wiadomości ramy, zanim się rozpłynie, w ciągu kilku sekund. Ustaw na negatywną liczbę, aby nigdy nie zniknęła.3
closeButtonImageObraz do użycia przy przycisku zamknięcia zdjęcia, umieszczonym nad obrazem closeButtonBackgroundImage.„rbxassetid://7027440823”
closeButtonBackgroundImageTło obrazu do użycia przy przycisku zamknięcia zdjęcia.„rbxassetid://7027440891”
cameraLandscapePositionOdległość kamery fotobudki, przed i w górę od postaci, podczas robienia zdjęcia w trybie krajobrazowym ( Vector2 ).(5, 2)
cameraPortraitPositionOdległość kamery fotobudki, przed i w górę od postaci, podczas robienia zdjęcia w trybie portretowym (Vector2).(10, 1)
countdownFontCzcionka do użycia dla liczb w odliczaniu ( Enum.Font ).GothamBlack
countdownTextColorKolor liczb w odliczaniu ( Color3 ).[255, 255, 255]
printoutCharacterPositionPozycja znaku na ekranie, gdy wydruk jest wyświetlany (UDim2).(0.5, 0, 0.5, 0)
printoutCharacterSizeIlość miejsca na ekranie, które postać zajmuje w wydruku ( UDim2 ).(1, 0, 1, 0)
characterAnimationID zasobu animacji, którą postać otrzymuje w zdjęciu, zatrzymana w ramie startowej.„rbxassetid://6899663224”
filterImageObraz, który ma zostać zastosowany nad zdjęciem jako filtr. Jeśli nil, zostanie użyty domyślny filtr, który ciemni krawędzie obrazu.nil
LocalScript - Konfiguruj fotobudkę

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

ustaw tła

setBackgrounds(backgrounds: table )

Zastępuje domyślne tła dostarczone przez stoisko fotograficzne.Tła obrazów powinny mieć stosunek aspektu 16:9 (1024×768) dla optymalnego doświadczenia, a ich ID zasobów powinny być zawarte w matrycy tła.Można dostarczyć 1–4 (włącznie) tła.

Lokalny skrypt

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

Wydarzenia

odliczanie rozpoczęte

Wybucha, gdy rozpoczyna się odliczanie. To wydarzenie można połączyć tylko w LocalScript.

Lokalny skrypt' hightlight='5-7

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

printoutPokazano

Wystrzeliwuje, gdy wydruk jest pokazany użytkownikowi. To wydarzenie może być połączone tylko w LocalScript.

Lokalny skrypt' hightlight='5-7

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

promptPokazany

Wystrzeliwuje, gdy wydruk zostanie zamknięty i przycisk kamery znów się pokaże. To wydarzenie można połączyć tylko w LocalScript.

Lokalny skrypt' hightlight='5-7

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

Wezwania powrotne

ukryjOtherGuis

hideOtherGuis( callback: function )

Ten powrót wezwania uruchamia się natychmiast przed wyświetleniem wydruku, pozwalając ci wyłączyć całe ScreenGuis lub elementy w nich przed wyświetleniem wydruku.Interfejsy używane przez stoisko fotograficzne mają atrybut Pokaż w stoisku fotograficznym ustawiony na prawdę .Zobacz Widoczność interfejsu użytkownika dla szczegółów i kodu próbnego.

pokażOtherGuis

pokażOtherGuis( callback: function)

Ten powrót wykonuje się po zamknięciu wydruku, pozwalając ci ponownie włączyć całe ScreenGuis lub elementy w nich.Interfejsy używane przez stoisko fotograficzne mają atrybut Pokaż w stoisku fotograficznym ustawiony na prawdę .Zobacz Widoczność interfejsu użytkownika dla szczegółów i kodu próbnego.