プラットフォーム統合チャット

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

プラットフォーム統合チャットは、すべてのプレイヤーに報告やミュートなどの安全ツールへの一貫したアクセスを提供し、クイックワードのようなチャット機能をすべてのゲームで信頼性高く展開できるようにします。また、現在のプレフィックスシステムを置き換え、ユーザーに関連付けられた役割が一貫して表示され、すべての年齢層に安全になります。

ゲーム内の何も変更されることはなく、プラットフォーム統合チャットを有効にするまで待つ必要があります。有効にすると:

  • RobloxはデフォルトウィンドウまたはUIに配置したTextChannelWindowでチャットを配信およびレンダリングします。カスタムチャットUIはもはやメッセージを自分でレンダリングできません。
  • プレイヤーメッセージのテキストはコードからアクセスできません。読み取ったり、ログに記録したり、エクスポートしたりすることはできません。以前はメッセージテキストを返していたAPIは、nilの代わりに空の文字列("")を返すようになり、スクリプトは実行され続けますが、コンテンツは受け取れません。

サポートされていないAPI

プラットフォーム統合チャットが有効になると、以下のAPIは""(空の文字列、nilではない)を返し、警告をログに記録します:

機能サポートされていないAPI代わりに使用するもの
チャットメッセージと表示TextChatMessage.Text、TextChatMessage.TranslationカスタムチャットGUIをTextChannelWindowに移行します。TargetをTextChannelに設定します。ユーザーは自動的にメッセージを送受信できます。
チャットプレフィックスTextChatMessage.PrefixTextサポートされていません。ゲームがプレフィックスを必要とする場合は、まだプラットフォーム統合チャットを有効にしないでください。
プリセット / チャットホイールTextChannel:SendAsync()クイックワードのクリエイターカスタマイズを使用して、チャットに関連するフレーズを追加します。
モデレーション / 管理者コマンドOnIncomingMessage、Player.ChattedチャットトリガーコマンドにはTextChatCommandを使用します。ライブイベント中のモデレーションのために、すべてのチャットを表示するには読み取り専用チャットを使用します。

プラットフォーム統合チャットを有効にする

Studioでプラットフォーム統合チャットを有効にするには:

  1. Explorerウィンドウを開きます。
  2. TextChatServiceを選択します。
  3. Propertiesパネルで、PlatformIntegratedChatを見つけます。
  4. Enabledに設定します。

更新が有効になると、前述のサポートされていないAPIは空の文字列を返し、警告をログに記録します。このプロパティはいつでもDisabledに戻すことができます。

このプロパティはStudio内でのみ変更でき、スクリプトからは変更できません。

TextChannelWindowを作成する

TextChannelWindowを作成するには:

  1. StarterGuiにScreenGuiを作成します。
  2. ScreenGuiの子としてTextChannelWindowインスタンスを追加します。
  3. SizeおよびPositionプロパティを設定して、ウィンドウを希望の位置に配置します。
  4. Targetプロパティを表示したいTextChannelに設定します。

各TextChannelWindowは単一のTextChannelにバインドされます。複数のチャネルを一緒に表示するには、各チャネルのためにTextChannelWindowを作成し、独自の表示/非表示ロジックを適用します。グローバルチャネルはカスタムウィンドウのターゲットとしては利用できません。

以下のコードサンプルは、RBXGeneralチャネルを表示するカスタムチャットウィンドウを作成します:

LocalScript in StarterGui
local TextChatService = game:GetService("TextChatService")
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "TextChannelWindowDemo"
screenGui.Parent = script.Parent
local myTextChannelWindow = Instance.new("TextChannelWindow")
myTextChannelWindow.Size = UDim2.new(0, 400, 0, 300)
myTextChannelWindow.Position = UDim2.new(0, 10, 0, 10)
myTextChannelWindow.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
myTextChannelWindow.BackgroundTransparency = 0.5
local targetChannelName = "RBXGeneral"
local targetChannel = TextChatService:WaitForChild("TextChannels"):WaitForChild(targetChannelName)
if targetChannel and targetChannel:IsA("TextChannel") then
myTextChannelWindow.Target = targetChannel
end
myTextChannelWindow.Parent = screenGui

カスタムチャネルを独自のウィンドウでのみ表示する

デフォルトでは、デフォルトチャットウィンドウはすべてのTextChannelからメッセージをレンダリングするため、カスタムTextChannelWindowで表示するチャネルもデフォルトウィンドウに表示されます。

カスタムチャネルを独自のウィンドウでのみ表示するには:

  1. Explorerで、TextChatServiceの下にあるChatWindowConfigurationを選択します。
  2. Propertiesパネルで、TextChannelDisplayModeをDefaultTextChannelsに設定します。
  3. 各カスタムチャネルについて、TextChannelWindowを作成し、そのTargetをそのチャネルに設定します。

以下の例は、独自のウィンドウにのみ表示されるカスタムギルドチャネルを示しています:

LocalScript in StarterPlayerScripts
-- 前提条件: StudioでTextChannelDisplayModeがDefaultTextChannelsに設定されています。
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
local playerGui = Players.LocalPlayer:WaitForChild("PlayerGui")
-- スクリプトはランタイムでプロパティを読み取ることができますが、変更することはできません。
local config = TextChatService.ChatWindowConfiguration
if config.TextChannelDisplayMode ~= Enum.TextChannelDisplayMode.DefaultTextChannels then
warn("ギルドメッセージはデフォルトチャットウィンドウにも表示されます。")
end
local guildChannel = TextChatService:WaitForChild("TextChannels"):WaitForChild("Guild")
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "GuildChat"
screenGui.Parent = playerGui
local guildWindow = Instance.new("TextChannelWindow")
guildWindow.Size = UDim2.new(0, 400, 0, 300)
guildWindow.Target = guildChannel
guildWindow.Parent = screenGui

これらの動作を考慮してください:

  • TextChannelDisplayModeはStudioまたはプラグインからのみ設定できます。スクリプトはランタイムで読み取ることができますが、変更することはできません。
  • このプロパティはChatWindowConfigurationにのみ存在します。TextChannelWindowは、すでにTargetを通じて単一のチャネルを表示するため、必要ありません。
  • ランタイムで作成されたチャネルは、表示されるときに現在のモードに従います。ランタイムで作成されたデフォルトチャネル(チームやウィスパーなど)は、依然としてデフォルトウィンドウに表示されます。

チャットトリガー管理者コマンドを移行する

管理者コマンドを更新する必要があるかどうかは、トリガーの方法によります:

  • チャットからトリガーされたコマンドはTextChatCommandを使用する必要があります。
  • 生のチャットテキストを読み取るコマンド処理はもはや機能しません。これには、MessageReceived、Chatted、またはTextChatMessageの内容を検査するその他のものが含まれます。

移行するには:

  1. 現在生のチャットメッセージを解析しているゲーム内の管理者コマンドを特定します。
  2. 各コマンドのためにTextChatCommandを作成します。
  3. コマンドのトリガーキーワードとコールバックロジックを定義します。
  4. Textを読み取ったり、コマンド処理のためにChattedをリッスンしたりするコードを削除します。

例については、カスタムテキストチャットコマンドを参照してください。

FAQ

PlatformIntegratedChatをEnabledに設定しない限り、ゲーム内で何も変わりません。

いいえ。それらの表面に関するポリシーは変更されていません:プレイヤー間の双方向通信には使用できず、少なくとも1分のレート制限が必要であり、モデレーションの対象となります。

いいえ。この更新はTextChatServiceのみを対象としています。

いいえ。PlatformIntegratedChatがEnabledのとき、どのAPIもクライアントまたはサーバーでプレイヤーメッセージの内容を返しません。ゲーム内のモデレーターは、チャットを表示するために読み取り専用チャット権限を使用できます。プレイヤーは、Robloxの悪用報告やミュートやブロックなどの安全ツールに依存することもできます。

いいえ。カスタマイズなしでデフォルトのRobloxチャットを使用している場合、アクションを取る必要はなく、変更は見られないはずです。

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。