포토 부스

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

사진을 찍는 것은 훌륭한 경험을 기념하는 완벽한 방법입니다. PhotoBooth 개발자 모듈은 플레이어가 경험을 대표하는 배경과 함께 독특한 포즈를 취할 수 있도록 해주는 사용하기 쉬운 사진 촬영 도구입니다.

모듈 사용법

설치

경험에서 PhotoBooth 모듈을 사용하려면:

  1. 스튜디오의 메뉴 또는 탭 도구 모음에서 툴박스를 열고 크리에이터 상점 탭을 선택합니다.

  2. 모델 정렬이 선택되었는지 확인한 후 카테고리모두 보기 버튼을 클릭합니다.

  3. 패키지 타일을 찾고 클릭합니다.

  4. Photo Booth 모듈을 찾아 클릭하거나 3D 뷰로 끌어서 놓습니다.

  5. 탐색기 창에서 전체 PhotoBooth 모델을 ReplicatedStorage로 이동합니다. 경험을 실행하면 모듈이 실행되기 시작합니다.

부스 위치 조정

모듈에는 3D 세계에서 위치를 조정할 수 있는 하나의 PhotoBooth 모델이 포함되어 있습니다. 이 모델은 플레이어가 사진을 설정할 때 상호작용하는 요소입니다.

  1. 모듈의 기본 폴더에 있는 Workspace 폴더에서 PhotoBooth 메쉬를 찾습니다.

  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 가시성

기본적으로, 포토 부스는 사진이 촬영될 때 모든 ScreenGuisCoreGuis를 숨깁니다. 이 자동 숨김 동작을 무시하고 프로그래밍적으로 어떤 GUI가 보이게 할지 결정하려면, hideOtherGuisshowOtherGuis 콜백을 포함하고 자신의 사용자 정의 로직에 응답해야 합니다.

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
-- скрыть заставку
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)

다음 키/값을 통해 기본 구성 옵션을 재정의합니다. 이 함수는 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)
characterAnimation사진에서 캐릭터가 사용하는 애니메이션의 자산 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)

이 콜백은 인쇄물이 표시되기 직전에 실행되어, 인쇄물이 표시되기 전에 전체 ScreenGuis 또는 해당 요소를 비활성화할 수 있습니다. 포토 부스에서 사용되는 GUI는 ShowInPhotoBooth 속성이 true로 설정되어 있습니다. GUI 가시성에서 자세한 내용과 샘플 코드를 확인하세요.

showOtherGuis

showOtherGuis(callback: function)

이 콜백은 인쇄물이 닫힌 후 실행되어 전체 ScreenGuis 또는 해당 요소를 다시 활성화할 수 있습니다. 포토 부스에서 사용되는 GUI는 ShowInPhotoBooth 속성이 true로 설정되어 있습니다. GUI 가시성에서 자세한 내용과 샘플 코드를 확인하세요.

©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.