Fotoğraf Kabini

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Fotoğraf çekmek, harika bir deneyimi anmak için mükemmel bir yoldur.The Fotoğraf Makinesi geliştirici modülü kolayca kullanılabilen bir fotoğraf sahneleme aracıdır, ki oyuncular deneyimlerini temsil eden bir arka planla benzersiz bir poz verebilir.

Modül kullanımı

Yükleme

Bir deneyimde Fotoğraf Makinesi modülünü kullanmak için:

  1. Görüntü sekmesinden açın Araç çantası ve Yaratıcı mağazası sekmesini seçin.

    Toolbox toggle button in Studio
  2. Modellerin sıralanması seçildiğinden emin olun, ardından Tümünü Görüntüle düğmesine tıklayın Kategoriler için >.

  3. Yerini ve tıklayın Geliştirici Modülleri düğmesi.

  4. Fotoğraf Makinesi modülünü bulun ve tıklayın veya 3B görüntüye sürükleyin ve bırakın.

  5. Gezgin penceresinde, tüm Fotoğraf Makinesi modelini Sunucu Kod Hizmetine taşıyın.Deneyimi çalıştırdıktan sonra, modül kendini çeşitli hizmetlere dağıtacak ve çalışmaya başlayacaktır.

Stantı konumlandır

Modül, 3B dünyada konumlandırabileceğiniz bir Fotoğraf Makinesi modeli ile birlikte gelir.Bu model, oyuncuların bir fotoğraf kurmak için etkileşime gireceği şeydir.

  1. Modülün ana klasörünün Fotoğraf Makinesi ağı içindeki Çalışma Alanı klasörünün içindeki mesh'i bulun.

  2. En üst seviye Çalışma Alanı hiyerarjisine taşı ve istediğin yere yerleştir.

Yapılandırma

Modül çoğu kullanım durumu için önceden yapılandırılmıştır, ancak configure işlevi aracılığıyla kolayca özelleştirilebilir.Örneğin, fotoğrafın altındaki varsayılan mesajı değiştirmek için:

  1. In Başlangıç ​​OyuncuScriptleri , yeni bir LocalScript oluştur ve onu Fotoğraf Makinesi Yapılandırma olarak yeniden adlandır.

  2. Yeni senaryoya aşağıdaki kodu yapıştırın.

    YerelScript - Fotoğraf Makinesini Yapılandır

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

Etkinliklere bağlanma

Fotoğraf stantı yerel bir müşteriye yeni bir ekran gösterdiğinde, buna karşılık bir olay ateşlenir.Bu olaylar bir LocalScript ile bağlanabilir, böylece kendi özel mantığınızla yanıt verebilirsiniz.

YerelScript

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)

UI görünürlüğü

Varsayılan olarak, fotoğraf stantı bir fotoğraf sergilendiğinde tüm ScreenGuis ve CoreGuis gizlenir.Bu otomatik gizleme davranışını geçersiz kılmak ve hangi GUI'lerin görünür kalması gerektiğine programatik olarak karar vermek istiyorsanız, hideOtherGuis ve showOtherGuis geri çağrılarını içere ve kendi özel mantığınızla yanıt verin.

YerelScript

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 = {}
-- Gizlenmeyecek bir ekran GUI'si oluştur
local specialGuiInstance = Instance.new("ScreenGui")
-- Fotoğraf kabini GUI'sinin üzerinde ekran GUI'sini çiz
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Gizlenmesini engellemek için ekran GUI'sinde öznitelik ayarlayın
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- UI'ye metin etiketi ekleyin
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()
-- Öznitelik ile işaretlenenler dışında tüm geliştirici tanımlı ekran arayüzlerini gizle
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
-- Belirli çekirdek GUI'leri gizle
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Gizlenmiş olan tüm geliştirici tanımlı ekran arayüzlerini göster
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Gizlenen belirli çekirdek GUI'leri göster
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

API referansı

Fonksiyonlar

yapılandır

yapılandır(config: table )

Varsayılan yapılandırma seçeneklerini aşağıdaki anahtarlar/değerler aracılığıyla geçersiz kılar: config tablosunda.Bu işlev yalnızca bir LocalScript 'dan çağrılabilir.

AnahtarAçıklamaVarsayılan
frameMessageFotoğrafın altında gösterilen mesaj. Süresi fadeUiDelay özelliği aracılığıyla kontrol edilebilir.“Cihazını kullanarak bir ekran görüntüsü al ve paylaş!”
fadeUiDelayKare mesajının kaybolmadan önce gösterilmesi gereken süre (saniyeler içinde). Asla kaybolmaması için negatif bir sayıya ayarlanır.3
closeButtonImageYakın fotoğraf düğmesi için kullanılacak görüntü, closeButtonBackgroundImage görüntünün üzerine yerleştirildi.“rbxassetid://7027440823”
closeButtonBackgroundImageYakın fotoğraf düğmesi için kullanılacak arka plan görüntüsü.“rbxassetid://7027440891”
cameraLandscapePositionFotoğraf stantının kamerasının, karakterden önce ve yukarıdan aldığı mesafe, manzara modunda bir fotoğraf çekerken ( Vector2 ).(5, 2)
cameraPortraitPositionFotoğraf stantının kamerasının, karakterden önce ve yukarıdan, portre modunda fotoğraf çekerken mesafesi (Vector2).(10, 1)
countdownFontGeri sayım süresinde kullanılacak yazı tipi ( Enum.Font ).GothamBlack
countdownTextColorGeri sayım süresindeki sayıların rengi ( Color3 ).[255, 255, 255]
printoutCharacterPositionBaskı çıktı gösterildiğinde ekranda karakterin konumu ( UDim2 ).(0.5, 0, 0.5, 0)
printoutCharacterSizeKarakterin baskıda aldığı ekran alanı miktarı ( UDim2 ).(1, 0, 1, 0)
characterAnimationKarakterin fotoğrafta aldığı animasyonun varlık kimliği, başlangıç çerçevesinde durakladı.“rbxassetid://6899663224”
filterImageFotoğraf üzerine bir filtre olarak uygulanacak görüntü. Eğer nil ise, görüntü kenarlarını kararan varsayılan bir filtre kullanılır.nil
YerelScript - Fotoğraf Makinesini Yapılandır

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

arka planları ayarla

setBackgrounds(backgrounds: table )

Fotoğraf kabini tarafından sağlanan varsayılan arka planları geçersiz kılar.Arka plan görüntüleri optimum bir deneyim için 16:9 oranında olmalıdır (1024×768) ve varlık kimlikleri arka plan düzenine dahil edilmelidir.1-4 (dahil) arka plan sağlanabilir.

YerelScript

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

Etkinlikler

geri sayımBaşladı

Geri sayım başladığında ateş eder. Bu etkinin yalnızca bir LocalScript içinde bağlanması gerekir.

YerelScript' hightlight='5-7

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

printoutGösterildi

Yazdırma, kullanıcıya gösterildiğinde ateş eder. Bu olay yalnızca bir LocalScript içinde bağlanabilir.

YerelScript' hightlight='5-7

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

soruGösterildi

Baskı kapatıldığında ve kamera düğmesi tekrar gösterildiğinde ateşlenir. Bu olay yalnızca bir LocalScript içinde bağlanabilir.

YerelScript' 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)

Geri çağrılar

hideOtherGuis'yi gizle

hideOtherGuis(çağrışım: function )

Bu geri arama, yazdırma gösterilmeden hemen önce çalışır, böylece yazdırma gösterilmeden önce tüm ScreenGuis veya içindeki elemanları devre dışı bırakabilirsiniz.Fotoğraf kabini tarafından kullanılan GUI'lerin özelliği Fotoğraf Makinesinde Gösterin , doğru olarak ayarlandı.Ayrıntılar ve örnek kod için GUI Görünürlüğü bakın.

showOtherGuis'i göster

showOtherGuis(çağrışım: function )

Bu geri çağrı, baskı kapatıldıktan sonra çalışır, böylece tüm ScreenGuis veya içindeki elemanları yeniden etkinleştirebilirsiniz.Fotoğraf kabini tarafından kullanılan GUI'lerin özelliği Fotoğraf Makinesinde Gösterin , doğru olarak ayarlandı.Ayrıntılar ve örnek kod için GUI Görünürlüğü bakın.