表情符号栏

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

表情是任何社交体验的核心部件。 EmoteBar 开发者模块 目标为提供玩家可以接受、自定义的方式来帮助实现有意义的社交互动。

模块使用

安装

要在体验中使用 EmoteBar 模块:

  1. 视图选项卡打开工具箱并选择 创建者商店 选项卡。

    Toolbox toggle button in Studio
  2. 确保 模型排序 已选择,然后单击 查看所有 按钮为 类别

  3. 找到并单击 开发者模块 地瓦片。

  4. 找到 表情条表情模块 并单击它,或将其拖放到 3D 视查看中。

  5. Explorer 窗口中,将整个 EmoteBar 模型移动到 ServerScriptService 中。 在运行体验时,模块将分配到各个服务并开始运行。

配置

该模块预配备了 7 个表情,它可以通过您自己的表情和显示选项轻松自定义。 另外,如果玩家拥有任何来自上述任何 Roblox 事件的表情,例如 Lil Nas X、Royal Blood 或 Twenty One Pilots,那些表情将自动添加到可用表情列表。

  1. ServerScriptService 中,创建一个新的 Script 并将其重命名为 配置表情

  2. 将以下代码粘贴到新的 配置表情 脚本中。 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。
isLockedboolean是否锁定表情符号从被激活。

枚数

表情条形.GuiType

名称概要
EmoteBar默认形式,用于显示在屏幕下方的表情,分为个人“页面”。
EmoteWheel变体,在玩家单击或点击玩家角色时,会在其旁边显示表情。
本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.configureClient({
guiType = EmoteBar.GuiType.EmoteWheel,
})

函数

配置服务器

配置服务器(配置: table )

通过 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,
})

配置客户

配置客户(配: table )

通过 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,
})

设置表情

设置表情(表情: table )

设置自定义 emotes 使用。如果 useDefaultEmotestrue,或替换默认 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,
},
})

设置可见度

setGuiVisibility(可见:button)

显示或隐藏表情图形GUI界面。 此功能只能从 LocalScript 上的特定客户端调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.setGuiVisibility(false)

获取表情

获取表情(emoteName: string): table

获取一个 表情符号 按名称。如果表情符号找不到,返回 nil。此函数只能从特定客户端上的 LocalScript 调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
local shrug = EmoteBar.getEmote("Shrug")

播放表情

playEmote(emote: Emote )

播放给定的 表情 并在服务器上发射 表情Played 事件,如果连接到。 此函数只能从特定客户端上的 LocalScript 中调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
local shrug = EmoteBar.getEmote("Shrug")
EmoteBar.playEmote(shrug)

锁定表情

锁定表情(emoteName: string )

锁定 表情符号 使用指定名称。此函数只能从客户端上的 LocalScript 中调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.lockEmote("Applaud")

解锁表情

解锁表情(表情Name: string )

解锁表情用指定名称。此功能只能从客户端上的LocalScript中调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.unlockEmote("Applaud")

事件

表演已玩

客户端播放表情时,发生此事件。此事件只能在 LocalScript 中连接。

参数
玩家: Player处理表情的玩家。
动作: 表情表演已播放。
本地脚本

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)