Mengambil foto adalah cara yang sempurna untuk memperingati permainan yang hebat. Modul KiosFoto pengembang 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 KiosFoto dalam sebuah permainan:
Dari menu Window Studio atau toolbar tab Home, buka Toolbox dan pilih tab Toko Pembuat.

Pastikan pengurutan Model dipilih, lalu klik tombol Lihat Semua untuk Kategori.

Temukan dan klik ubin Paket.
Temukan modul Kios Foto dan klik, atau seret dan jatuhkan ke dalam tampilan 3D.

Di jendela Explorer, pindahkan seluruh model KiosFoto ke dalam ReplicatedStorage. Setelah menjalankan permainan, modul akan mulai berjalan.
Posisi kios
Modul ini dilengkapi dengan satu model KiosFoto yang dapat Anda posisikan di dunia 3D. Model ini adalah yang akan berinteraksi dengan pemain untuk menyiapkan foto.
Temukan mesh KiosFoto di dalam folder Workspace dari folder utama modul.

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

Konfigurasi
Modul ini telah dikonfigurasi sebelumnya untuk bekerja pada sebagian besar kasus penggunaan, tetapi dapat dengan mudah disesuaikan melalui fungsi konfigurasi. Misalnya, untuk mengubah pesan default di bagian bawah foto:
Di StarterPlayerScripts, buat LocalScript baru dan ganti namanya menjadi KonfigurasiKiosFoto.

Tempelkan kode berikut ke dalam skrip baru.
LocalScript - ConfigurePhotoBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage.PhotoBooth)PhotoBooth.configure({frameMessage = "Tangkap Kios Foto Pertama!",})
Menghubungkan ke acara
Setiap kali kios 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.
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("Prompt kamera sedang ditampilkan")
end)Visibilitas GUI
Secara default, kios foto menyembunyikan semua ScreenGuis dan CoreGuis ketika foto sedang dipentaskan. Jika Anda ingin mengesampingkan perilaku penyembunyian otomatis ini dan memutuskan secara programatis GUI mana yang harus tetap terlihat, sertakan callback hideOtherGuis dan showOtherGuis dan respons dengan logika kustom Anda sendiri.
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")
-- Gambar GUI layar di atas GUI kios foto
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Atur atribut pada GUI layar untuk mencegah penyembunyian
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Tambahkan label teks ke 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 ditentukan pengembang kecuali yang ditandai dengan 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 ditentukan 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
konfigurasi
konfigurasi(config: table)
Mengganti opsi konfigurasi default melalui kunci/nilai berikut dalam tabel config. Fungsi ini hanya dapat dipanggil dari LocalScript.
| Kunci | Deskripsi | Default |
|---|---|---|
| frameMessage | Pesan yang ditampilkan di bagian bawah foto. Durasi dapat dikendalikan melalui properti fadeUiDelay. | "Gunakan perangkat Anda untuk mengambil tangkapan layar dan bagikan!" |
| fadeUiDelay | Waktu untuk menampilkan pesan bingkai sebelum memudar, dalam detik. Atur ke angka negatif untuk tidak pernah memudar. | 3 |
| closeButtonImage | Gambar yang digunakan untuk tombol tutup foto, ditempatkan di atas gambar closeButtonBackgroundImage. | "rbxassetid://7027440823" |
| closeButtonBackgroundImage | Gambar latar belakang yang digunakan untuk tombol tutup foto. | "rbxassetid://7027440891" |
| cameraLandscapePosition | Jarak kamera kios foto, di depan dan ke atas dari karakter, saat mengambil foto dalam mode lanskap (Vector2). | (5, 2) |
| cameraPortraitPosition | Jarak kamera kios foto, di depan dan ke atas dari karakter, saat mengambil foto dalam mode potret (Vector2). | (10, 1) |
| countdownFont | Font yang digunakan untuk angka dalam hitungan mundur (Enum.Font). | GothamBlack |
| countdownTextColor | Warna angka dalam hitungan mundur (Color3). | [255, 255, 255] |
| printoutCharacterPosition | Posisi karakter di layar saat cetakan ditampilkan (UDim2). | (0.5, 0, 0.5, 0) |
| printoutCharacterSize | Jumlah ruang layar yang diambil karakter dalam cetakan (UDim2). | (1, 0, 1, 0) |
| characterAnimation | ID aset dari animasi yang diambil karakter dalam foto, dijeda di bingkai awalnya. | "rbxassetid://6899663224" |
| filterImage | Gambar yang diterapkan di atas foto sebagai filter. Jika nil, filter default yang menggelapkan tepi gambar akan digunakan. | nil |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.configure({
frameMessage = "Pose yang keren!",
fadeUiDelay = 5,
maxActivationDistance = 5,
printoutCharacterSize = UDim2.fromScale(1.5, 1.5),
})setBackgrounds
setBackgrounds(backgrounds: table)
Mengganti latar belakang default yang disediakan oleh kios 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.
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.
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.
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 lagi. Acara ini hanya dapat dihubungkan dalam LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.promptShown:Connect(function()
print("Prompt 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 kios foto memiliki atribut ShowInPhotoBooth diatur ke true. Lihat Visibilitas GUI untuk detail dan contoh kode.
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 kios foto memiliki atribut ShowInPhotoBooth diatur ke true. Lihat Visibilitas GUI untuk detail dan contoh kode.