リアクションは、ソーシャル体験の核となる構成要素です。 EmoteBarの開発者モジュールは、プレイヤーが有意義に人と交流できるようにする、利用しやすくカスタマイズ可能な方法を提供することを目指しています。
モジュールの使用法
インストール
バーチャル空間内でEmoteBarモジュールを使用する方法
表示タブから、ツールボックスを開き、マーケットプレイスタブを選択します。
モデルのソートが選択されていることを確認し、カテゴリのすべてのボタンを表示をクリックします。
DEV モジュールタイルを見つけてクリックします。
リアクションバーモジュールを見つけてクリックするか、3D ビューにドラッグ&ドロップします。
エクスプローラウィンドウで、EmoteBarモデル全体をServerScriptServiceに移動します。 バーチャル空間を実行すると、モジュールはそれ自体をさまざまなサービスに配布し、実行を開始します。
設定
モジュールには 7 つのリアクションが事前に設定されており、独自のリアクションや表示オプションで簡単にカスタマイズできます。 さらに、プレイヤーが Lil Nas X、Royal Blood、Twenty One Pilots など過去の Roblox イベントのエモートを所有している場合、それらのエモートは自動的に利用可能なエモートリストに追加されます。
ServerScriptService内で新しい… を作成して名前をConfigureEmotesに変更Scriptします。
以下のコードを新しいConfigureEmotesスクリプトに貼り付けます。 useDefaultEmotesのfalse設定はデフォルトのエモートを上書きし、setEmotes関数でカスタムエモートを定義することができます。
Script - ConfigureEmoteslocal 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の場合、nextPageKeyとprevPageKeyはページ間の移動に使用されます。 | true |
prevPageKey | エモートの前のページに移動するために使用されるキー(Enum.KeyCode)。 | Q |
nextPageKey | エモートの次のページに移動するために使用されるキー(Enum.KeyCode)。 | E |
leftArrowImage | 左矢印の画像(前のページ)。 | "rbxassetid://6998633654" |
rightArrowImage | 右矢印の画像(次のページ)。 | "rbxassetid://6998635824" |
EmoteWheel
キー | 概要 | デフォルト |
---|---|---|
closeImage | closeBackgroundImage画像の上に配置された、エモートホイールの閉じるボタン用の画像。 | "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
使用するカスタムリアクションを設定します。 これらは、useDefaultEmotesがtrueの場合はデフォルトに追加され、useDefaultEmotesがfalseの場合はデフォルトに置き換わります。 この関数は、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内でのみ接続できます
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)