PlayCanvasにAgora.ioのボイスチャットを組み込んでみましょう!

PlayCanvasにAgora.ioのボイスチャットを組み込んでみましょう!

皆さん、こんにちは! チャリセです。
今回は、PlayCanvasのコリジョンとAgora.ai のボイスチャットを組み合わせてインタラクティブな3D音声チャットルームを作成する方法を紹介します。

■ 必要な環境の準備
1. PlayCanvas のアカウント
2. Agora.io のアカウント

手順
1. PlayCanvas上でコリジョン設定(ボイスチャットエリア)
まずは、PlayCanvasのシーン内にコリジョンを配置し、Playerが特定のエリアに入ったことを検知できるようにしましょう。

PlayCanvas上でコリジョン設定

2. chatRoom.jsスクリプトを作成し、エンティティに適用
 次は、先ほど作ったコリジョンエンティティに「chatRoom.js
」スクリプトを作成し、適用します。
全体のコードは以下のようにとなります。

■コードの解説
initializeメソッドでは、エンティティのコリジョンコンポーネントに対してtriggerenterとtriggerleaveイベントのリスナーを設定しています。これにより、プレイヤーがチャットルームエリアに入ったり出たりしたときに特定の処理を実行できます。

AgoraRTCClientオブジェクトは、Agora.ioクライアントの設定と管理を行います。rtcオブジェクトはクライアントインスタンスとローカルオーディオトラックを保持し、optionsオブジェクトにはAgora.ioの設定情報が含まれています。
appId,channel,tokenはAgora.ioの管理画面から取得して入れます。
コードを使用して「token」「channel」の生成も可能ですので、より高度なことをする場合はこちらをご参照ください→https://docs.agora.io/en/voice-calling/core-functionality/integrate-token-generation?platform=web

initメソッドでAgora.ioクライアントを作成し、setupEventListenersメソッドで必要なイベントリスナーを設定しています。これにより、他のユーザーがオーディオトラックを公開または非公開にしたときに適切に対応できます。

joinRoomメソッドでは、Agora.ioクライアントを初期化し、指定されたチャンネルに参加します。その後、ローカルのマイクからオーディオトラックを作成し、それを公開します。
leaveRoomメソッドでは、ローカルオーディオトラックを閉じ、チャンネルから退出します。

これらのメソッドは、プレイヤーがチャットルームエリアに入ったり出たりしたときに呼び出されます。プレイヤーエンティティの場合のみ、Agora.ioクライアントのjoinRoomまたはleaveRoomメソッドを呼び出します。

このコードは、PlayCanvasの3D環境内でのプレイヤーの動きに応じて、Agora.ioのボイスチャットに自動的に参加・退出する仕組みを実装しています。これにより、バーチャル空間内での自然なコミュニケーション体験を提供することができます。