이모티콘은 모든 소셜 경험의 핵심 요소입니다. EmoteBar 개발자 모듈은 플레이어가 의미 있는 사회적 상호작용을 촉진할 수 있도록 접근할 수 있고 사용자 정의 가능한 방법을 제공하는 것을 목표로 합니다.
모듈 사용법
설치
경험에서 EmoteBar 모듈을 사용하려면:
스튜디오의 창 메뉴 또는 홈 탭 도구 모음에서 툴박스를 열고 제작자 상점 탭을 선택합니다.

모델 정렬이 선택되어 있는지 확인한 후, 범주의 모두 보기 버튼을 클릭합니다.

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

탐색기 창에서 전체 EmoteBar 모델을 ReplicatedStorage로 이동합니다. 경험을 실행하면 모듈이 실행되기 시작합니다.
구성
이 모듈은 7개의 이모티콘으로 미리 구성되어 있으며, 사용자가 자신의 이모티콘과 표시 옵션으로 쉽게 사용자 정의할 수 있습니다. 또한, 플레이어가 Lil Nas X, Royal Blood 또는 Twenty One Pilots와 같은 이전 Roblox 이벤트에서 소유한 이모티콘이 있을 경우, 해당 이모티콘이 자동으로 사용 가능한 이모티콘 목록에 추가됩니다.
ServerScriptService에서 새 Script를 생성하고 ConfigureEmotes로 이름을 바꿉니다.

다음 코드를 새 ConfigureEmotes 스크립트에 붙여넣습니다. useDefaultEmotes 설정을 false로 설정하면 기본 이모티콘을 무시하고 setEmotes 함수를 통해 사용자 정의 이모티콘을 정의할 수 있습니다.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "안녕하세요",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "박수",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
메가 이모티콘
메가 이모티콘은 동일 지역의 여러 플레이어가 동시에 동일한 이모티콘을 수행할 때 형성됩니다. 더 많은 플레이어가 참여함에 따라 메가 이모티콘은 더 커집니다. 플레이어가 이모티콘을 중단하면 메가 이모티콘은 점점 작아지다가 결국 사라집니다.

템포
이모티콘의 템포는 버튼을 한 번 탭했을 때 재생되는 속도입니다. 이모티콘의 기본 속도는 defaultTempo에 따라 결정됩니다. 이모티콘의 속도는 버튼을 더 빠르게 또는 더 느리게 탭하여 증가시킬 수 있습니다.
API 참조
타입
이모티콘
각 이모티콘은 다음 키-값 쌍을 가진 사전으로 표현됩니다:
| 키 | 유형 | 설명 |
|---|---|---|
| name | string | 이모티콘 이름, 예: "Shrug". |
| animation | string | 이모티콘 애니메이션의 자산 ID. |
| image | string | GUI에서 이모티콘의 이미지 자산 ID. |
| defaultTempo | number | 이모티콘 애니메이션을 재생할 기본 속도 요인. 예를 들어, 템포가 2이면 애니메이션이 정상 속도의 두 배로 재생됩니다. 0보다 커야 합니다. |
| isLocked | bool | 이모티콘이 "잠겨" 활성화되지 않게 되어 있는지 여부를 나타냅니다. |
열거형
EmoteBar.GuiType
| 이름 | 요약 |
|---|---|
| EmoteBar | 이모티콘이 화면 하단의 막대에 표시되는 기본 형식으로, 개별 "페이지"로 구분됩니다. |
| EmoteWheel | 플레이어가 자신의 플레이어 캐릭터를 클릭하거나 탭했을 때 이모티콘이 고리 형태로 표시되는 변형입니다. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
함수
configureServer
configureServer(config: table)
다음 키-값 쌍을 통해 기본 서버 측 구성 옵션을 재정의합니다. 이 함수는 Script에서만 호출할 수 있으며, 변경 사항은 모든 클라이언트에 자동으로 복제됩니다.
| 키 | 설명 | 기본값 |
|---|---|---|
| useDefaultEmotes | 제공된 기본 이모티콘이 포함되었는지 여부. | true |
| useMegaEmotes | 메가 이모티콘 기능을 활성화하거나 비활성화합니다. | true |
| emoteMinPlayers | 메가 이모티콘에 기여하기 위해 동일한 이모티콘을 수행해야 하는 최소 플레이어 수. | 3 |
| emoteMaxPlayers | 메가 이모티콘에 기여하기 위해 동일한 이모티콘을 수행해야 하는 최대 플레이어 수. | 50 |
| playParticles | 플레이어가 머리 위에서 떠다니는 입자 형태로 이모티콘을 재생할지 여부를 설정합니다. | true |
| sendContributingEmotes | 메가 이모티콘에 기여할 작은 이모티콘 아이콘을 전송할지 여부. | true |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
configureClient
configureClient(config: table)
다음 키-값 쌍을 통해 기본 클라이언트측 구성 옵션을 재정의합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다. guiType의 값에 따라 주어진 탭에서 옵션이 적용됩니다.
| 키 | 설명 | 기본값 |
|---|---|---|
| guiType | 이모티콘 표시를 위해 GUI가 사용할 형식을 제어합니다 (EmoteBar.GuiType). | EmoteBar |
| useTempo | 사용자가 반복적으로 동일한 이모티콘을 리드미컬하게 활성화하여 얼마나 빠르거나 느리게 재생할지를 제어할 수 있는 템포 기능을 활성화하거나 비활성화합니다. | true |
| tempoActivationWindow | 이모티콘 활성화 간에 사용자가 가진 시간(초). | 3 |
| lockedImage | 잠긴 이모티콘 위에 표시할 이미지. | "rbxassetid://6905802778" |
LocalScript - 이모티콘 바local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteBar,maxEmotesPerPage = 6,nextPageKey = Enum.KeyCode.Z,prevPageKey = Enum.KeyCode.C,})
LocalScript - 이모티콘 휠local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
setEmotes
setEmotes(emotes: table)
사용할 사용자 정의 이모티콘을 설정합니다. useDefaultEmotes가 true인 경우 기본값에 추가되거나 false인 경우 기본값을 대체합니다. 이 함수는 Script에서만 호출할 수 있으며 변경 사항은 모든 클라이언트에 자동으로 복제됩니다.
이 함수에 전달되는 각 이모티콘의 구조는 이모티콘 문서를 참조하세요.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "안녕하세요",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "박수",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
setGuiVisibility
setGuiVisibility(visible: boolean)
이모티콘 GUI를 표시하거나 숨깁니다. 이 함수는 특정 클라이언트의 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.setGuiVisibility(false)
getEmote
이름으로 이모티콘을 가져옵니다. 이모티콘을 찾을 수 없으면 nil을 반환합니다. 이 함수는 특정 클라이언트의 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("어깨를 으쓱")
playEmote
playEmote(emote: Emote)
주어진 이모티콘을 재생하고, 서버에서 연결된 경우 emotePlayed 이벤트를 발생시킵니다. 이 함수는 특정 클라이언트의 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("어깨를 으쓱")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName: string)
주어진 이름의 이모티콘을 잠급니다. 이 함수는 클라이언트의 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.lockEmote("박수")
unlockEmote
unlockEmote(emoteName: string)
주어진 이름의 이모티콘의 잠금을 해제합니다. 이 함수는 클라이언트의 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.unlockEmote("박수")
이벤트
emotePlayed
어떤 클라이언트가 이모티콘을 재생할 때 발생합니다. 이 이벤트는 LocalScript에서만 연결할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "재생함", emote.name)
end)
lockedEmoteActivated
클라이언트가 잠긴 이모티콘을 클릭할 때 발생합니다. 이 이벤트는 LocalScript에서만 연결할 수 있습니다.
| 매개변수 | |
|---|---|
| emote: Emote | 활성화된 잠긴 이모티콘입니다. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "클릭함", emote.name)
end)