셀카 모드

플레이어들은 이미 체험 속의 즐거운 순간을 기념하기 위해 스크린샷을 찍고 있습니다. SelfieMode 개발자 모듈을 사용하면 필터 효과, 다른 캐릭터 숨기기, 포즈가 지원되어 순간의 기억을 채팅 창이나 플레이어 목록 창 없이 더 깔끔하게 캡처할 수 있습니다.

모듈 사용

설치

체험에서 SelfieMode 모듈을 사용하려면:

  1. 보기 탭에서 도구 상자를 열고 마켓플레이스 탭을 선택합니다.

    Studio의 도구상자 토글 버튼
  2. 모델 정렬이 선택되었는지 확인한 다음 카테고리에서 모두 보기 버튼을 클릭합니다.

  3. DEV MODULES 타일을 찾아 클릭합니다.

  4. Selfie Mode 모듈을 찾아 클릭하거나 3D 보기로 끌어다 놓습니다.

  5. 탐색기 창에서 전체 SelfieMode 모델을 ServerScriptService로 이동시킵니다. 체험을 실행하면 모듈이 다양한 서비스에 배포되고 실행되기 시작합니다.

구성

이러한 모듈은 대부분의 사용 사례에서 작동하도록 미리 구성되어 있지만, 구성 함수를 통해 쉽게 사용자 지정할 수 있습니다.

  1. StarterPlayerScripts에서 새 LocalScript을(를) 생성하고 ConfigureSelfieMode로 이름을 바꿉니다.

  2. 새로운 스크립트에 다음의 코드를 붙여 넣습니다.

    LocalScript - ConfigureSelfieMode

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
    SelfieMode.configure({
    disableCharacterMovement = true
    })

캐릭터 이동

Selfie Mode에서는 플레이어의 캐릭터가 움직이지 않도록 하는 것이 유리합니다. 구성 호출에서 disableCharacterMovement을(를) 참으로 설정하여 이를 달성할 수 있습니다.

LocalScript - ConfigureSelfieMode

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.configure({
disableCharacterMovement = true
})

Selfie Mode 액션

SelfieMode는 다음 액션들과 함께 제공되며, 각 액션은 activateAction, deactivateAction , toggleAction 함수와 함께 사용하거나 actionActivatedactionDeactivated 이벤트를 통해 감지할 수 있습니다.

필드 깊이

기본적으로 SelfieMode는 플레이어가 액션을 토글할 때 일반 피사계 심도 효과(미묘한 배경 흐림 효과)를 표현합니다.

끄기
켜기

기본 피사계 심도 효과를 변경하려면 구성 호출에서 depthOfFieldEffect을(를) 자신의 DepthOfFieldEffect 인스턴스로 설정하십시오.

LocalScript - ConfigureSelfieMode

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local customDepthOfField = Instance.new("DepthOfFieldEffect")
customDepthOfField.NearIntensity = 0
customDepthOfField.FarIntensity = 1
customDepthOfField.FocusDistance = 5
customDepthOfField.InFocusRadius = 5
SelfieMode.configure({
depthOfFieldEffect = customDepthOfField
})

시선 잠금

시선 고정 토글은 플레이어의 캐릭터가 셀카 포즈를 취하는 동안 고개를 돌릴 수 있는 현실적인 범위 내에서 카메라를 바라보게 합니다.

다른 캐릭터 숨김

기본적으로는 플레이어의 캐릭터와 함께 다른 캐릭터가 표시됩니다. 플레이어는 **다른 캐릭터 숨김 **버튼을 클릭하여 완벽한 단독 샷을 찍을 수 있습니다. 이를 켜면 다른 캐릭터가 시야에서 사라지고, 액션이 꺼질 때까지 보이지 않습니다.

필터

필터 액션을 통해 플레이어는 Pop, Soft, Antique, Cute, Dramatic, Monochrome 등의 옵션으로 미리 설정된 필터를 적용할 수 있습니다.

소프트
드라미틱
모노크롬

포즈

포즈 액션을 통해 플레이어는 Cheer, Clapping, Dolphin, Flossing, Guitar, Jump Wave, Louder, Top Rock, TwirlWave 등의 옵션으로 미리 설정된 포즈를 선택할 수 있습니다.

플로스
더 크게
빙글빙글

API 참조

유형

액션

각 액션은 다음과 같이 키와 값의 쌍으로 이루어진 용어집으로 표시됩니다.

유형설명
name문자열툴팁에서 첫 번째로 표시되는 액션의 이름.
description문자열도구 설명에서 이름 뒤에 표시되는 액션에 대한 설명.
icon문자열액션 아이콘의 자산 ID.
activeIcon문자열'활성' 상태의 액션 아이콘에 대한 자산 ID. 하위 액션이 아닌 상위 액션에만 사용할 수 있습니다.
actions테이블하위 액션의 선택적 목록. 이를 통해 다양한 기타 액션의 하위 메뉴를 만들 수 있습니다.
parent액션부모 액션. 이는 하위 액션에만 해당되며, 하위 액션을 포함하는 액션을 가리킵니다.
onActivated함수플레이어가 액션 또는 하위 액션을 활성화할 때 실행되는 선택적 콜백 함수입니다. 일반적으로 액션에 하위 액션이 포함된 경우 정의된 콜백은 하위 액션에만 필요하며, 이는 플레이어가 하위 액션을 활성화했고 이를 단순히 부모 액션까지 '확장'시키지 않았다는 것을 알기 위한 수단으로 작용합니다.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)

열거형

SelfieMode.Action

SelfieMode에는 몇 가지 액션이 있습니다. activateAction, deactivateAction , toggleAction 함수와 함께 이러한 열거형을 사용할 수 있습니다.

이름요약
DepthOfField피사계 심도 액션에 대한 참조.
LockGaze시선 고정 액션에 대한 참조.
HideOthers다른 사용자 숨기기 액션에 대한 참조.
Filter필터 액션에 대한 참조.
Pose포즈 액션에 대한 참조.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
-- Activate "Filter" action
SelfieMode.activateAction(SelfieMode.Action.Filter)

함수

구성

구성(config:table)

config 테이블의 다음 키/값을 통해 기본 구성 옵션을 무효화합니다. 해당 함수는 LocalScript에서만 호출할 수 있습니다.

설명기본
disableCharacterMovement참인 경우, Selfie Mode가 열려 있는 동안 캐릭터가 움직이지 않도록 합니다.false
depthOfFieldEffect플레이어가 피사계 ](#depth-of-field)심도 [작업을 토글할 때 나타나는 선택적 사용자 지정 인DepthOfFieldEffect스턴스입니다.
LocalScript - ConfigureSelfieMode

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.configure({
disableCharacterMovement = true
})

openSelfieMode

openSelfieMode()

플레이어는 일반적으로 화면 오른쪽에 있는 '카메라' 버튼으로 Selfie Mode를 열지만, 해당 함수를 사용하면 코드를 통해 열 수 있습니다. 아래와 같이 커스텀 버튼을 구현하는 경우, setHudButtonEnabled를 통해 기본 버튼을 비활성화해야 합니다. 해당 함수는 LocalScript에서만 호출할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local button = script.Parent
-- Remove the default button
SelfieMode.setHudButtonEnabled(false)
-- Connect the custom button
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)

closeSelfieMode

closeSelfieMode()

플레이어는 일반적으로 화면 하단의 버튼으로 Selfie Mode를 닫지만, 해당 함수를 사용하면 코드를 통해 닫을 수 있습니다. LocalScript에서만 호출할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.closeSelfieMode()

isSelfieModeOpen

isSelfieModeOpen():boolean

플레이어 액션의 결과 또는 openSelfieMode를 통해 Selfie Mode가 열려 있으면 true을(를) 반환합니다. 해당 함수는 LocalScript에서만 호출할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.openSelfieMode()
print(SelfieMode.isSelfieModeOpen())

setHudButtonEnabled

setHudButtonEnabled()

Selfie Mode로 들어가는 기본 버튼 표시 여부를 설정합니다. 사용자 정의 UI 버튼을 통해 openSelfieMode를 구현할 때 유용합니다. 해당 함수는 LocalScript에서만 호출할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local button = script.Parent
-- Remove the default button
SelfieMode.setHudButtonEnabled(false)
-- Connect the custom button
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)

getAction

getAction(action:SelfieMode.Action):Action

SelfieMode.Action 열거형을 통해 액션 유형을 가져옵니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)

activateAction

activateAction(action:SelfieMode.Action)

프로그래밍 방식으로 기본 액션 중 하나를 활성화합니다. 이는 플레이어가 액션 표시줄에서 액션을 켤 때와 동일합니다. LocalScript에서만 호출할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
-- Activate "Filter" action
SelfieMode.activateAction(SelfieMode.Action.Filter)

deactivateAction

deactivateAction(action:SelfieMode.Action)

프로그래밍 방식으로 기본 액션 중 하나를 비활성화합니다. 이는 플레이어가 액션 바에서 액션을 토글할 때와 동일합니다. LocalScript에서만 호출할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
-- Deactivate "Filter" action
SelfieMode.deactivateAction(SelfieMode.Action.Filter)

toggleAction

toggleAction(action:SelfieMode.Action):boolean

액션이 꺼져 있으면 토글을 켜고, 켜져 있으면 토글을 끕니다. 이는 플레이어가 액션 바에서 액션을 클릭할 때와 동일합니다. 새로운 '토글 켜짐' 상태를 부울로 되돌립니다. LocalScript에서만 호출할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
local isEnabled = SelfieMode.toggleAction(lockGazeAction)
if isEnabled then
print("Activated", lockGazeAction.name)
else
print("Deactivated", lockGazeAction.name)
end

setTheme

setTheme(theme:table)

텍스트 크기, 글꼴, 버튼/도구 설명 색상 등 Selfie Mode 테마를 구성합니다. 해당 함수는 LocalScript에서만 호출할 수 있습니다.

일반

설명기본
textSize전체 텍스트의 크기.15
font모든 UI에서 사용되는 글꼴(Enum.Font).GothamMedium
paddingUI 요소를 배치하는 데 사용되는 기본 패딩(UDim).(0, 12)
paddingSmall요소 사이에 미묘한 여백을 적용하는 데 사용되는 더 작은 패딩(UDim).(0, 6)
paddingScreenSelfie Mode에 약간의 여유 공간을 제공하기 위해 화면 가장자리 주변에 사용되는 패딩(UDim).(0, 24)
backgroundColor액션을 표시하는 막대에 사용되는 배경색(Color3).[0, 0, 0]
scrollBarColor모듈의 ScrollingFrame 요소에 사용되는 스크롤 막대의 색상(Color3).[255, 255, 255]

버튼 및 툴팁

설명기본
openButtonBackgroundColorSelfie Mode를 열 때 사용되는 화면 오른쪽 HUD 버튼의 배경색(Color3).[255, 255, 255]
openButtonIconColorHUD 버튼의 카메라 아이콘 색상(Color3).[0, 0, 0]
closeButtonBackgroundColor'닫기' 버튼의 배경색(Color3).[0, 0, 0]
closeButtonIconColor'닫기' 버튼의 아이콘 색상(Color3).[255, 255, 255]
actionButtonBackgroundColor액션 전환에 사용되는 다양한 액션 버튼의 배경색(Color3).[255, 255, 255]
actionButtonIconColor다양한 액션 버튼의 아이콘 색상(Color3).[0, 0, 0]
tooltipBackgroundColor도구 설명 및 알림의 배경색(Color3).[0, 0, 0]
tooltipNameColor툴팁 이름의 텍스트 색상(Color3). 이는 알림의 텍스트 색상으로도 사용됩니다.[255, 255, 255]
tooltipDescriptionColor툴팁 설명의 색상, 툴팁 이름에 초점을 맞추기 위해 약간 흐릿함(Color3). 이는 알림에 사용되지 않습니다.[169, 169, 169]
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.setTheme({
textSize = 20,
font = Enum.Font.Michroma,
backgroundColor = Color3.fromRGB(0, 40, 75),
})

setEnabled

setEnabled(isEnabled:boolean)

Selfie Mode 활성화 여부를 설정합니다. 비활성화되면 모듈의 모든 UI가 제거되고 모든 이벤트가 연결 해제됩니다. 해당 함수는 LocalScript에서만 호출할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.setEnabled(false)

이벤트

selfieModeOpened

selfieModeOpened():RBXScriptSignal

플레이어가 Selfie Mode를 열거나 openSelfieMode가 호출될 때 발동됩니다. 해당 이벤트는 LocalScript에서만 연결할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeOpened:Connect(function()
print("Selfie mode open")
end)

selfieModeClosed

selfieModeClosed():RBXScriptSignal

플레이어가 Selfie Mode를 닫거나 closeSelfieMode가 호출될 때 발동됩니다. 해당 이벤트는 LocalScript에서만 연결할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeClosed:Connect(function()
print("Selfie mode closed")
end)

actionActivated

actionActivated(action:SelfieMode.Action):RBXScriptSignal

기본 액션 또는 하위 액션이 비활성화되었을 때 발동됩니다. 연결된 함수는 비활성화된 Action을 수신합니다. 해당 이벤트는 LocalScript에서만 연결할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)

actionDeactivated

actionDeEnducent(action:SelfieMode.Action):RBXScriptSignal

포즈가 적용되거나 제거될 때 발동됩니다. 연결된 함수는 새 포즈 이름과 이전 포즈 이름을 전달 받습니다. 해당 이벤트는 LocalScript에서만 연결할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)

filterChanged

filterChanged(newFilter:string, oldFilter:string):RBXScriptSignal

필터가 적용되거나 제거될 때 발동됩니다. 연결된 함수는 새 필터 이름과 이전 필터 이름을 전달 받습니다. 해당 이벤트는 LocalScript에서만 연결할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Filter changed from", oldFilter, "to", newFilter)
end)

poseChanged

poseChanged(newPose:string, oldPose:string):RBXScriptSignal

포즈가 적용되거나 제거될 때 발동됩니다. 연결된 함수는 새 포즈 이름과 이전 포즈 이름을 전달 받습니다. 해당 이벤트는 LocalScript에서만 연결할 수 있습니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("Pose changed from", oldPose, "to", newPose)
end)