This document is about: FUSION 2
SWITCH TO

Chat Bubble


Available in the Industries Circle
Circle
Fusion Industries プロトタイピングアドオン

このアドオンは、すぐ使えるチャットバブルを提供します。同じバブルにいる人は互いに会話が可能です。

チャットバブルは、AudioroomDynamicAudioGroupアドオンで構築されています。動的なオーディオグループを分けて、近くにいるプレイヤー同士で互いに会話を始められます。

Fusion Chat Bubble

静的チャットバブル

静的チャットバブルは、シーン内の特定の位置にあるルームです。
チャットバブルへのアクセスは、手動でボタンを押すか、自動で最大人数に達した時にロックすることができます。
同じボタンを押すか、チャットバブルからプレイヤーが離れることで、ロックを解除できます。
バブルのメッシュのマテリアルは、ロックステータスに依存します。

セットアップ

シーンは、以下を含む必要があります。

  • AudioRoomManagerコンポーネント

プレイヤーのプレハブは、以下を含む必要があります。

  • ChatbubbleMemberコンポーネント
  • DynamicAudioGroupMemberコンポーネント
  • NetworkLocomotionValidationコンポーネント(Locomotion validationアドオン)、またはILocomotionObserver.OnDidMoveをトリガーするコンポーネント

チャットバブルのオブジェクトは、以下を含む必要があります。

  • Chatbubbleコンポーネント

ChatBubble

Chatbubbleクラスは、チャットバブルを管理します。
各バブルは、様々な形状(球・円・立方体)と、最大収容人数のパラメーターを持つことができます。最大収容人数に達したバブルにはアクセスできません。
ChatbubbleIAudioRoomインターフェースを実装し、AudioRoomManagerに登録されます。
また、IAudioRoomListenerインターフェースによって、AudioRoomAudioRoomMemberが入室/退室した時に通知されるため、チャットバブルのメンバーリストを更新できます(ローカルユーザーは、ネットワークリグにAudioRoomMemberコンポーネントを持ち、ChatbubbleMemberを継承をしている必要があります)。

ChatBubbleMember

このクラスはAudioRoomMemberを継承していて、プレイヤーのネットワークリグに追加されている必要があります。
チャットバブルを同期するためのChangeDetectorを含み、AudioRoomMemberが入室したオーディオルームがChatbubbleなら、通常のチェックを通さずに情報を受け取ることができます。
これは例えば、途中参加者視点で、(ロック中の)バブルへ入ることを禁止するために必要です。
加えて、RoomChangeメソッドによって、プレイヤーがチャットバブルに入った時に、roomIDがオーディオフィルターに追加されます(DynamicAudioGroupMemberでは、2人の近接ユーザーが互いに会話できるようにするための追加条件が必要です)。

ChatBubbleLocomotionValidator

ChatBubbleLocomotionValidatorコンポーネントは、満員やロックされたチャットバブルにユーザーが入ることを防ぎます。

このコンポーネントはILocomotionValidatorインターフェースを実装しています。
そのため、プレイヤーがチャットバブルに入る(満員でなければ)ことが許可されるかをチェックできます。
allowedToMoveToChatBubbles設定は、特定のプレイヤー(例:ボット)がチャットバブルに入ることを防ぐために使用されることに注意してください。
このクラスは、プレイヤーのネットワークリグに追加されている必要があります。

動的チャットバブル

動的チャットバブルは、特殊なチャットバブルです。2人のプレイヤーが互いに近づくと、自動的にスポーンします。

Fusion Chat Bubble

セットアップ

通常のチャットバブルのセットアップに加えて、追加のコンポーネントが必要です。

シーン:

  • DynamicChatBubbleManagerコンポーネント

プレイヤーのプレハブ:

  • DynamicChatBubbleSpawnerコンポーネント

動的チャットバブルのプレハブ:

  • DynamicChatBubbleコンポーネント
  • NetworkTransformコンポーネント

DynamicChatBubbleSpawner

DynamicChatBubbleSpawnerは、2人のプレイヤーが互いに近づいた時(この距離は、proximityDistanceパラメーターで定義されます)に、動的チャットバブルをスポーンする役割を持ちます。
プレハブは、PlayerIdが小さい方のプレイヤーによってスポーンされます。
動的チャットバブルは、2人のプレイヤー間の距離が制限を超えて離れた場合に破棄されます。
チャットバブルをスポーンしたプレイヤーが離れても、他のプレイヤー同士がチャットバブルにまだいるなら、チャットバブルは破棄されないことに注意してください。
このクラスは、プレイヤーのネットワークリグに追加されている必要があります。

DynamicChatBubble

DynamicChatBubbleChatBubbleを継承し、チャットバブルがスポーン/デスポーンした時に、DynamicChatBubbleManagerに動的チャットバブルを登録/登録解除するために使用されます。

DynamicChatBubbleManager

DynamicChatBubbleManagerは、DynamicChatBubbleのプールを管理します。
プレイヤーがDynamicChatBubbleをスポーンすると、それがdynamicChatBubblesリストに追加されます。
プレイヤー間の距離が変化した直後にチャットバブルを生成/破棄するオーバーヘッドを避けるため、空の動的チャットバブルがemptyBubbleConservationDurationで用意されています。

依存関係

  • AudioRoom アドオン
  • DynamicAudioGroup アドオン
  • Touch-Hover アドオン
  • Locomotion validation アドオン(オプションケース)

デモ

デモシーンはAssets\Photon\FusionAddons\ChatBubble\Demo\Scenes\フォルダーにあります。

ダウンロード

このアドオンの最新バージョンは、Industries アドオンのプロジェクトに含まれています。

対応するトポロジー

  • 共有モード

更新履歴

  • Version 2.0.1: Fix to an error triggered upon disconnection
  • Version 2.0.0: First release
Back to top