Chụp ảnh là một cách hoàn hảo để ghi lại một trải nghiệm tuyệt vời.Mô-đun PhotoBooth nhà phát triển là một công cụ tạo dáng ảnh dễ sử dụng cho phép người chơi tạo một tư thế độc đáo với một nền đại diện cho trải nghiệm của họ.
Sử dụng module
Cài đặt
Để sử dụng mô-đun PhotoBooth trong một trải nghiệm:
Hãy chắc chắn rằng kiểu sắp xếp Mô hình được chọn, sau đó nhấp vào nút Xem tất cả đối với Danh mục .
Tìm và nhấp vào ô Dev Modules .
Tìm mô-đun Phòng chụp ảnh và nhấp vào nó, hoặc kéo và thả nó vào cửa sổ 3D.
Trong cửa sổ Explorer, di chuyển toàn bộ mô hình PhotoBooth vào ServerScriptService .Sau khi chạy trải nghiệm, mô-đun sẽ phân phối bản thân cho các dịch vụ khác nhau và bắt đầu chạy.
Vị trí gian hàng
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à những gì người chơi sẽ tương tác để thiết lập một bức ảnh.
Tìm mesh PhotoBooth bên trong thư mục Không gian làm việc của thư mục chính của module.
Di chuyển nó vào cấp cao nhất Không gian làm việc và đặt nó ở vị trí mong muốn.
Cài đặt
Mô-đun được cài đặt 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 được tùy chỉnh thông qua chức năng configure.Ví dụ, để thay đổi tin nhắn mặc định ở đáy của bức ảnh:
Trong StarterPlayerScripts , tạo một mới LocalScript và đổi tên thành Cài đặt gian hàng ảnh .
Sao chép mã sau vào kịch bản mới.
LocalScript - Cài đặt PhotoBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
Kết nối với sự kiện
Mỗi khi gian hàng ảnh hiển thị một màn hình mới cho khách hàng địa phương, một sự kiện tương ứng được kích hoạt.Các sự kiện này có thể được kết nối trong một LocalScript để bạn có thể trả lời với logic tùy chỉnh của riêng bạn.
Tập lệnh địa phương
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)
Tầm nhìn GUI
Mặc định, gian hàng ảnh che tất cả ScreenGuis và CoreGuis khi một bức ảnh được dàn dựng.Nếu bạn muốn bỏ qua hành vi ẩn tự động này và quyết định chương trình hóa các GUI nào nên vẫn hiển thị, hãy bao gồm các hideOtherGuis và showOtherGuis cuộc gọi trả lời và trả lời với logic tùy chỉnh của riêng bạn.
Tập lệnh địa phương
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 = {}
-- Tạo một GUI màn hình sẽ không bị ẩn
local specialGuiInstance = Instance.new("ScreenGui")
-- Vẽ giao diện người dùng màn hình phía trên giao diện photo booth
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Đặt thuộc tính trên GUI màn hình để ngăn chặn việc che giấu
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 = "Remains visible when taking a photo"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- Ẩn tất cả các giao diện GUI được định nghĩa bởi nhà phát triển ngoại trừ những giao diện đượ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 thị tất cả các GUI màn hình được định nghĩa bởi nhà phát triển đã được ẩn
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Hiển thị các GUI cốt lõi cụ thể đã được ẩn
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
Tham chiếu API
Chức năng
điều chỉnh
điều chỉnh(config: table )
Thay thế các tùy chọn cấu hình mặc định thông qua các chìa khóa/giá trị sau trong bảng config .Chức năng này chỉ có thể được gọi từ một LocalScript .
Nhân vật chính | Mô tả | Mặc định |
---|---|---|
frameMessage | Tin nhắn được hiển thị ở phía dưới của bức ảnh. Thời lượng của nó có thể được kiểm soát thông 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ẻ!” |
fadeUiDelay | Thời gian để hiển thị tin nhắn khung trước khi nó biến mất, trong vài giây. Đặt thành một số âm để không bao giờ biến mất. | 3 |
closeButtonImage | Hình ảnh để sử dụng cho nút đóng ảnh, được đặt phía trên hình ảnh closeButtonBackgroundImage. | “rbxassetid://7027440823” |
closeButtonBackgroundImage | Hình ảnh nền để sử dụng cho nút ảnh đóng. | “rbxassetid://7027440891” |
cameraLandscapePosition | Khoảng cách của máy ảnh của gian hàng ảnh, ở phía trước và lên từ nhân vật, khi chụp ảnh trong chế độ cảnh quan ( Vector2 ). | (5, 2) |
cameraPortraitPosition | Khoảng cách của máy ảnh của gian hàng ảnh, từ trước và lên từ nhân vật, khi chụp ảnh trong chế độ chân dung ( Vector2 ). | (10, 1) |
countdownFont | Phông chữ để sử dụng cho các số trong thời gian đếm ngược ( Enum.Font ). | GothamBlack |
countdownTextColor | Màu của các số trong thời gian đếm ngược ( Color3 ). | [255, 255, 255] |
printoutCharacterPosition | Vị trí của nhân vật trên màn hình khi in ra ( UDim2 ). | (0.5, 0, 0.5, 0) |
printoutCharacterSize | Số không gian màn hình mà nhân vật chiếm trong bản in ( UDim2 ). | (1, 0, 1, 0) |
characterAnimation | ID tài sản của hoạt hình mà nhân vật nhận được trong bức ảnh, tạm dừng tại khung bắt đầu của nó. | “rbxassetid://6899663224” |
filterImage | Hì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 hình ảnh sẽ được sử dụng. | nil |
LocalScript - Cài đặt PhotoBooth
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),})
thiết lập background
setBackgrounds(backgrounds: table )
Thay thế nền mặc định được cung cấp bởi gian hàng ảnh.Hình nền nên có tỷ lệ khung hình 16:9 (1024×768) để có trải nghiệm tối ưu và ID tài sản của họ nên được bao gồm trong mảng nền.1–4 (bao gồm) nền có thể được cung cấp.
Tập lệnh địa phương
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
Sự kiện
bắt đầu đếm ngược
Bắt lửa khi quá trình đếm ngược bắt đầu. Sự kiện này chỉ có thể được kết nối trong một LocalScript .
Tập lệnh địa phương' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
printoutHiển thị
Bắt lửa khi in ra đượ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 .
Tập lệnh địa phương' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
được hiển thị nhanh
Bắt lửa khi in đóng và nút máy ảnh lại xuất hiện. Sự kiện này chỉ có thể được kết nối trong một LocalScript .
Tập lệnh địa phương' 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)
Các cuộc gọi trở lại
ẩn OtherGuis
ẩnOtherGuis(callback: function )
Cuộc gọi trả lại này chạy ngay lập tức trước khi in ra được hiển thị, cho phép bạn vô hiệu hóa toàn bộ ScreenGuis hoặc các thành phần bên trong chúng trước khi in ra được hiển thị.Các GUI được sử dụng bởi gian hàng ảnh có thuộc tính Hiển thị trong gian hàng ảnh được đặt thành true .Xem Tầm nhìn GUI để có chi tiết và mã mẫu.
hiển thịOtherGuis
hiển thịOtherGuis(callback: function )
Cuộc gọi trả lại này chạy sau khi in đã đóng, cho phép bạn bật lại toàn bộ ScreenGuis hoặc các thành phần bên trong chúng.Các GUI được sử dụng bởi gian hàng ảnh có thuộc tính Hiển thị trong gian hàng ảnh được đặt thành true .Xem Tầm nhìn GUI để có chi tiết và mã mẫu.