アバターコンテキストメニュー ACM (ACM) は、ユーザーが互いに交流するのを簡単にしますACM がエクスペリエンスで有効になっていると、ユーザーは他のユーザーのキャラクターまで歩いて行き、クリックして小さなメニューを開き、複数のデフォルトオプションを開くことができます。プレイヤーは友達リクエストを送信し、プライベートチャットを開始し、ユーザーのプロフィールを表示するか、ウェーブを送信することができます。
エクスペリエンスで ACM を有効にした後、次の方法で ACM をカスタマイズできます:
- プログラマティックに 特定のユーザーのためにACMを開いて閉じる。
- カスタムオプションを追加 および 既存のオプションを ACM から削除 します。
アバターコンテキストメニューを有効にする
アバターコンテキストメニューは、StarterGui:SetCore() オプション「AvatarContextMenuEnabled」を使用して、LocalScript で有効にする必要があります。ACM は、他のユーザーをクリックするための事前定義された動作がないエクスペリエンスで最もよく使用されます。
次のコードサンプルを使用して、LocalScript に ACM を有効にします:
-- ローカルスクリプトで実行、理想的には「StarterPlayerScripts」内local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
ACM が有効になっているかどうかを検出する必要がある場合は、次のコードを使用して ACM の現在の状態について boolean を返すことができます:
--ACM が現在有効になっているかどうかを示すブールを返します。StarterGui:GetCore(AvatarContextMenuEnabled)
ACM を開いて閉じる
有効になったら、StarterGui でプログラマティックに ACM プログラムを開いて閉じることができます。
ACM をプログラムで開くには、次のコードを使用してください:
-- スターターGUIを使用:ターゲットプレイヤーが有効なプレイヤーオブジェクトである場合、SetCore を使用StarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
ACM をプログラムで閉じるには、次のコードを使用してください:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
メニューオプション
スクリプトで 追加 と 削除 アクションをスクリプト作成うことができます。デフォルトでは、メニューに次のオプションがあります:
メニューオプション | 説明 |
---|---|
友達 | 選択したユーザーに友達リクエストを送信します。 |
チャチャット | 経験中のチャットで選択したユーザーとプライベートな会話を開きます。 |
表示 | 選択したユーザーの外外見を調べるウィンドウを開きます。 |
ワンド | 選択したユーザーに波のアニメーションを開始します。 |
ACM が開いたら、ユーザーはキャラクター選択カルーセルで他のユーザーをスクロールして選択できます。キャラクターは、選択したキャラクターへの距離に基づいて並べ替えられます。メニューは開いたときにのみ更新され、利用可能なユーザーのリストはスクロールすると繰り返されます。

メニューオプションを追加
有効になったら、経験に特有のアクションを ACM に追加できます。たとえば、エクスペリエンスは、取引リクエスト、パーティーへの追加オプション、または他の特別な相互作用を許可する可能性があります。
次の例では、アバターコンテキストメニューにカスタムアクションを追加する方法を示します:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- 機能を "BindableEvent" に接続する
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- この時点で、リモート関数に InvokeServer() を呼び出して、サーバーに選択を通知することができます
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- SetCore() を使用して「AddAvatarContextMenuOption」で ACM オプションを追加
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
メニューオプションを削除
アクション名またはデフォルトの Enum.AvatarContextMenuOption 枚数を参照して、カスタムとデフォルトの友達追加、チャット、表示、およびウェーブオプションを ACM から削除できます。
次のコードを使用して、デフォルトとカスタムメニューオプションを削除します:
-- 「カスタム ACM アクション」オプションを削除StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- AvatarContextMenuOption.Friend Enum を参照してデフォルトの「友達」オプションを削除するStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
メニューの外外見をカスタマイズ
アバターコンテキストメニューの外観を変更するには、StarterGui:SetCore() オプション「AvatarContextMenuTheme」を呼び出し、メニューの外外見を調整するパラメータと値のテーブルを提供します。
ACM ユーザーインターフェイスには次のセクションが含まれています:

A. 名前タグ: 対話するキャラクターのユーザー名。
B. ボタンフレーム: ACMボタンのすべてを含む。
C. ボタン: デフォルトまたはカスタム ACM アクションの個々のボタン。
外観パラメータ
これらは ACM とのカスタマイズパラメータです:
バックグランド
背景色 | ACM の全体の背景用の Color3 (背景画像を使用していないときに最も役立つ). |
背景透明 | ACM の全体の背景の透明度 (0–1) (背景画像を使用していないときに最も役立つ)。 |
背景画像 | ACM バックグラウンドの画像の有効なアセット ID。 |
背景画像の透明性 | 背景画像の透明度 (0–1)。 |
背景画像スケールタイプ | 背景画像スケーリング用の Enum.ScaleType 枚列挙げ。 |
背景画像スライスセンター | 背景画像スケールタイプが Rect に設定されていると、9スライス画像の中心を指定する A Enum.ScaleType.Slice 。 |
名前タグ
ボタンフレーム
ボタンフレームカラー | アクションボタンを含むセクション (フレーム) の A Color3 |
ボタンフレームの透明性 | ボタンフレームセクションの透明度値 (0–1)。 |
ボタン
ボタンの色ButtonColor | ACM アクションボタンの背景用の Color3 |
ボタンの透明性 | アクションボタンの背景色の透明度値 (0–1)。 |
ボタンホバーカラー | アクションボタンの「ホバリング」状態用の Color3 。 |
ボタンホバー透明度 | アクションボタンの「ホバリング」色の透明度値 (0–1)。 |
ボタンの下線色 ButtonUnderlineColor | それぞれのアクションボタンを分離する薄い線のための Color3 |
ボタン画像 | ボタンの背景の画像の有効なアセットID。 |
ボタン画像スケールタイプ | ボタン画像スケーリング用の Enum.ScaleType 枚列挙げ。 |
ボタン画像スライスセンター | ボタン画像スケールタイプが Rect に設定されていると、9スライス画像の中心を指定する A Enum.ScaleType.Slice 。 |
テキスト
フォント | 名前タグとボタンテキストの Enum.Font 枚列値。 |
テキストカラー | ACM 内のすべてのテキストに対する Color3 |
テキストスケール | 各要素のデフォルトのテキストサイズをスケールする浮動値。 |
様々な画像
メニュー画像を退出する | ACM 閉じるボタンの画像のアセットID。 |
スクロールLeftImage | カルーセル「スクロール左」ボタンの画像のアセットID。 |
スクロールRightImage | カルーセル「右スクロール」ボタンの有効なアセットIDの画像。 |
選択されたキャラクタ
選択されたキャラクターインジケーター | キャラクターの頭の上に浮かんで、選択されていることを示す MeshPart 。 |
サイズと位置
サイズ | ACM の全体サイズ用の UDim2 。 |
ミニサイズ | A Vector2 ACMの最小サイズを指定する。 |
最大サイズ | A Vector2 ACM の最大サイズを指定する。 |
アスペクト比率 | ACMの相対的な幅と高さを指定する浮動値。 |
アンカーポイント | ACM の AnchorPoint 。 |
画面位置 OnScreenPosition | A UDim2 ACM の画面上の位置を指定する (開いたときにティーンになる位置) |
オフスクリーン位置 | A UDim2 ACMのオフスクリーン位置を指定する(開いた/閉じたときにティーンから/へ移動する位置) |
カスタマイズの例
次のコードサンプルは、いくつかの基本パラメータを使用して ACM テーマをカスタマイズします:
local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuTheme", {BackgroundImage = "",BackgroundTransparency = 0.5,BackgroundColor = Color3.fromRGB(111, 145, 242),NameTagColor = Color3.fromRGB(0, 0, 200),NameUnderlineColor = Color3.fromRGB(213, 233, 255),ButtonFrameColor = Color3.fromRGB(15, 24, 65),ButtonFrameTransparency = 0.2,ButtonUnderlineColor = Color3.fromRGB(213, 233, 255),Font = Enum.Font.SciFi})
