表情是任何社交体验的核心部件。 EmoteBar 开发者模块 目标为提供玩家可以接受、自定义的方式来帮助实现有意义的社交互动。
模块使用
安装
要在体验中使用 EmoteBar 模块:
确保 模型排序 已选择,然后单击 查看所有 按钮为 类别 。
找到并单击 开发者模块 地瓦片。
找到 表情条表情模块 并单击它,或将其拖放到 3D 视查看中。
在 Explorer 窗口中,将整个 EmoteBar 模型移动到 ServerScriptService 中。 在运行体验时,模块将分配到各个服务并开始运行。
配置
该模块预配备了 7 个表情,它可以通过您自己的表情和显示选项轻松自定义。 另外,如果玩家拥有任何来自上述任何 Roblox 事件的表情,例如 Lil Nas X、Royal Blood 或 Twenty One Pilots,那些表情将自动添加到可用表情列表。
在 ServerScriptService 中,创建一个新的 Script 并将其重命名为 配置表情 。
将以下代码粘贴到新的 配置表情 脚本中。 useDefaultEmotes 设置的 false 对默认表情进行了覆盖,让您通过 2>setEmotes2> 函数定义自定义表情。
脚本 - 配置表情local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("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,},})
超级表情
当多个玩家在同一个区域执行相同的表情时,形成了一个 超级表情 。随着更多玩家加入,超级表情会变大。当玩家停止使用动作时,超级表情会变小直到最终消失。
节奏
表动作的 tempo 是其按钮被触摸一次时播放的速度。默认速度由其 defaultTempo 决定。表动作的速度可以通过更快或更慢地触摸其按钮来提升或降低。
API 引用
类型
表情
每个表情都由一个字典表示,其中包括以下键值对:
钥匙 | 类型 | 描述 |
---|---|---|
name | 字符串 | 表情名称,例如 "Shrug"。 |
animation | 字符串 | 动画作表情的资产ID。 |
image | 字符串 | 图像在 GUI 中的资产 ID。 |
defaultTempo | 数 | 默认速度因素,用于播放表情动画。例如,2的时间长度将播放动画在原来的两倍速度。必须大于0。 |
isLocked | boolean | 是否锁定表情符号从被激活。 |
枚数
表情条形.GuiType
名称 | 概要 |
---|---|
EmoteBar | 默认形式,用于显示在屏幕下方的表情,分为个人“页面”。 |
EmoteWheel | 变体,在玩家单击或点击玩家角色时,会在其旁边显示表情。 |
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
函数
配置服务器
通过 config 表中的关键/值在默认服务器端配置选项上进行覆盖。此功能仅从 Script 中调用,更改将自动复制到所有客户端。
钥匙 | 描述 | 默认 |
---|---|---|
useDefaultEmotes | 是否包含或不包含提供的默认 emotes 。 | 真的 |
useMegaEmotes | 启用或禁用mega emotes精选能。 | 真的 |
emoteMinPlayers | 最小数量的玩家执行相同的表情来贡献于一个巨型动作。 | 3 |
emoteMaxPlayers | 最多玩家使用相同的表情来贡献于一个巨型动作。 | 50 |
playParticles | 启用或禁用玩家头上漂浮的表情符号。 | 真的 |
sendContributingEmotes | 启用或禁用发送一个小型表情符号,为超级动作贡献。 | 真的 |
脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
配置客户
通过 config 表中的关键/值在默认客户端配置选项上进行覆盖。此功能仅从 LocalScript 表中调用。 随着 guiType 的值,在注释的选项卡中也适用选项。
钥匙 | 描述 | 默认 |
---|---|---|
guiType | 控制 GUI 形成的表情(EmoteBar.GuiType)。 | 表情符号栏 |
useTempo | 启用或禁用 tempo 功能,用户可以通过重复激活同一 emote 的节奏来控制其表情是否快速或慢速播放。 | 真的 |
tempoActivationWindow | 用户在秒内有多少时间使用表情符号的连续激活,才能计时作为部分时间。 | 3 |
lockedImage | 显示顶部锁定的表情。 | “rbxassetid://6905802778” |
本地脚本 - 表情符号栏
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("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:WaitForChild("EmoteBar"))EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
设置表情
设置自定义 emotes 使用。如果 useDefaultEmotes 是 true,或替换默认 emotes ,这些都将被添加到默认值 useDefaultEmotes ,或替换 2>useDefaultEmotes2> 将自动复制到所有客户。 此函数只能从 5>Class.Script5> 中调用,并且将自
请参阅表情获取此函数的表情结构。
脚本 - 配置表情
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("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,},})
设置可见度
显示或隐藏表情图形GUI界面。 此功能只能从 LocalScript 上的特定客户端调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.setGuiVisibility(false)
获取表情
获取一个 表情符号 按名称。如果表情符号找不到,返回 nil。此函数只能从特定客户端上的 LocalScript 调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))local shrug = EmoteBar.getEmote("Shrug")
播放表情
播放给定的 表情 并在服务器上发射 表情Played 事件,如果连接到。 此函数只能从特定客户端上的 LocalScript 中调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
锁定表情
锁定 表情符号 使用指定名称。此函数只能从客户端上的 LocalScript 中调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.lockEmote("Applaud")
解锁表情
解锁表情用指定名称。此功能只能从客户端上的LocalScript中调用。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.unlockEmote("Applaud")
事件
表演已玩
客户端播放表情时,发生此事件。此事件只能在 LocalScript 中连接。
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "played", emote.name)
end)
已启用锁定表情
客户端单击锁定的动作时触发。 此事件只能在 LocalScript 中连接。
参数 | |
---|---|
动作: 表情 | 已激活的锁定表情。 |
本地脚本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "clicked", emote.name)
end)