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

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

패키지 타일을 찾아 클릭합니다.
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 = "Hello",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Applaud",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 | 플레이어가 자신의 캐릭터를 클릭하거나 탭할 때 이모티콘이 링 형태로 표시되는 변형입니다. |
local 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 |
local 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" |
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,
})local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.configureClient({
guiType = EmoteBar.GuiType.EmoteWheel,
})setEmotes
setEmotes(emotes: table)
사용할 사용자 정의 이모티콘을 설정합니다. useDefaultEmotes가 true인 경우 기본값에 추가되거나, useDefaultEmotes가 false인 경우 기본값을 대체합니다. 이 함수는 Script에서만 호출할 수 있으며, 변경 사항은 자동으로 모든 클라이언트에 복제됩니다.
이 함수에 전달되는 각 이모티콘의 구조는 이모티콘을 참조하십시오.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.configureServer({
useDefaultEmotes = false,
})
EmoteBar.setEmotes({
{
name = "Hello",
animation = "rbxassetid://3344650532",
image = "rbxassetid://7719817462",
defaultTempo = 1,
},
{
name = "Applaud",
animation = "rbxassetid://5915693819",
image = "rbxassetid://7720292217",
defaultTempo = 2,
},
})setGuiVisibility
setGuiVisibility(visible: boolean)
이모티콘 GUI를 표시하거나 숨깁니다. 이 함수는 특정 클라이언트의 LocalScript에서만 호출할 수 있습니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.setGuiVisibility(false)getEmote
이름으로 이모티콘을 가져옵니다. 이모티콘을 찾을 수 없는 경우 nil을 반환합니다. 이 함수는 특정 클라이언트의 LocalScript에서만 호출할 수 있습니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
local shrug = EmoteBar.getEmote("Shrug")playEmote
playEmote(emote: Emote)
주어진 이모티콘을 재생하고, 서버에서 emotePlayed 이벤트를 발생시킵니다. 이 함수는 특정 클라이언트의 LocalScript에서만 호출할 수 있습니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
local shrug = EmoteBar.getEmote("Shrug")
EmoteBar.playEmote(shrug)lockEmote
lockEmote(emoteName: string)
주어진 이름의 이모티콘을 잠급니다. 이 함수는 클라이언트의 LocalScript에서만 호출할 수 있습니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockEmote("Applaud")unlockEmote
unlockEmote(emoteName: string)
주어진 이름의 이모티콘의 잠금을 해제합니다. 이 함수는 클라이언트의 LocalScript에서만 호출할 수 있습니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.unlockEmote("Applaud")이벤트
emotePlayed
어떤 클라이언트가 이모티콘을 재생할 때 발생합니다. 이 이벤트는 LocalScript에서만 연결할 수 있습니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "played", emote.name)
end)lockedEmoteActivated
클라이언트가 잠긴 이모티콘을 클릭할 때 발생합니다. 이 이벤트는 LocalScript에서만 연결할 수 있습니다.
| 매개변수 | |
|---|---|
| emote: Emote | 활성화된 잠긴 이모티콘. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "clicked", emote.name)
end)