Photo Booth

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Chụp ảnh là cách hoàn hảo để kỷ niệm một trải nghiệm tuyệt vời. Mô-đun PhotoBooth mô-đun phát triển là một công cụ tạo ảnh dễ sử dụng, cho phép người chơi tạo dáng độc đáo với một phông nền đại diện cho trải nghiệm của họ.

Cách sử dụng mô-đun

Cài đặt

Để sử dụng mô-đun PhotoBooth trong một trải nghiệm:

  1. Từ menu Cửa sổ của Studio hoặc thanh công cụ tab Trang chính, mở Hộp công cụ và chọn tab Cửa hàng của nhà phát triển.

  2. Đảm bảo rằng bạn đã chọn sắp xếp Mô hình, sau đó nhấn nút Xem Tất cả cho Danh mục.

  3. Tìm kiếm và nhấp vào ô Gói.

  4. Tìm mô-đun Photo Booth và nhấp vào nó, hoặc kéo và thả nó vào chế độ xem 3D.

  5. Trong cửa sổ Explorer, di chuyển toàn bộ mô hình PhotoBooth vào ReplicatedStorage. Khi chạy trải nghiệm, mô-đun sẽ bắt đầu hoạt động.

Đặt vị trí khu vực chụp ảnh

Mô-đun đi kèm với một mô hình PhotoBooth mà bạn có thể đặt trong thế giới 3D. Mô hình này là thứ mà người chơi sẽ tương tác để thiết lập việc chụp ảnh.

  1. Tìm kiếm mô hình PhotoBooth trong thư mục Workspace của thư mục chính của mô-đun.

  2. Di chuyển nó vào cấu trúc thư mục Workspace cấp cao nhất và đặt nó ở vị trí mong muốn.

Cấu hình

Mô-đun được cấu hình sẵn để hoạt động cho hầu hết các trường hợp sử dụng, nhưng nó có thể dễ dàng tùy chỉnh thông qua hàm configure. Ví dụ, để thay đổi thông điệp mặc định ở dưới cùng của bức ảnh:

  1. Trong StarterPlayerScripts, tạo một LocalScript mới và đổi tên nó thành ConfigurePhotoBooth.

  2. Dán mã sau vào trong script mới.

    LocalScript - ConfigurePhotoBooth

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
    PhotoBooth.configure({
    frameMessage = "Bức ảnh chụp đầu tiên!",
    })

Kết nối với sự kiện

Mỗi khi khu vực chụp ảnh hiển thị một màn hình mới cho một khách hàng địa phương, một sự kiện tương ứng sẽ được kích hoạt. Những sự kiện này có thể được kết nối trong một LocalScript để bạn có thể phản hồi bằng logic tùy chỉnh của riêng mình.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("Đếm ngược đã bắt đầu")
end)
PhotoBooth.printoutShown:Connect(function()
print("Bản in đang hiển thị")
end)
PhotoBooth.promptShown:Connect(function()
print("Yêu cầu camera đang hiển thị")
end)

Tính năng hiển thị GUI

Theo mặc định, khu vực chụp ảnh ẩn tất cả các ScreenGuisCoreGuis khi một bức ảnh được thiết lập. Nếu bạn muốn ghi đè hành vi tự động ẩn này và quyết định bằng lập trình cái nào GUIs nên giữ lại sự hiển thị, hãy bao gồm các callback hideOtherGuisshowOtherGuis và phản hồi bằng logic tùy chỉnh của riêng bạn.

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 = {}
-- Tạo một biến thể GUI mà không bị ẩn
local specialGuiInstance = Instance.new("ScreenGui")
-- Đặt GUI màn hình lên trên GUI khu vực chụp ảnh
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Đặt thuộc tính trên GUI màn hình để ngăn việc ẩn
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Thêm nhãn văn bản vào GUI
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "Vẫn hiển thị khi chụp ảnh"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- Ẩn tất cả GUI màn hình do nhà phát triển xác định ngoại trừ những cái được đánh dấu bằng thuộc tính
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
-- Ẩn các GUI cốt lõi cụ thể
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Hiện tất cả GUI màn hình do nhà phát triển xác định bị ẩn
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Hiện các GUI cốt lõi cụ thể đã bị ẩn
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

Tham khảo API

Hàm

configure

configure(config: table)

Ghi đè các tùy chọn cấu hình mặc định thông qua các khóa/giá trị sau trong bảng config. Hàm này chỉ có thể được gọi từ một LocalScript.

KhóaMô tảMặc định
frameMessageThông điệp hiển thị ở dưới cùng của bức ảnh. Thời gian hiển thị của nó có thể được điều khiển qua thuộc tính fadeUiDelay."Sử dụng thiết bị của bạn để chụp ảnh màn hình và chia sẻ!"
fadeUiDelayThời gian hiển thị thông điệp khung trước khi nó biến mất, tính bằng giây. Đặt thành số âm để không bao giờ biến mất.3
closeButtonImageHình ảnh được sử dụng cho nút đóng bức ảnh, được đặt lên trên hình ảnh closeButtonBackgroundImage."rbxassetid://7027440823"
closeButtonBackgroundImageHình ảnh nền để sử dụng cho nút đóng bức ảnh."rbxassetid://7027440891"
cameraLandscapePositionKhoảng cách của camera khu vực chụp ảnh, ở phía trước và cao hơn từ nhân vật, khi chụp ảnh theo chế độ phong cảnh (Vector2).(5, 2)
cameraPortraitPositionKhoảng cách của camera khu vực chụp ảnh, ở phía trước và cao hơn từ nhân vật, khi chụp ảnh theo chế độ chân dung (Vector2).(10, 1)
countdownFontFont để sử dụng cho các số trong đồng hồ đếm ngược (Enum.Font).GothamBlack
countdownTextColorMàu của các số trong đồng hồ đếm ngược (Color3).[255, 255, 255]
printoutCharacterPositionVị trí của nhân vật trên màn hình khi bản in đang hiển thị (UDim2).(0.5, 0, 0.5, 0)
printoutCharacterSizeKhối lượng không gian màn hình mà nhân vật chiếm trong bản in (UDim2).(1, 0, 1, 0)
characterAnimationID tài sản của hoạt ảnh mà nhân vật thực hiện trong bức ảnh, dừng lại ở khung bắt đầu của nó."rbxassetid://6899663224"
filterImageHình ảnh áp dụng lên bức ảnh như một bộ lọc. Nếu nil, một bộ lọc mặc định làm tối các cạnh của hình ảnh sẽ được sử dụng.nil
LocalScript - ConfigurePhotoBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.configure({
frameMessage = "Thật là một dáng vẻ tuyệt vời!",
fadeUiDelay = 5,
maxActivationDistance = 5,
printoutCharacterSize = UDim2.fromScale(1.5, 1.5),
})

setBackgrounds

setBackgrounds(backgrounds: table)

Ghi đè các phông nền mặc định được cung cấp bởi khu vực chụp ảnh. Hình ảnh phông nền nên có tỷ lệ 16:9 (1024×576) để có trải nghiệm tối ưu và ID tài sản của chúng nên được bao gồm trong mảng phông nền. Có thể cung cấp từ 1 đến 4 phông nền (bao gồm).

LocalScript

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

Sự kiện

countdownStarted

Kích hoạt khi đồng hồ đếm ngược bắt đầu. Sự kiện này chỉ có thể được kết nối trong một LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("Đếm ngược đã bắt đầu")
end)

printoutShown

Kích hoạt khi bản in được hiển thị cho người dùng. Sự kiện này chỉ có thể được kết nối trong một LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.printoutShown:Connect(function()
print("Bản in đang hiển thị")
end)

promptShown

Kích hoạt khi bản in bị đóng và nút camera lại hiển thị. Sự kiện này chỉ có thể được kết nối trong một LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.promptShown:Connect(function()
print("Yêu cầu camera đang hiển thị")
end)

Callbacks

hideOtherGuis

hideOtherGuis(callback: function)

Callback này chạy ngay trước khi bản in được hiển thị, cho phép bạn vô hiệu hóa toàn bộ ScreenGuis hoặc các phần tử bên trong chúng trước khi bản in được hiển thị. Các GUI được sử dụng bởi khu vực chụp ảnh có thuộc tính ShowInPhotoBooth được đặt thành true. Xem Tính năng hiển thị GUI để biết chi tiết và mã ví dụ.

showOtherGuis

showOtherGuis(callback: function)

Callback này chạy sau khi bản in đã được đóng, cho phép bạn bật lại toàn bộ ScreenGuis hoặc các phần tử bên trong chúng. Các GUI được sử dụng bởi khu vực chụp ảnh có thuộc tính ShowInPhotoBooth được đặt thành true. Xem Tính năng hiển thị GUI để biết chi tiết và mã ví dụ.

©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.