บูธถ่ายภาพ

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

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

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

การติดตั้ง

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

  1. จากเมนู หน้าต่าง ของ Studio หรือแถบเครื่องมือในแท็บ หน้าแรก, เปิด Toolbox และเลือกแท็บ Creator Store

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

  3. ค้นหาและคลิกที่ป้าย Packages

  4. ค้นหาโมดูล Photo Booth แล้วคลิก หรือให้ลากแล้ววางลงในมุมมอง 3D

  5. ในหน้าต่าง Explorer, ย้ายโมเดล PhotoBooth ทั้งหมดไปยัง ReplicatedStorage. เมื่อรันประสบการณ์โมดูลจะเริ่มทำงาน

การวางบูธ

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

  1. ค้นหาเมช PhotoBooth ภายในโฟลเดอร์ Workspace ของโฟลเดอร์หลักของโมดูล

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

การกำหนดค่า

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

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

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

    LocalScript - ConfigurePhotoBooth

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
    PhotoBooth.configure({
    frameMessage = "การถ่ายภาพบูธครั้งแรก!",
    })

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

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

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("การนับถอยหลังเริ่มขึ้นแล้ว")
end)
PhotoBooth.printoutShown:Connect(function()
print("การพิมพ์กำลังแสดง")
end)
PhotoBooth.promptShown:Connect(function()
print("กล้องขอให้แสดง")
end)

ความสามารถในการมองเห็น GUI

โดยปกติแล้ว บูธถ่ายภาพจะซ่อน ScreenGuis ทั้งหมดและ CoreGuis เมื่อมีการจัดเตรียมภาพ หากคุณต้องการยกเลิกพฤติกรรมการซ่อนโดยอัตโนมัตินี้และกำหนดว่า GUI ไหนควรจะแสดงอยู่ คุณต้องรวมการเรียก hideOtherGuis และ showOtherGuis และตอบสนองด้วยตรรกะที่กำหนดขึ้นเอง

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 = {}
-- สร้าง 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 = "ยังคงปรากฏอยู่เมื่อถ่ายภาพ"
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
-- ซ่อน GUI หลักเฉพาะ
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- แสดง GUI หน้าจอทั้งหมดที่นักพัฒนากำหนดที่ถูกซ่อน
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- แสดง GUI หลักเฉพาะที่ถูกซ่อน
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

เอกสาร API

ฟังก์ชัน

configure

configure(config: table)

เขียนทับตัวเลือกการกำหนดค่าที่เริ่มต้นผ่านคีย์/ค่าในตาราง config. ฟังก์ชันนี้สามารถเรียกใช้ได้จาก LocalScript เท่านั้น

คีย์คำอธิบายเริ่มต้น
frameMessageข้อความที่จะปรากฏที่ด้านล่างของภาพ มันสามารถควบคุมระยะเวลาได้ผ่านคุณสมบัติ fadeUiDelay "ใช้ของคุณในการถ่ายภาพหน้าจอและแชร์!"
fadeUiDelayระยะเวลาในการแสดงข้อความกรอบก่อนที่จะค่อยๆ หายไป, ในวินาที ตั้งเป็นหมายเลขลบเพื่อไม่ให้หายไป3
closeButtonImageภาพที่ใช้สำหรับปุ่มปิดถ่ายภาพวางไว้ด้านบนภาพ closeButtonBackgroundImage"rbxassetid://7027440823"
closeButtonBackgroundImageภาพพื้นหลังที่ใช้สำหรับปุ่มปิดถ่ายภาพ"rbxassetid://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)
characterAnimationAsset ID ของการเคลื่อนไหวที่ตัวละครใช้ในภาพ ถูกรอที่เฟรมเริ่มต้นของมัน"rbxassetid://6899663224"
filterImageภาพที่ใช้เป็นฟิลเตอร์ที่ทับลงไปบนภาพ หาก nil, จะใช้ฟิลเตอร์เริ่มต้นที่จะทำให้ขอบของภาพมืดลงnil
LocalScript - ConfigurePhotoBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.configure({
frameMessage = "โพสต์ท่าสุดเท่!",
fadeUiDelay = 5,
maxActivationDistance = 5,
printoutCharacterSize = UDim2.fromScale(1.5, 1.5),
})

setBackgrounds

setBackgrounds(backgrounds: table)

เขียนทับพื้นหลังเริ่มต้นที่จัดเตรียมไว้โดยบูธถ่ายภาพ รูปภาพพื้นหลังควรมีอัตราส่วน 16:9 (1024×576) สำหรับประสบการณ์ที่ดีที่สุดและ ID ของสินทรัพย์ควรรวมอยู่ในอาร์เรย์พื้นหลัง สามารถให้พื้นหลังได้ 1–4 (รวมเป็น)

LocalScript

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

เหตุการณ์

countdownStarted

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

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("การนับถอยหลังเริ่มต้นแล้ว")
end)

printoutShown

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

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.printoutShown:Connect(function()
print("กำลังแสดงการพิมพ์")
end)

promptShown

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

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.promptShown:Connect(function()
print("กล้องขอให้แสดง")
end)

การเรียกกลับ

hideOtherGuis

hideOtherGuis(callback: function)

การเรียกกลับนี้จะทำงานทันทีที่การพิมพ์ปรากฏให้เห็น ทำให้คุณปิด GUI ScreenGuis หรือองค์ประกอบภายในก่อนที่การพิมพ์จะปรากฏ GUI ที่ใช้โดยบูธถ่ายภาพมีแอตทริบิวต์ ShowInPhotoBooth ถูกตั้งค่าเป็น true ดูรายละเอียดและตัวอย่างโค้ดใน GUI Visibility.

showOtherGuis

showOtherGuis(callback: function)

การเรียกกลับนี้จะทำงานหลังจากการพิมพ์ถูกปิด ทำให้คุณเปิดใช้งาน GUI ScreenGuis หรือองค์ประกอบภายในได้อีกครั้ง GUI ที่ใช้โดยบูธถ่ายภาพมีแอตทริบิวต์ ShowInPhotoBooth ถูกตั้งค่าเป็น true ดูรายละเอียดและตัวอย่างโค้ดใน GUI Visibility.

©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ