บูธถ่ายรูป

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

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

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

การติดตั้ง

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

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

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

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

  4. ค้นหาโมดูล บูธถ่ายภาพ และคลิกหรือวางลงในมุมมอง 3D

  5. ในหน้าต่าง สํารวจ ย้ายรูปแบบ PhotoBooth ทั้งหมดไปยัง ServerScriptService เมื่อเรียกใช้ประสบการณ์แล้ว โมดูลจะแจกจ่ายตัวเองไปยังบริการต่างๆ และเริ่มทำงาน

ตำแหน่งบูธ

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

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

  2. ย้ายไปยังชั้นสูงสุดของ พื้นที่ทำงาน และตำแหน่งที่ต้องการ

การกำหนดค่า

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

  1. ใน StarterPlayerScripts สร้างใหม่ LocalScript และเปลี่ยนชื่อเป็น กำหนดค่าบูธภาพ

  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

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

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

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
-- ซ่อน 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

ฟังก์ชัน

กำหนดค่า

กำหนดค่า (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)
characterAnimationID สินทรัพย์ของแอนิเมชั่นที่ตัวละครใช้ในภาพ หยุดชั่วคราวที่เฟรมเริ่มต้น“rbxassetid://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) เพื่อประสบการณ์ที่ดีที่สุดและรหัสสินค้าของพวกเขาควรรวมอยู่ในคลังภาพพื้นหลังสามารถให้พื้นหลัง 1–4 (รวม) ได้

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

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

อีเวนต์

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

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

สคริปท์ท้องถิ่น' hightlight='5-7

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

พิมพ์ออกแสดง

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

สคริปท์ท้องถิ่น' hightlight='5-7

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

แสดงทันที

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

สคริปท์ท้องถิ่น' 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)

การโทรกลับ

ซ่อน OtherGuis

ซ่อน OtherGuis(callback: function )

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

แสดง OtherGuis

แสดง OtherGuis(callback: function )

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