リアクションバー

リアクションは、ソーシャル体験の核となる構成要素です。 EmoteBar開発者モジュールは、プレイヤーが有意義に人と交流できるようにする、利用しやすくカスタマイズ可能な方法を提供することを目指しています。

モジュールの使用法

インストール

バーチャル空間内でEmoteBarモジュールを使用する方法

  1. 表示タブから、ツールボックスを開き、マーケットプレイスタブを選択します。

    Studioのツールボックストグルボタン
  2. モデルのソートが選択されていることを確認し、カテゴリすべてのボタンを表示をクリックします。

  3. DEV モジュールタイルを見つけてクリックします。

  4. リアクションバーモジュールを見つけてクリックするか、3D ビューにドラッグ&ドロップします。

  5. エクスプローラウィンドウで、EmoteBarモデル全体をServerScriptServiceに移動します。 バーチャル空間を実行すると、モジュールはそれ自体をさまざまなサービスに配布し、実行を開始します。

設定

モジュールには 7 つのリアクションが事前に設定されており、独自のリアクションや表示オプションで簡単にカスタマイズできます。 さらに、プレイヤーが Lil Nas X、Royal Blood、Twenty One Pilots など過去の Roblox イベントのエモートを所有している場合、それらのエモートは自動的に利用可能なエモートリストに追加されます。

  1. ServerScriptService内で新しい… を作成して名前をConfigureEmotesに変更Scriptします。

  2. 以下のコードを新しいConfigureEmotesスクリプトに貼り付けます。 useDefaultEmotesfalse設定はデフォルトのエモートを上書きし、setEmotes関数でカスタムエモートを定義することができます。

    Script - ConfigureEmotes

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

メガエモート

メガエモートは、同じエリアの複数のプレイヤーが同時に同じエモートを実行したときに形成されます。 参加プレイヤーが増えると、メガエモートは大きく成長していきます。 参加プレイヤーが増えると、メガエモートは大きく成長していきます。 プレイヤーがエモートを停止すると、メガエモートは小さくなり、最終的には消えてしまいます。

テンポ

エモートのテンポとは、そのボタンが一度タップされたときに再生される速度です。 エモートのデフォルトの速度は、そのdefaultTempoによって決定されます。 ボタンをタップする速度によって、エモートのスピードが速くなったり遅くなったりします。

API リファレンス

種類

リアクション

各エモートは、以下のキーと値のペアを持つ辞書で表現されます。

キー概要
name文字列"Shrug"など、エモートの名前。
animation文字列リアクションアニメーションのアセットID。
image文字列GUI内のエモート画像のアセットID。
defaultTempo数字エモートアニメーションを再生する際のデフォルトの速度係数。 例えば、テンポを2にすると、通常の2倍のスピードでアニメーションを再生します。 0より大きくなければなりません。
isLockedブーリアン型エモートが有効化されないよう「ロック」されているかどうか。

列挙型

EmoteBar.GuiType

名前まとめ
EmoteBarエモートが画面下に沿ってバーに表示され、個々の「ページ」に区切られているデフォルトの形。
EmoteWheelプレイヤーがプレイヤーキャラクターをクリックまたはタップすると、エモートがリング状に表示される形。
LocalScript

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

関数

configureServer

configureServer(config:table):nil

デフォルトのサーバー側設定オプションは、configテーブル内の以下のキー/値を使用して上書きします。 この関数は、Scriptからのみ呼び出すことができ、変更内容は、すべてのクライアントに自動的に複製されます。

キー概要デフォルト
useDefaultEmotes提供されるデフォルトエモートが含まれているかどうか。true
useMegaEmotesメガエモート機能を有効または無効にします。true
emoteMinPlayersメガエモートに貢献するために同じエモートを実行しているプレイヤーの最小人数。3
emoteMaxPlayersメガエモートに貢献するために同じエモートを実行しているプレイヤーの最大人数。50
playParticlesプレイヤーの頭上に表示されているプレイ中のエモートを、有効または無効にします。true
sendContributingEmotesメガエモートに貢献するための小さなエモートアイコンの送信を有効または無効にします。true
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.configureServer({
emoteMinPlayers = 2,
playParticles = false,
})

configureClient

configure(config:table):nil

デフォルトのクライアント側の設定オプションを、テーconfigブル内にある以下のキー/値を使用して上書きします。 この関数は、LocalScriptからのみ呼び出すことができます。 guiTypeの値に応じて、前述のタブのオプションも適用されます。

Script Editor

キー概要デフォルト
guiTypeエモート(EmoteBar.GuiType)を表示するためにGUIどのような形にするかをコントロールします。EmoteBar
useTempoユーザーが同じエモートをリズミカルに繰り返し有効にすることで、エモートの再生速度を制御できるテンポ機能を有効または無効にします。true
tempoActivationWindowテンポの一部としてカウントするために、エモートを連続して有効にする間隔の時間(秒)。3
lockedImageロックされたリアクションの上に表示される画像。"rbxassetid://6905802778"

EmoteBar

キー概要デフォルト
maxEmotesPerPage一度に表示されるリアクションの最大数。 小さい画面では、自動的にエモートの表示数が少なくなります。4
emoteBarPosLandscape横長モード(UDim2)のリアクションバーの位置。(0.5, 0, 1, -16)
emoteBarPosPortrait縦長モード(UDim2)のリアクションバーの位置。(0.5, 0, 1, -100)
useEmoteHotkeysリアクション用ホットキーが使用されているかどうか。 の場合、エモートバーのホットキーとして1、 2、 3、 4 などをバインドします。 数字キー1~9のみがサポートされています。true
usePageHotkeysページホットキーが使用されているかどうか。 trueの場合、nextPageKeyprevPageKeyはページ間の移動に使用されます。true
prevPageKeyエモートの前のページに移動するために使用されるキー(Enum.KeyCode)。Q
nextPageKeyエモートの次のページに移動するために使用されるキー(Enum.KeyCode)。E
leftArrowImage左矢印の画像(前のページ)。"rbxassetid://6998633654"
rightArrowImage右矢印の画像(次のページ)。"rbxassetid://6998635824"

EmoteWheel

キー概要デフォルト
closeImagecloseBackgroundImage画像の上に配置された、エモートホイールの閉じるボタン用の画像。"rbxassetid://7027440823"
closeBackgroundImageエモートホイールの閉じるボタン用の背景画像。"rbxassetid://7027440823"
emoteHoverImageホイールで選択したエモートのホバーオーバー表示用の画像。"rbxassetid://7344843157"
LocalScript - Emote Bar

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,
})
LocalScript - Emote Wheel

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

setEmotes

setEmotes(emotes:table):nil

使用するカスタムリアクションを設定します。 これらは、useDefaultEmotestrueの場合はデフォルトに追加され、useDefaultEmotesfalseの場合はデフォルトに置き換わります。 この関数は、Scriptからのみ呼び出すことができ、変更内容は、すべてのクライアントに自動的に複製されます。

この関数に渡される各エモートの構造については、エモートをご覧ください。

Script - ConfigureEmotes

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

setGuiVisibility(visible:boolean):nil

エモート GUI を表示または非表示にします。 この関数は、特定のクライアントのLocalScriptからのみ呼び出すことができます。

LocalScript

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

getEmote

getEmote(emoteName:string):table

名前でエモートを取得します。 エモートが見つからない場合はnilを返します。 この関数は、特定のクライアントのLocalScriptからのみ呼び出すことができます。

LocalScript

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

playEmote

playEmote(emote:Emote):nil

接続されている場合、指定されたリアクションを再生し、サーバー上でemotePlayedイベントを発生させます。 この関数は、特定のクライアントのLocalScriptからのみ呼び出すことができます。

LocalScript

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

lockEmote

lockEmote(emoteName:string):nil

指定された名前のリアクションをロックします。 この関数は、クライアントのLocalScriptからのみ呼び出すことができます。

LocalScript

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

unlockEmote

unlockEmote(emoteName:string):nil

指定された名前のリアクションのロックを解除。 この関数は、クライアントのLocalScriptからのみ呼び出すことができます。

LocalScript

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

イベント

emotePlayed

emotePlayed(player:Player, emote:Emote): RBXScriptSignal

クライアントがリアクションを再生すると発生します。 このイベントは、LocalScript内でのみ接続できます

パラメータ
プレイヤー:Playerリアクションを操作したプレイヤー。
emote: Emote再生されたリアクション。
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)

lockedEmoteActivated

lockedEmoteActivated(emote:Emote): RBXScriptSignal

クライアントがロックされたリアクションをクリックしたときに発生。 このイベントは、LocalScript内でのみ接続できます

パラメータ
emote: Emote有効化されたロックされているリアクション。
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)