사진 찍기는 훌륭한 경험을 기념하는 완벽한 방법입니다. 포토 부스 개발자 모듈은 플레이어가 경험을 대표하는 배경과 함께 독특한 포즈를 취할 수 있는 쉬운 사진 스테이지 도구입니다.
모듈 사용
설치
경험에서 포토 부스 모듈을 사용하려면:
모델 정렬을 선택한 다음 모두 보기 버튼을 클릭하여 범주 에 대한 전체 보기를 클릭하십시오.
찾아 클릭하십시오 개발자 모듈 타일.
포토 부스 모듈을 찾아 클릭하거나 3D 뷰에 드래그 앤 드롭하세요.
In the 탐색기 창에서 전체 포토부스 모델을 서버스크립트 서비스 에 배포합니다. 경험을 실행할 때 모듈은 다양한 서비스에 배포되고 실행을 시작합니다.
부스 배치
이 모듈에는 3D 세계에 배치할 수 있는 하나의 포토부스 모델이 포함되어 있습니다. 이 모델은 플레이어가 포토를 설정하는 데 대화를 나눕니다.
모듈의 메인 폴더 내 포토 부스 메쉬를 찾습니다.
최상위 수준의 작업 공간 계층에 이동하고 원하는 위치에 배치하십시오.
구성
모듈은 대부분의 사용 사례에 대해 미리 구성되지만, 구성 함수를 통해 쉽게 사용자 정의할 수 있습니다. 예를 들어, 사진 하단에 있는 기본 메시지를 변경하려면:
In StarterPlayerScripts , create a new LocalScript and rename it to ConfigurePhotoBooth .
다음 코드를 새 스크립트에 붙여넣습니다.
로컬 스크립트 - 포토 부스 구성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)
버튼 표시
기본적으로 포토 부스는 모든 ScreenGuis 및 CoreGuis 를 포토 스테이지에서 숨기고 모든 사진을 표시할 때 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 참조
함수
구성
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),})
배경 설정
포토 부스에서 제공하는 기본 배경을 재정의합니다. 배경 이미지는 최적의 경험을 위해 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)
콜백
기타 가이드 숨기기
이 콜백은 프린트아웃이 표시되기 전에 즉시 실행되므로 프린트아웃이 표시되기 전에 전체 ScreenGuis 또는 요소 내의 모든 요소를 코드수 있습니다. 사진 부스에서 사용하는 GUI는 ShowInPhotoBooth</
기타 가이드 표시
이 콜백은 프린트아웃이 닫힌 후에 실행되므로 전체 ScreenGuis 또는 요소 내의 모든 GUIs를 다시 활성화할 수 있습니다. 사진 부스에서 사용하는 GUI는 ShowInPhotoBooth 특성을 설정하여 true 입니다. 자