エモートは、あらゆるソーシャル体験の中核をなす要素です。EmoteBar 開発者モジュールは、プレイヤーが意味のある社会的交流を促進するためのアクセス可能でカスタマイズ可能な方法を提供することを目的としています。
モジュールの使用
インストール
エクスペリエンスでEmoteBarモジュールを使用するには:
スタジオのウィンドウメニューまたはホームタブツールバーから、ツールボックスを開き、クリエイターストアタブを選択します。

モデルの並び替えが選択されていることを確認し、カテゴリのすべて見るボタンをクリックします。

パッケージタイルを見つけてクリックします。
エモートバーモジュールを見つけてクリックするか、3Dビューにドラッグアンドドロップします。

エクスプローラーウィンドウで、EmoteBarモデル全体をReplicatedStorageに移動させます。エクスペリエンスを実行すると、モジュールが実行され始めます。
設定
モジュールは7つのエモートで事前設定されており、あなた自身のエモートや表示オプションで簡単にカスタマイズできます。さらに、プレイヤーが過去のRobloxイベント(Lil Nas X、Royal Blood、Twenty One Pilotsなど)から取得したエモートを持っている場合、それらのエモートは利用可能なエモートのリストに自動的に追加されます。
ServerScriptService内に新しいScriptを作成し、名前をConfigureEmotesに変更します。

新しいConfigureEmotesスクリプトに以下のコードを貼り付けます。useDefaultEmotes設定をfalseにすることでデフォルトエモートをオーバーライドし、setEmotes関数を介してカスタムエモートを定義できます。
スクリプト - 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,},})
メガエモート
メガエモートは、同じエリアで複数のプレイヤーが同時に同じエモートを行うことで形成されます。プレイヤーが次々と参加すると、メガエモートは大きくなります。プレイヤーがエモートの実行をやめると、メガエモートは小さくなり、最終的には消えます。

テンポ
エモートのテンポは、ボタンを1回タップしたときに再生される速さです。エモートのデフォルトの速さはそのdefaultTempoによって決まります。エモートの速さは、ボタンをより早くまたは遅くタップすることによって増減できます。
APIリファレンス
タイプ
エモート
各エモートは以下のキーと値のペアを持つ辞書で表されています:
| キー | タイプ | 説明 |
|---|---|---|
| name | string | エモート名(例:"Shrug")。 |
| animation | string | エモートのアニメーションのアセットID。 |
| image | string | GUI内のエモートの画像のアセットID。 |
| defaultTempo | number | エモートアニメーションを再生するデフォルトの速度係数。例えば、テンポが2であればアニメーションは通常の速さの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 |
スクリプト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" |
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からのみ呼び出すことができ、変更はすべてのクライアントに自動的に複製されます。
この関数に渡される各エモートの構造についてはエモートを参照してください。
スクリプト - 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,},})
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("Shrug")
playEmote
playEmote(emote: エモート)
指定されたエモートを再生し、接続されている場合はサーバーでemotePlayedイベントを発火します。この関数は特定のクライアントのLocalScriptからのみ呼び出すことができます。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName: string)
指定された名前のエモートをロックします。この関数はクライアントのLocalScriptからのみ呼び出すことができます。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.lockEmote("Applaud")
unlockEmote
unlockEmote(emoteName: string)
指定された名前のエモートのロックを解除します。この関数はクライアントのLocalScriptからのみ呼び出すことができます。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.unlockEmote("Applaud")
イベント
emotePlayed
任意のクライアントがエモートを再生したときに発火します。このイベントはLocalScriptでのみ接続できます。
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: エモート | アクティブ化されたロックされたエモート。 |
LocalScript
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)