플레이어는 이미 경험의 즐거운 순간을 기념하기 위해 스크린샷을 찍고 있습니다. SelfieMode 개발자 모듈은 플레이어가 채팅 창이나 플레이어 목록 없이 그 순간의 더 깔끔한 기억을 캡처할 수 있도록 하며, 필터 효과, 다른 캐릭터 숨기기, 포즈 지원 기능도 제공합니다.
모듈 사용법
설치
셀카 모드를 경험에서 사용하려면:
스튜디오의 윈도우 메뉴 또는 홈 탭 툴바에서 툴박스를 열고 크리에이터 상점 탭을 선택합니다.

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

패키지 타일을 찾아 클릭합니다.
셀카 모드 모듈을 찾아 클릭하거나 3D 뷰로 드래그 앤 드롭합니다.

탐색기 창에서 SelfieMode 패키지를 ReplicatedStorage로 이동합니다. 경험을 실행하면 모듈이 실행되기 시작합니다.
구성
모듈은 대부분의 사용 사례에 적합하도록 미리 구성되어 있지만, configure 함수를 통해 쉽게 사용자 정의할 수 있습니다.
StarterPlayerScripts에서 새 LocalScript를 만들고 이름을 ConfigureSelfieMode로 변경합니다.
새 스크립트에 다음 코드를 붙여넣습니다.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
캐릭터 이동
셀카 모드에 있는 동안 플레이어의 캐릭터가 움직이지 않도록 방지하는 것이 유리할 수 있습니다. 이는 configure 호출에서 disableCharacterMovement를 true로 설정하여 달성할 수 있습니다.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
셀카 모드 액션
SelfieMode는 다음 액션을 포함하고 있으며, 각 액션은 activateAction, deactivateAction, toggleAction 함수와 함께 사용하거나 actionActivated 및 actionDeactivated 이벤트를 통해 감지할 수 있습니다.
피사계 심도
기본적으로 SelfieMode는 사용자가 액션을 전환할 때 일반적인 피사계 심도 효과(배경의 미세한 흐림)를 제공합니다.

기본 피사계 심도 효과를 변경하려면 configure 호출에서 depthOfFieldEffect를 자신의 DepthOfFieldEffect 인스턴스로 설정합니다.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local customDepthOfField = Instance.new("DepthOfFieldEffect")customDepthOfField.NearIntensity = 0customDepthOfField.FarIntensity = 1customDepthOfField.FocusDistance = 5customDepthOfField.InFocusRadius = 5SelfieMode.configure({depthOfFieldEffect = customDepthOfField})
시선 고정
시선 고정 토글은 셀카 포즈를 설정할 때 플레이어의 캐릭터가 카메라를 바라보도록 합니다. 이는 목이 얼마나 회전할 수 있는지에 대한 현실적인 범위 내에서 이루어집니다.
다른 캐릭터 숨기기
기본적으로 다른 캐릭터는 플레이어의 캐릭터와 함께 보입니다. 플레이어는 다른 캐릭터 숨기기 버튼을 클릭하여 완벽한 솔로 샷을 얻을 수 있습니다. 토글이 켜지면 다른 캐릭터는 서서히 사라지고 이 액션이 꺼질 때까지 보이지 않습니다.
필터
필터 액션을 통해 플레이어는 팝, 부드러움, 앤티크, 귀여움, 드라마틱, 모노크롬 옵션 중 하나에서 미리 설정된 필터를 적용할 수 있습니다.

포즈
포즈 액션을 통해 플레이어는 응원, 손뼉치기, 돌고래, 플로싱, 기타, 점프 파도, 더 크게, 탑 록, 회전, 손 흔들기 옵션 중 하나에서 미리 설정된 포즈를 선택할 수 있습니다.

API 참조
유형
액션
각 액션은 다음 키-값 쌍을 가진 사전으로 표현됩니다:
| 키 | 유형 | 설명 |
|---|---|---|
| name | string | 액션의 이름으로, 툴팁에서 처음으로 표시됩니다. |
| description | string | 액션의 설명으로, 툴팁의 이름 뒤에 표시됩니다. |
| icon | string | 액션 아이콘의 자산 ID입니다. |
| activeIcon | string | 액션의 "활성" 상태 아이콘의 자산 ID입니다. 부모 액션에 대해서만 사용할 수 있으며, 하위 액션에는 사용할 수 없습니다. |
| actions | table | 선택적 하위 액션 목록입니다. 이를 통해 다양한 다른 액션의 하위 메뉴를 생성할 수 있습니다. |
| parent | Action | 액션의 부모로, 이는 하위 액션에만 해당하며 이를 포함하는 액션을 가리킵니다. |
| onActivated | function | 선택적 콜백 함수로, 플레이어가 액션이나 하위 액션을 활성화할 때 실행됩니다. 일반적으로 액션에 하위 액션이 포함된 경우, 하위 액션만 콜백을 정의해야 하며, 이는 플레이어가 하위 액션을 활성화한 것이지 단순히 부모 액션을 "확장"한 것이 아님을 아는 방법입니다. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "활성화됨")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "비활성화됨")
end)
열거형
SelfieMode.Action
SelfieMode는 여러 액션을 제공합니다. 이 열거형은 activateAction, deactivateAction, toggleAction 함수와 함께 사용할 수 있습니다.
| 이름 | 요약 |
|---|---|
| DepthOfField | Depth‑of‑Field 액션에 대한 참조입니다. |
| LockGaze | Lock Gaze 액션에 대한 참조입니다. |
| HideOthers | Hide Others 액션에 대한 참조입니다. |
| Filter | Filter 액션에 대한 참조입니다. |
| Pose | Pose 액션에 대한 참조입니다. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- "필터" 액션 활성화SelfieMode.activateAction(SelfieMode.Action.Filter)
함수
configure
configure(config: table)
config 테이블의 다음 키/값을 통해 기본 구성 옵션을 재정의합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
| 키 | 설명 | 기본값 |
|---|---|---|
| disableCharacterMovement | 이 값이 true이면 셀카 모드가 열린 동안 캐릭터가 움직이지 못하도록 합니다. | false |
| depthOfFieldEffect | 플레이어가 Depth of Field 액션을 전환할 때 나타나는 선택적 사용자 정의 DepthOfFieldEffect 인스턴스입니다. |
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
플레이어는 일반적으로 화면 오른쪽의 "카메라" 버튼으로 셀카 모드를 열지만, 이 함수는 코드를 통해 열 수 있도록 합니다. 아래와 같이 사용자 정의 버튼을 구현할 때는 setHudButtonEnabled를 통해 기본 버튼을 비활성화해야 합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- 기본 버튼 제거
SelfieMode.setHudButtonEnabled(false)
-- 사용자 정의 버튼 연결
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
closeSelfieMode
closeSelfieMode()
플레이어는 일반적으로 화면 하단의 ⊗ 버튼으로 셀카 모드를 닫지만, 이 함수는 코드를 통해 닫을 수 있도록 합니다. LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.closeSelfieMode()
isSelfieModeOpen
isSelfieModeOpen(): boolean
플레이어의 행동이나 openSelfieMode에 의해 셀카 모드가 열려있으면 true를 반환합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
셀카 모드를 열기 위한 기본 버튼이 표시되는지 여부를 설정합니다. 이는 사용자 정의 UI 버튼을 통해 openSelfieMode를 구현할 때 유용합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- 기본 버튼 제거
SelfieMode.setHudButtonEnabled(false)
-- 사용자 정의 버튼 연결
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
getAction
getAction(action: SelfieMode.Action): Action
SelfieMode.Action 열거형을 통해 Action 유형을 가져옵니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
activateAction
activateAction(action: SelfieMode.Action)
기본 액션 중 하나를 프로그램적으로 활성화합니다. 이는 플레이어가 액션 바에서 액션을 켰을 때와 동일합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- "필터" 액션 활성화SelfieMode.activateAction(SelfieMode.Action.Filter)
deactivateAction
deactivateAction(action: SelfieMode.Action)
기본 액션 중 하나를 프로그램적으로 비활성화합니다. 이는 플레이어가 액션 바에서 액션을 끌 때와 동일합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- "필터" 액션 비활성화SelfieMode.deactivateAction(SelfieMode.Action.Filter)
toggleAction
toggleAction(action: SelfieMode.Action): boolean
액션이 꺼져 있으면 켜고, 켜져 있으면 끕니다. 이는 플레이어가 액션 바에서 액션을 클릭할 때와 동일합니다. 새로운 "토글됨 상태"를 불리언으로 반환합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)local isEnabled = SelfieMode.toggleAction(lockGazeAction)if isEnabled thenprint("활성화됨", lockGazeAction.name)elseprint("비활성화됨", lockGazeAction.name)end
setTheme
setTheme(theme: table)
셀카 모드 테마를 구성하며, 텍스트 크기, 글꼴, 버튼/툴팁 색상 등을 포함합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
| 키 | 설명 | 기본값 |
|---|---|---|
| textSize | 모든 텍스트의 크기입니다. | 16 |
| font | 모든 UI에 사용되는 글꼴(Enum.Font). | GothamMedium |
| padding | UI 요소를 배치하는 데 사용되는 주요 패딩(UDim). | (0, 12) |
| paddingSmall | 요소 간의 미세한 여백을 적용하는 데 사용되는 작은 패딩(UDim). | (0, 6) |
| paddingScreen | 셀카 모드에 약간의 여유 공간을 주기 위해 화면 가장자리를 둘러싸는 패딩(UDim). | (0, 24) |
| backgroundColor | 액션을 표시하는 바의 배경 색상(Color3). | [0, 0, 0] |
| scrollBarColor | 모듈의 ScrollingFrame 요소에서 사용되는 스크롤바의 색상(Color3). | [255, 255, 255] |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setTheme({textSize = 20,font = Enum.Font.Michroma,backgroundColor = Color3.fromRGB(0, 40, 75),})
setEnabled
setEnabled(isEnabled: boolean)
셀카 모드가 활성화되는지 여부를 설정합니다. 비활성화된 경우 모듈에 대한 모든 UI가 제거되고 모든 이벤트가 연결 해제됩니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setEnabled(false)
이벤트
selfieModeOpened
플레이어가 셀카 모드를 열거나 openSelfieMode가 호출될 때 발생합니다. 이 이벤트는 LocalScript에서만 연결할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeOpened:Connect(function()
print("셀카 모드 열림")
end)
selfieModeClosed
플레이어가 셀카 모드를 닫거나 closeSelfieMode가 호출될 때 발생합니다. 이 이벤트는 LocalScript에서만 연결할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeClosed:Connect(function()
print("셀카 모드 닫힘")
end)
actionActivated
| 매개변수 | |
|---|---|
| action: SelfieMode.Action | 활성화된 액션. |
액션이 활성화될 때 발생하며, 이는 Depth of Field, Lock Gaze 또는 Hide Others와 같은 주요 액션일 수 있습니다. 또는 필터나 포즈와 같은 하위 액션일 수도 있습니다. 연결된 함수는 활성화된 액션을 수신합니다. 이 이벤트는 LocalScript에서만 연결할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "활성화됨")
end)
actionDeactivated
| 매개변수 | |
|---|---|
| action: SelfieMode.Action | 비활성화된 액션. |
주요 액션이나 하위 액션이 비활성화될 때 발생합니다. 연결된 함수는 비활성화된 액션을 수신합니다. 이 이벤트는 LocalScript에서만 연결할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "비활성화됨")
end)
filterChanged
필터가 적용되거나 제거될 때 발생합니다. 연결된 함수는 새로운 필터 이름과 이전 필터 이름을 수신합니다. 이 이벤트는 LocalScript에서만 연결할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("필터가", oldFilter, "에서", newFilter, "으로 변경됨")
end)
poseChanged
포즈가 적용되거나 제거될 때 발생합니다. 연결된 함수는 새로운 포즈 이름과 이전 포즈 이름을 수신합니다. 이 이벤트는 LocalScript에서만 연결할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("포즈가", oldPose, "에서", newPose, "으로 변경됨")
end)