แผนกถ่ายภาพ

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

การถ่ายภาพเป็นวิธีที่ดีในการระลึกถึงประสบการณ์ที่ยอดเยี่ยม เครื่อง กระดานถ่ายภาพ เป็นเครื่องมือการถ่ายภาพที่ใช้งานได้ซึ่งช่วยให้ผู้เล่นสตรีนโพสที่มีพื้นหลังที่แทน

การใช้งานโมดูล

การติดตั้ง

เพื่อใช้โมดูล PhotoBooth ในประสบการณ์:

  1. จากแท็บ ดู เปิด กล่องเครื่องมือ และเลือกแท็บ ร้านค้าผู้สร้าง

    Toolbox toggle button in Studio
  2. ให้แน่ใจว่า รุ่น การเรียงลำดับเลือกแล้วคลิกปุ่ม ดูทั้งหมด สําหรับ หมวดหมู่

  3. ค้นหาและคลิกที่ โมดูลการพัฒนา รายการ

  4. ค้นหาโมดูล แผงภาพ และคลิกหรือลากไปยัง 3D มุมมอง

  5. ใน หน้าต่าง Explorer ให้ย้ายรุ่น โต๊ะถ่ายภาพ ทั้งหมดไปยัง ServerScriptService เมื่อเริ่มใช้ประสบการณ์จะเริ่มแผนการและเริ่มทำงาน

การวางตำแหน่งบูธ

โมดูลมาพร้อมกับโมเดล PhotoBooth ที่คุณสามารถวางในโลก 3D ได้ โมเดลนี้คือสิ่งที่ผู้เล่นจะใช้เพื่อตั้งค่าภาพ

  1. ค้นหา โพโด บูธภายในโฟลเดอร์ พื้นที่ทํางาน ของโมดูลหลัก

  2. ย้ายมันไปยังระดับการจัดการ Workspace และตำแหน่งมันที่ต้องการ

การกำหนดค่า

โมดูลถูกกำหนดให้ทำงานสำหรับกรณีใช้งานส่วนใหญ่ แต่สามารถปรับแต่งได้โดยง่ายผ่านฟังก์ชัน กำหนด โดยเฉพาะ เช่นการเปลี่ยนข้อความเริ่มต้นในด้านล่างของภาพ:

  1. ใน StarterPlayerScripts สร้าง LocalScript ใหม่และเปลี่ยนชื่อมันเป็น ConfigurePhotoBooth

  2. วางรหัสต่อไปนี้ในสคริปต์ใหม่

    สคริปต์ท้องถิ่น - กำหนดค่าโพโดเจมส์

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

การเชื่อมต่อกับเหตุการณ์

ทุกครั้งที่บูธภาพถ่ายแสดงหน้าจอใหม่ให้กับลูกค้าท้องถิ่นจะมีเหตุการณ์ที่ตรงกันเกิดขึ้น เหตุการณ์เหล่านี้สามารถเชื่อมต่อใน LocalScript เพื่อให้คุณสามารถตอบกลับด้วยโลจิกของคุณเอง

สคริปต์ท้องถิ่น

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)

ความโปร่งใสของ GUI

โดยปกติ, บูธภาพถ่ายจะซ่อน Class.ScreenGui|ScreenGuis และ Class.CoreGui|CoreGuis ทั้งหมดเมื่อมีการจัดแสดงภาพ หากคุณต้องการเปลี่ยนการแสดงผลนี้และกำ

สคริปต์ท้องถิ่น

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 = {}
-- สร้าง GUI หน้าจอที่จะไม่ถูกซ่อน
local specialGuiInstance = Instance.new("ScreenGui")
-- วาด GUI หน้าจอข้างบน GUI บูธภาพ
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- ตั้งค่าค่าตัวละครในหน้าจอ GUI เพื่อป้องกันการซ่อน
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- เพิ่มข้อความในชื่อเรื่องให้กับ 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()
-- ซ่อน GUI ผู้พัฒนาทั้งหมดยกเว้นส่วนที่มีลักษณะ
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
-- ซ่อน GUIs เฉพาะ
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- แสดง GUIs จอแสดงผลที่กำหนดโดยผู้พัฒนาทั้งหมดที่ซ่อนอยู่
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- แสดง GUIs เฉพาะที่ซ่อนอยู่
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

อ้างอิง เอกสารอ้างอิงเกี่ยวกับ API

ฟังก์ชัน

กำหนดค่า

กำหนดค่า(คอนฟิก: table )

เปลี่ยนตั้งค่าการกำหนดค่าเริ่มต้นผ่านคีย์ / ค่าต่อไปนี้ในตาราง config หากคุณต้องการให้ฟังก์ชันนี้เรียกได้จาก LocalScript เท่านั้น

กุญแจคำอธิบายเริ่มต้น
frameMessageข้อความที่ปรากฏด้านล่างของภาพ สามารถควบคุมระยะเวลาของมันผ่านสมบัติสมบัติ fadeUiDelayแชร์!”
fadeUiDelayถึงเวลาแสดงข้อความเฟรมก่อนที่จะหายไปในวินาที ตั้งค่าให้เป็นตัวเลขลบเพื่อไม่ให้หายไป3
closeButtonImageรูปภาพที่จะใช้สำหรับปุ่มภาพเรียบร้อย วางบน closeButtonBackgroundImage รูปภาพ“ริบบอนเอสเซ็ตส์ไอดี://7027440823”
closeButtonBackgroundImageรูปภาพพื้นหลังที่จะใช้สำหรับปุ่มปิดภาพ“ริบบอนเอสเซ็ตส์ไอดี://7027440891”
cameraLandscapePositionระยะกล้องของบูธภาพถ่าย ตั้งแต่ด้านหน้าและขึ้นไปของตัวละครเมื่อถ่ายภาพในโหมดภาพบรรยากาศ ( Vector2 )(5, 2)
cameraPortraitPositionระยะกล้องของบูธภาพถ่าย ตั้งแต่ด้านหน้าและขึ้นไปของตัวละครเมื่อถ่ายภาพในโหมดพอร์ตเทรต (Vector2)(10, 1)
countdownFontตัวอักษรที่ใช้สำหรับตัวเลขในการนับถอยหลัง ( Enum.Font )GothamBlack
countdownTextColorสีของตัวเลขในการนับถอยหลัง ( Color3 )[255, 255, 255]
printoutCharacterPositionตําแหน่งของตัวละครบนหน้าจอเมื่อพิมพ์ออกมา ( UDim2 )(0.5, 0, 0.5, 0)
printoutCharacterSizeจำนวนพื้นที่หน้าจอที่ตัวละครใช้ในการพิมพ์ ( UDim2 )(1, 0, 1, 0)
characterAnimationรหัสสินทรัพย์ของอนิเมชันที่ตัวละครในภาพถ่ายหยุดในเฟรมเริ่มต้น“ริบบอนเอสเซ็ตไอดี://6899663224”
filterImageรูปภาพที่จะใช้เป็นตัวกรอง หาก nil จะใช้เป็นรูปภาพเริ่มต้นที่มืดเขตของรูปภาพจะถูกใช้nil
สคริปต์ท้องถิ่น - กำหนดค่าโพโดเจมส์

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

ตั้งค่าพื้นหลัง

ตั้งพื้นหลัง(พื้นหลัง: table )

เปลี่ยนแปลงพื้นหลังเริ่มต้นที่มอบให้โดยโครงการถ่ายภาพ รูปภาพส่วนใหญ่ควรอยู่ที่อัตราส่วนพื้นหลัง 16:9 (1024×768) เพื่อประสบการณ์ที่เหมาะสมและรหัสสินค้าของพวกเขาควรรวม

สคริปต์ท้องถิ่น

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

เหตุการณ์

เริ่มนับถอยหลัง

เกิดขึ้นเมื่อนับถอยหลังเริ่มต้น เหตุการณ์นี้สามารถเชื่อมต่อได้ใน LocalScript เท่านั้น

สคริปต์ท้องถิ่น

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

พิมพ์Shown

เปิดใช้งานเมื่อสรุปผลการพิมพ์แสดงให้ผู้ใช้เห็น เหตุการณ์นี้สามารถเชื่อมต่อได้ใน LocalScript

สคริปต์ท้องถิ่น

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

แสดงตัวอย่าง

เกิดขึ้นเมื่อหน้าจอปิดและปุ่มกล้องปรากฏขึ้นอีกครั้ง เหตุการณ์นี้สามารถเชื่อมต่อได้ใน LocalScript เท่านั้น

สคริปต์ท้องถิ่น

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

คอลแล็ค

ซ่อน OtherGuis

ซ่อนOtherGuis(คืนค่า: function )

คอลลีกนี้จะดำเนินการทันทีก่อนที่จะแสดงผลพิมพ์ ให้คุณปิดการใช้งานของ ScreenGuis รหัส

แสดงOtherGuis

แสดงOtherGuis(คืนค่า: function )

คือเรียกตัวเอกชันนี้จะดำเนินการหลังจากที่พิมพ์ออกถูกปิด ให้คุณสามารถเปิดให้ใช้ ScreenGuis หรือส่วนหนึ่งภายในนั้น การใช้งาน GUIs โดย