バブルチャット

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

エクスペリエンス中のチャット機能により、ユーザーアバターと NPC の上にカスタマイズ可能なチャットバブルを表示するために、インエクスペリエンステキストチャット システムをサポートできます。バブルチャットは、ユーザーがコンテンツを中心に

バブルチャットの有効化

バブルチャットをエクスペリエンスで有効にするには:

  1. In the エクスプローラー ウィンドウ, select BubbleChatConfiguration under TextChatService .

  2. In the プロパティ ウィンドウ, check the Enabled checkbox.

バブルのカスタマイズ

バブルチャットを有効にすると、チャットバブルの外観と動作をカスタマイズして、エクスペリエンステーマに合わせてください。 Class.BubbleChatConfiguration の BubbleChatConfiguration ウィンドウを使用して、テキストの色やスペースなど、基本的な変更をカスタマイズするか、

あるいは、LocalScript にすべてのカスタマイズ設定を追加して、StarterPlayerScripts を追加できます。これにより、エンジンは実行時にカスタマイズを適用し、Studio の設定を上書きできます。ユーザーが特定のイベントまたは条件をトリガーすると、チャットバブルに特殊効果を適用で

基本のカスタマイズ

次の表には、一般的なバブルチャットのカスタマイズプロパティが示されています。カスタマイズプロパティの完全なリストは、BubbleChatConfiguration を参照してください。

プロパティ説明デフォルト
BackgroundColor3バブルの背景色は Color3 です。[250, 250, 250] >
FontFaceFont のバブルテキスト。BuilderSansMedium
TextColor3Color of bubble text in Color3 .[57, 59, 61]
TextSizeバブルテキストのサイズ。16

詳細なカスタマイズ

バブルのカスタマイズの進駆については、BubbleChatConfiguration の子供たちとして、バブルの外観の特定のアスペクトを表す UI オブジェクトを追加します。

  • ImageLabel 背景画像設定。
  • UIGradient で背景グラデーション設定。
  • UICorner で、バブルのコーナー形状。
  • UIPadding テキストとバブルエッジの間のパッドスペース、親のサイズに対して。

これらのオブジェクトを追加した後、チャットバブルのプロパティを変更できます。次の例 LocalScript は、バブルの背景画像と鋭いコーナーを追加します:

高度なバブルカスタマイズ

local TextChatService = game:GetService("TextChatService")
local bubbleChatConfiguration = TextChatService.BubbleChatConfiguration
bubbleChatConfiguration.TailVisible = false
bubbleChatConfiguration.TextColor3 = Color3.fromRGB(220, 50, 50)
bubbleChatConfiguration.FontFace = Font.fromEnum(Enum.Font.LuckiestGuy)
local bubbleUICorner = bubbleChatConfiguration:FindFirstChildOfClass("UICorner")
if not bubbleUICorner then
bubbleUICorner = Instance.new("UICorner")
bubbleUICorner.Parent = bubbleChatConfiguration
end
bubbleUICorner.CornerRadius = UDim.new(0, 0)
local bubbleUIPadding = bubbleChatConfiguration:FindFirstChildOfClass("UIPadding")
if not bubbleUIPadding then
bubbleUIPadding = Instance.new("UIPadding")
bubbleUIPadding.Parent = bubbleChatConfiguration
end
bubbleUIPadding.PaddingTop = UDim.new(0, 20)
bubbleUIPadding.PaddingRight = UDim.new(0, 10)
bubbleUIPadding.PaddingBottom = UDim.new(0, 15)
bubbleUIPadding.PaddingLeft = UDim.new(0, 10)
local bubbleImageLabel = bubbleChatConfiguration:FindFirstChildOfClass("ImageLabel")
if not bubbleImageLabel then
bubbleImageLabel = Instance.new("ImageLabel")
bubbleImageLabel.Parent = bubbleChatConfiguration
end
bubbleImageLabel.Image = "rbxassetid://6733332557"
bubbleImageLabel.ScaleType = Enum.ScaleType.Slice
bubbleImageLabel.SliceCenter = Rect.new(40, 40, 320, 120)
bubbleImageLabel.SliceScale = 0.5

次の表には、利用可能な GuiObject と AppearanceModify の子供たちの有効なカスタマイズプロパティが含まれています:

プロパティ説明デフォルト
Imageバブルバックグラウンド画像のアセット ID。
ImageColor3Color tint of the bubble background image in Color3 .[255, 255, 255]
ImageRectOffsetピクセルで表示される画像エリアのオフセット。(0, 0)
ImageRectSizeピクセルで表示する画像エリアのサイズ。画像全体を表示するには、次の値を設定します: 0(0, 0)
ScaleTypeバブルのサイズが絶対サイズの倍数でない場合にイメージをレンダリングするためのスケールタイプ。Stretch
SliceCenter画像が 9 スライスの画像である場合は、画像の境界をスライスします。ScaleTypeSlice として設定した場合にのみ適用されます。(0, 0, 0, 0)
SliceScaleイメージが 9 スライスのイメージの場合、スライスの端に対するスケール比率を設定します。ScaleTypeSlice として設定した場合にのみ適用されます。1
TileSize画像のサイズ。ScaleTypeTile として設定した場合にのみ適用されます。(1, 0, 1, 0)

バブルごとのカスタマイズ

特定のコンディションにより、チャットバブルの動作を個々にスタイル、変更できます。たとえば、チャットバブルを使用して、NPC とユーザーを異ならせ、重要な健状況ステータスを強調し、特定のキーワードでメッセージに特殊効果を適用できます。

バブルのカスタマイズを設定するには、LocalScript を使用して、BubbleChatMessageProperties のマッチングプロパティをオ

次のベーシックなカスタマイズプロパティは、バブルごとに利用可能です:

プロパティ説明デフォルト
BackgroundColor3バブルの背景色は Color3 です。(250, 250, 250)
BackgroundTransparencyバブルの背景透明度。0.1
FontFaceFont のバブルテキスト。BuilderSansMedium
TextColor3Color of bubble text in Color3 .[57, 59, 61]
TextSizeバブルテキストのサイズ。16

次の例では、チャットメッセージ送信者が IsVIP 属性を持っているかどうかをチェックして、VIPユーザーのチャットバブルに特別な見た目を追加します:

VIP バブル

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- 新しいチャットバブルがエクスペリエンスに追加されたときのイベントハンドラー
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- チャットメッセージに TextSource (送信者) が含まれているかどうかをチェックします
if message.TextSource then
-- BubbleChatMessageProperties インスタンスを作成して、チャットバブルをカスタマイズする
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- ユーザーを取得すると、ユーザーID に基づいてチャットメッセージを送信したユーザーを取得できます
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- プレイヤーが VIP の場合、チャットバブルのプロパティをカスタマイズする
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end

すべての高度なカスタマイズオプションは、バブルのカスタマイズのために利用可能です。一般的なカスタマイズの場合、 BubbleChatMessageProperties の子として、健康状態の低いユーザーのチャットバブルをカスタマイズするための他のプロパティと一緒に特殊なグラデー

低い体力のバブル

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- 新しいチャットバブルがエクスペリエンスに追加されたときのイベントハンドラー
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- チャットメッセージに TextSource (送信者) が含まれているかどうかをチェックします
if message.TextSource then
-- ユーザーを取得するには、ユーザーID を使用してチャットメッセージを送信します
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- ユーザーのキャラクターでヒューマノイドを見つける
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- BubbleChatMessageProperties インスタンスを作成して、チャットバブルをカスタマイズする
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- 低い健康状態のチャットバブルプロパティをカスタマイズする
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- 子供として UIGradient を追加し、グラデーションをカスタマイズします
local uiGradient : UIGradient = Instance.new("UIGradient")
uiGradient.Color = ColorSequence.new(Color3.fromRGB(110, 4, 0), Color3.fromRGB(0, 0, 0))
uiGradient.Parent = bubbleProperties
uiGradient.Rotation = 90
return bubbleProperties
end
end
end

NPC バブル

NPC (ノンプレイヤーキャラクター) のチャットバブルを非表示にするには、 TextChatService:DisplayBubble() を呼び出し、NPC キャラクターとメッセージをパラメーターとして指定します。これらのバブルは、 TextChatService.OnBubbleAdded コールバックを使用してカスタマイズできます。

TextChatService:DisplayBubble() は、クライアント側のスクリプトにのみ作動します。ですので、<


local TextChatService = game:GetService("TextChatService")
local prompt = workspace.SomeNPC.ProximityPrompt
local head = prompt.Parent:WaitForChild("Head")
prompt.Triggered:Connect(function()
TextChatService:DisplayBubble(head, "Hello world!")
end)