플레이어들은 이미 체험 속의 즐거운 순간을 기념하기 위해 스크린샷을 찍고 있습니다. SelfieMode 개발자 모듈을 사용하면 필터 효과, 다른 캐릭터 숨기기, 포즈가 지원되어 순간의 기억을 채팅 창이나 플레이어 목록 창 없이 더 깔끔하게 캡처할 수 있습니다.
모듈 사용
설치
체험에서 SelfieMode 모듈을 사용하려면:
보기 탭에서 도구 상자를 열고 마켓플레이스 탭을 선택합니다.
모델 정렬이 선택되었는지 확인한 다음 카테고리에서 모두 보기 버튼을 클릭합니다.
DEV MODULES 타일을 찾아 클릭합니다.
Selfie Mode 모듈을 찾아 클릭하거나 3D 보기로 끌어다 놓습니다.
탐색기 창에서 전체 SelfieMode 모델을 ServerScriptService로 이동시킵니다. 체험을 실행하면 모듈이 다양한 서비스에 배포되고 실행되기 시작합니다.
구성
이러한 모듈은 대부분의 사용 사례에서 작동하도록 미리 구성되어 있지만, 구성 함수를 통해 쉽게 사용자 지정할 수 있습니다.
StarterPlayerScripts에서 새 LocalScript을(를) 생성하고 ConfigureSelfieMode로 이름을 바꿉니다.
새로운 스크립트에 다음의 코드를 붙여 넣습니다.
LocalScript - ConfigureSelfieModelocal 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 함수와 함께 사용하거나 actionActivated 및 actionDeactivated 이벤트를 통해 감지할 수 있습니다.
필드 깊이
기본적으로 SelfieMode는 플레이어가 액션을 토글할 때 일반 피사계 심도 효과(미묘한 배경 흐림 효과)를 표현합니다.
기본 피사계 심도 효과를 변경하려면 구성 호출에서 depthOfFieldEffect을(를) 자신의 DepthOfFieldEffect 인스턴스로 설정하십시오.
LocalScript - ConfigureSelfieMode
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))local customDepthOfField = Instance.new("DepthOfFieldEffect")customDepthOfField.NearIntensity = 0customDepthOfField.FarIntensity = 1customDepthOfField.FocusDistance = 5customDepthOfField.InFocusRadius = 5SelfieMode.configure({depthOfFieldEffect = customDepthOfField})
시선 잠금
시선 고정 토글은 플레이어의 캐릭터가 셀카 포즈를 취하는 동안 고개를 돌릴 수 있는 현실적인 범위 내에서 카메라를 바라보게 합니다.
다른 캐릭터 숨김
기본적으로는 플레이어의 캐릭터와 함께 다른 캐릭터가 표시됩니다. 플레이어는 **다른 캐릭터 숨김 **버튼을 클릭하여 완벽한 단독 샷을 찍을 수 있습니다. 이를 켜면 다른 캐릭터가 시야에서 사라지고, 액션이 꺼질 때까지 보이지 않습니다.
필터
필터 액션을 통해 플레이어는 Pop, Soft, Antique, Cute, Dramatic, Monochrome 등의 옵션으로 미리 설정된 필터를 적용할 수 있습니다.
포즈
포즈 액션을 통해 플레이어는 Cheer, Clapping, Dolphin, Flossing, Guitar, Jump Wave, Louder, Top Rock, Twirl 및 Wave 등의 옵션으로 미리 설정된 포즈를 선택할 수 있습니다.
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" actionSelfieMode.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" actionSelfieMode.activateAction(SelfieMode.Action.Filter)
deactivateAction
deactivateAction(action:SelfieMode.Action)
프로그래밍 방식으로 기본 액션 중 하나를 비활성화합니다. 이는 플레이어가 액션 바에서 액션을 토글할 때와 동일합니다. LocalScript에서만 호출할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- Deactivate "Filter" actionSelfieMode.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 thenprint("Activated", lockGazeAction.name)elseprint("Deactivated", lockGazeAction.name)end
setTheme
setTheme(theme:table)
텍스트 크기, 글꼴, 버튼/도구 설명 색상 등 Selfie Mode 테마를 구성합니다. 해당 함수는 LocalScript에서만 호출할 수 있습니다.
일반
키 | 설명 | 기본 |
---|---|---|
textSize | 전체 텍스트의 크기. | 15 |
font | 모든 UI에서 사용되는 글꼴(Enum.Font). | GothamMedium |
padding | UI 요소를 배치하는 데 사용되는 기본 패딩(UDim). | (0, 12) |
paddingSmall | 요소 사이에 미묘한 여백을 적용하는 데 사용되는 더 작은 패딩(UDim). | (0, 6) |
paddingScreen | Selfie Mode에 약간의 여유 공간을 제공하기 위해 화면 가장자리 주변에 사용되는 패딩(UDim). | (0, 24) |
backgroundColor | 액션을 표시하는 막대에 사용되는 배경색(Color3). | [0, 0, 0] |
scrollBarColor | 모듈의 ScrollingFrame 요소에 사용되는 스크롤 막대의 색상(Color3). | [255, 255, 255] |
버튼 및 툴팁
키 | 설명 | 기본 |
---|---|---|
openButtonBackgroundColor | Selfie Mode를 열 때 사용되는 화면 오른쪽 HUD 버튼의 배경색(Color3). | [255, 255, 255] |
openButtonIconColor | HUD 버튼의 카메라 아이콘 색상(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)