あなたのアバターは、あなたが入る空間でのあなたのアイデンティティです。SocialInteractions 開発者モジュールは、各ユーザーが自分自身とその自然な動きをよりよく表現できるようにし、体験にリアリズムを加えます。
このモジュールには以下の機能があります:
| ボディ オリエンテーション | すべてのアバターの頭が対応するユーザーのカメラの指す方向を向くように、首と腰の回転の組み合わせで実現します。これにより、他の人が誰または何と対話しているかの微妙な手がかりを提供します。 |
| チャット アニメーション | アバターが送信するメッセージの内容に応じて、アニメーションを時折再生することで体験内でのチャットに活気を加えます。各アニメーションを起動する「トリガーワード」のリストは設定可能です。 |
モジュールの使用法
インストール
SocialInteractionsモジュールを体験内で使用するには:
スタジオのウィンドウメニューまたはホームタブツールバーからToolboxを開き、Creator Storeタブを選択します。

モデルのソートが選択されていることを確認し、次にカテゴリーのすべて見るボタンをクリックします。

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

Explorerウィンドウで、全体のSocialInteractionsモデルをReplicatedStorageに移動します。体験を実行すると、モジュールが実行され始めます。
設定
SocialInteractionsモジュールを単に挿入することで、ボディオリエンテーションおよびチャットアニメーション機能が場所内で有効になります。デフォルトの動作を調整するには:
StarterPlayerScripts内に新しいLocalScriptを作成し、名前をConfigureSocialInteractionsに変更します。

新しいスクリプトに以下のコードを貼り付け、configure関数を使用してモジュールの動作をカスタマイズします。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SocialInteractions = require(ReplicatedStorage.SocialInteractions)-- 腰の回転をより強調し、チャットアニメーション機能を無効にしますSocialInteractions.configure({waistOrientationWeight = 0.75,useChatAnimations = false,})
チャットアニメーショントリガーワード
各チャットアニメーションを起動する「トリガーワード」のリストは設定可能で、Luauの文字列パターンを利用して認識可能な単語を増やしています。たとえば、Waveアニメーションで使用される組み合わせの1つはhe+y+o*であり、hey、heyyy、heyo、heyyyyo、heeeeyyyyo、および他のバリエーションがアニメーションをトリガーします。
トリガーワードは大文字と小文字を区別しないため、heyと同じであり、HEY、Hey、および他のバリエーションも同じです。
| アニメーション | アニメーション ID | ワードパターン |
|---|---|---|
| Wave | 3344650532 | hell+o+ h+i+o* wa+[sz]+u+p+ y+o+ greetings* salutations* goo+d+%smorning+ he+y+o* howdy+ what's*%s*up+ |
| Applaud | 5911729486 | ya+y+ h[ou]+r+a+y+ woo+t* woo+h+oo+ bravo+ congratulations+ congrats+ gg pog+ poggers+ |
| Agree | 4841397952 | ye+s* ye+a+h* y[eu]+p+ o+k+ o+k+a+y+ |
| Disagree | 4841401869 | no+ no+pe+ yi+ke+s+ |
| Shrug | 3334392772 | not+%s+sure+ idk+ don't%s+know+ i%s+don't%s+know+ who+%s+knows+ |
| Laugh | 3337966527 | lo+l+ rof+l+ ha[ha]* he[he]+ |
| Sleep | 4686925579 | zzz+ yawn+ |
各アニメーションを起動するトリガーワードのリストは設定可能で、setTriggerWordsForChatAnimation関数を介して追加のアニメーションを追加できます。たとえば、次のLocalScriptは、文字列パターンcra+zyを用いてTiltアニメーションをリンクさせ、crazyやcraaaaaazyなどのトリガーワードをサポートします。また、Applaudアニメーションのためにcoo+lの追加文字列パターンも登録し、coolやcooooolなどの単語をサポートします。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SocialInteractions = require(ReplicatedStorage.SocialInteractions)-- "Tilt"アニメーションの文字列パターンを登録SocialInteractions.setTriggerWordsForChatAnimation("rbxassetid://3334538554", {"cra+zy"})-- "Applaud"アニメーションのために追加の文字列パターンを登録SocialInteractions.setTriggerWordsForChatAnimation("rbxassetid://5911729486", {"coo+l"})
API リファレンス
関数
configure
configure(config: table)
以下のキー/値を使用してデフォルトの設定オプションをオーバーライドします。この関数はLocalScriptからのみ呼び出すことができます。
| キー | 説明 | デフォルト |
|---|---|---|
| useBodyOrientation | ボディ オリエンテーション機能のトグル。 | true |
| waistOrientationWeight | ボディオリエンテーションは腰と首の回転の混合を使用しています。このパラメータは、どちらが主に使用されるかを決定します。1の値は完全に腰に重きを置き、0の値は完全に首に重きを置きます。 | 0.5 |
| useChatAnimations | チャット アニメーション機能のトグル。 | true |
| useDefaultTriggerWordsForChatEmotes | チャットアニメーションにはデフォルトのトリガーワードのリストが付属しています。これをfalseに設定するとオフにし、独自のものを提供できます。 | true |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SocialInteractions = require(ReplicatedStorage.SocialInteractions)-- 腰の回転をより強調し、チャットアニメーション機能を無効にしますSocialInteractions.configure({waistOrientationWeight = 0.75,useChatAnimations = false,})
setTriggerWordsForChatAnimation
setTriggerWordsForChatAnimation(animationId: string, triggerWords: table)
チャットアニメーション機能で新しいアニメーションを登録します。triggerWordsテーブルに含まれる文字列パターンに一致する単語を入力すると、最初のパラメータとして渡されたアニメーションIDのアニメーションが起動します。
トリガーワードはプレイヤーに対して大文字と小文字を区別しないため、パターンwoahはwoah、WOAH、Woah、および他のバリエーションのチャットフレーズを受け入れます。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SocialInteractions = require(ReplicatedStorage.SocialInteractions)-- カスタムアニメーションのための新しい文字列パターンを登録SocialInteractions.setTriggerWordsForChatAnimation("rbxassetid://3334538554",{"cra+zy", "woah+"})
イベント
onChatAnimationPlayed
チャットアニメーションが再生されると発火します。接続された関数は、アニメーションIDとトリガーした単語を引数として受け取ります。このイベントはLocalScript内でのみ接続できます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SocialInteractions = require(ReplicatedStorage.SocialInteractions)
SocialInteractions.onChatAnimationPlayed:Connect(function(animationId, triggerWord)
print(animationId, triggerWord)
end)