포토 부스

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

사진 찍기는 훌륭한 경험을 기념하는 완벽한 방법입니다. 포토 부스 개발자 모듈은 플레이어가 경험을 대표하는 배경과 함께 독특한 포즈를 취할 수 있는 쉬운 사진 스테이지 도구입니다.

모듈 사용

설치

경험에서 포토 부스 모듈을 사용하려면:

  1. 보기 탭에서 도구 상자를 엽니다. 그리고 크리에이터 스토어 탭을 선택합니다.

    Toolbox toggle button in Studio
  2. 모델 정렬을 선택한 다음 모두 보기 버튼을 클릭하여 범주 에 대한 전체 보기를 클릭하십시오.

  3. 찾아 클릭하십시오 개발자 모듈 타일.

  4. 포토 부스 모듈을 찾아 클릭하거나 3D 뷰에 드래그 앤 드롭하세요.

  5. In the 탐색기 창에서 전체 포토부스 모델을 서버스크립트 서비스 에 배포합니다. 경험을 실행할 때 모듈은 다양한 서비스에 배포되고 실행을 시작합니다.

부스 배치

이 모듈에는 3D 세계에 배치할 수 있는 하나의 포토부스 모델이 포함되어 있습니다. 이 모델은 플레이어가 포토를 설정하는 데 대화를 나눕니다.

  1. 모듈의 메인 폴더 내 포토 부스 메쉬를 찾습니다.

  2. 최상위 수준의 작업 공간 계층에 이동하고 원하는 위치에 배치하십시오.

구성

모듈은 대부분의 사용 사례에 대해 미리 구성되지만, 구성 함수를 통해 쉽게 사용자 정의할 수 있습니다. 예를 들어, 사진 하단에 있는 기본 메시지를 변경하려면:

  1. In StarterPlayerScripts , create a new LocalScript and rename it to ConfigurePhotoBooth .

  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)

버튼 표시

기본적으로 포토 부스는 모든 ScreenGuisCoreGuis 를 포토 스테이지에서 숨기고 모든 사진을 표시할 때 Class.CoreGui|CoreGuis 를 포함하여 프로그래밍 방식으로 다른

로컬 스크립트

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 참조

함수

구성

구성(구성: table )

Class.LocalScript 테이블의 다음 키/값을 통해 기본 구성 옵션을 재정의합니다. 이 함수는 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
로컬 스크립트 - 포토 부스 구성

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),
})

배경 설정

setBackgrounds(백그라운드: 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 에만 연결할 수 있습니다.

로컬 스크립트

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

출력 표시

사용자에게 인쇄 출력이 표시될 때 이벤트가 발생합니다. 이 이벤트는 LocalScript 에만 연결될 수 있습니다.

로컬 스크립트

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

프롬프트 표시

프린트아웃이 닫힌 후 카메라 버튼이 다시 표시되면 이 이벤트는 LocalScript 에만 연결할 수 있습니다.

로컬 스크립트

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

콜백

기타 가이드 숨기기

OtherGuis( callback: function ) 숨기기

이 콜백은 프린트아웃이 표시되기 전에 즉시 실행되므로 프린트아웃이 표시되기 전에 전체 ScreenGuis 또는 요소 내의 모든 요소를 코드수 있습니다. 사진 부스에서 사용하는 GUI는 ShowInPhotoBooth</

기타 가이드 표시

showOtherGuis(콜백: function )

이 콜백은 프린트아웃이 닫힌 후에 실행되므로 전체 ScreenGuis 또는 요소 내의 모든 GUIs를 다시 활성화할 수 있습니다. 사진 부스에서 사용하는 GUI는 ShowInPhotoBooth 특성을 설정하여 true 입니다. 자