Photo Booth

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Mengambil foto adalah cara yang sempurna untuk mengabadikan pengalaman yang luar biasa. Modul PhotoBooth pengembang modul adalah alat penataan foto yang mudah digunakan yang memungkinkan pemain untuk berpose unik dengan latar belakang yang mewakili pengalaman mereka.

Penggunaan modul

Instalasi

Untuk menggunakan modul PhotoBooth dalam sebuah pengalaman:

  1. Dari menu Window Studio atau toolbar tab Home, buka Toolbox dan pilih tab Creator Store.

  2. Pastikan pengurutan Models dipilih, kemudian klik tombol See All untuk Categories.

  3. Temukan dan klik ubin Packages.

  4. Temukan modul Photo Booth dan klik, atau seret dan jatuhkan ke dalam tampilan 3D.

  5. Di jendela Explorer, pindahkan seluruh model PhotoBooth ke dalam ReplicatedStorage. Setelah menjalankan pengalaman, modul akan mulai berjalan.

Posisi booth

Modul ini dilengkapi dengan satu model PhotoBooth yang dapat Anda posisikan di dunia 3D. Model ini adalah yang akan berinteraksi dengan pemain untuk menyiapkan foto.

  1. Temukan mesh PhotoBooth di dalam folder Workspace dari folder utama modul.

  2. Pindahkan ke hirarki Workspace tingkat atas dan posisikan di tempat yang diinginkan.

Konfigurasi

Modul ini telah dikonfigurasi sebelumnya untuk bekerja di sebagian besar kasus penggunaan, tetapi dapat dengan mudah disesuaikan melalui fungsi configure. Misalnya, untuk mengubah pesan default di bagian bawah foto:

  1. Di StarterPlayerScripts, buat LocalScript baru dan ganti namanya menjadi ConfigurePhotoBooth.

  2. Tempelkan kode berikut ke dalam skrip baru.

    LocalScript - ConfigurePhotoBooth

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

Koneksi ke acara

Setiap kali booth foto menampilkan layar baru kepada klien lokal, acara yang sesuai akan dipicu. Acara ini dapat dihubungkan dalam LocalScript sehingga Anda dapat merespons dengan logika kustom Anda sendiri.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("Hitungan mundur telah dimulai")
end)
PhotoBooth.printoutShown:Connect(function()
print("Cetakan sedang ditampilkan")
end)
PhotoBooth.promptShown:Connect(function()
print("Tanya kamera sedang ditampilkan")
end)

Visibilitas GUI

Secara default, booth foto menyembunyikan semua ScreenGuis dan CoreGuis ketika foto sedang disiapkan. Jika Anda ingin menimpa perilaku auto-hiding ini dan memutuskan secara programatik GUI mana yang harus tetap terlihat, sertakan callback hideOtherGuis dan showOtherGuis dan respons dengan logika kustom Anda sendiri.

LocalScript

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- Buat GUI layar yang tidak akan disembunyikan
local specialGuiInstance = Instance.new("ScreenGui")
-- Gambarkan GUI layar di atas GUI booth foto
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Atur atribut pada GUI layar untuk mencegah penyembunyian
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Tambahkan label teks ke dalam GUI
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "Tetap terlihat saat mengambil foto"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- Sembunyikan semua GUI layar yang didefinisikan pengembang kecuali yang diberi tanda atribut
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
-- Sembunyikan GUI inti tertentu
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Tampilkan semua GUI layar yang didefinisikan pengembang yang disembunyikan
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Tampilkan GUI inti tertentu yang disembunyikan
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

Referensi API

Fungsi

configure

configure(config: table)

Menimpa opsi konfigurasi default melalui kunci/nilai berikut di tabel config. Fungsi ini hanya dapat dipanggil dari LocalScript.

KunciDeskripsiDefault
frameMessagePesan yang ditampilkan di bagian bawah foto. Durasi dapat dikendalikan melalui properti fadeUiDelay."Gunakan perangkat Anda untuk mengambil tangkapan layar dan berbagi!"
fadeUiDelayWaktu untuk menampilkan pesan bingkai sebelum memudar, dalam detik. Atur ke angka negatif untuk tidak memudar.3
closeButtonImageGambar yang digunakan untuk tombol tutup foto, ditempatkan di atas gambar closeButtonBackgroundImage."rbxassetid://7027440823"
closeButtonBackgroundImageGambar latar belakang yang digunakan untuk tombol tutup foto."rbxassetid://7027440891"
cameraLandscapePositionJarak kamera booth foto dari karakter, di depan dan ke atas, saat mengambil foto dalam mode lanskap (Vector2).(5, 2)
cameraPortraitPositionJarak kamera booth foto dari karakter, di depan dan ke atas, saat mengambil foto dalam mode potret (Vector2).(10, 1)
countdownFontFont yang digunakan untuk angka dalam hitungan mundur (Enum.Font).GothamBlack
countdownTextColorWarna angka dalam hitungan mundur (Color3).[255, 255, 255]
printoutCharacterPositionPosisi karakter di layar saat cetakan ditampilkan (UDim2).(0.5, 0, 0.5, 0)
printoutCharacterSizeJumlah ruang layar yang ditempati karakter dalam cetakan (UDim2).(1, 0, 1, 0)
characterAnimationID aset dari animasi yang diambil karakter dalam foto, dijeda di bingkai awalnya."rbxassetid://6899663224"
filterImageGambar yang diterapkan di atas foto sebagai filter. Jika nil, filter default yang menggelapkan tepi gambar akan digunakan.nil
LocalScript - ConfigurePhotoBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.configure({
frameMessage = "Pose yang sangat keren!",
fadeUiDelay = 5,
maxActivationDistance = 5,
printoutCharacterSize = UDim2.fromScale(1.5, 1.5),
})

setBackgrounds

setBackgrounds(backgrounds: table)

Menimpa latar belakang default yang disediakan oleh booth foto. Gambar latar belakang harus memiliki rasio aspek 16:9 (1024×576) untuk pengalaman yang optimal dan ID aset mereka harus disertakan dalam array latar belakang. 1–4 (inklusif) latar belakang dapat disediakan.

LocalScript

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

Acara

countdownStarted

Dipicu ketika hitungan mundur dimulai. Acara ini hanya dapat dihubungkan dalam LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("Hitungan mundur telah dimulai")
end)

printoutShown

Dipicu ketika cetakan ditampilkan kepada pengguna. Acara ini hanya dapat dihubungkan dalam LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.printoutShown:Connect(function()
print("Cetakan sedang ditampilkan")
end)

promptShown

Dipicu ketika cetakan ditutup dan tombol kamera ditampilkan kembali. Acara ini hanya dapat dihubungkan dalam LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.promptShown:Connect(function()
print("Tanya kamera sedang ditampilkan")
end)

Callback

hideOtherGuis

hideOtherGuis(callback: function)

Callback ini dijalankan segera sebelum cetakan ditampilkan, memungkinkan Anda untuk menonaktifkan seluruh ScreenGuis atau elemen di dalamnya sebelum cetakan ditampilkan. GUI yang digunakan oleh booth foto memiliki atribut ShowInPhotoBooth yang disetel ke true. Lihat Visibilitas GUI untuk detail dan kode sampel.

showOtherGuis

showOtherGuis(callback: function)

Callback ini dijalankan setelah cetakan ditutup, memungkinkan Anda untuk mengaktifkan kembali seluruh ScreenGuis atau elemen di dalamnya. GUI yang digunakan oleh booth foto memiliki atribut ShowInPhotoBooth yang disetel ke true. Lihat Visibilitas GUI untuk detail dan kode sampel.

©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.