SimpleVoiceChat サンプル
目次
概要
クライアント動作のための準備
アプリケーションの作成
クライアントでの動作確認
「ルーム内の全員に対して」および「ルーム内の特定プレイヤーに対して」自身の発声を送信するボイスチャットサンプルです
本サンプルは、最も簡易的なボイスチャットのサンプルとして、
・自身を除く、ルーム内の全員に対して発生を送信(broadcast)
・自身を含む、ルーム内の特定プレイヤーに対して発声を送信(multicast)
するためのサンプルです。
このサンプルにより、VR VoiceChat with MUN におけるボイスチャットの機能について、一通り確認することが可能です。
クライアント動作のための準備▲
バックグラウンドでの動作を有効にする
Unity のバージョンによっては「バックグラウンドでの動作」が無効になっている場合があり、
その状態で複数クライアントを動かすと支障が出ます。
実行バイナリを生成する前に、まずはその確認と、無効になっていた場合に有効にする手続きを行いましょう。
Unity のメニューから Edit > Project Settings > Player を選択します。

PlayerSettings の「Resolution and Presentation」内にある、「Run In Background」のチェックボックスが
ON になっているか確認してください。
もし、OFFになっていた場合には、チェックボックスを ON にします。

アプリケーションの作成▲
実行バイナリを生成する
では改めて実行バイナリを生成しましょう。
Unity のメニューから File > Build Settings... を選んでください。

Build Settings ウィンドウ内の Scenes In Build に対し、
Assets/Monobit Unity Networking/Samples/Scenes/SimpleVoiceChat/SimpleVoiceChat.unity
を追加します。

ここまで登録し終えたら、各種プラットフォーム向けにビルドを実行します。
以下のリンクを元に、各種プラットフォーム向けビルドを実行してください。
Windows 版 はこちら。
MacOSX & macOS Sierra 版 はこちら。
Android 版はこちら。
iOS 版はこちら。
クライアントでの動作確認▲
ビルドしたアプリケーション、および Unity Editor 上で実行してみる
実行バイナリ、あるいは Unity Editor 上でクライアントを実行してみましょう。
以下、Windows 版の画面で説明しますが、MacOS / Android / iOS側でもインタフェースは一緒です。
実行すると、テキストボックスとボタンが表示されます。
PlayerName のテキストボックスの欄に、自身を識別するプレイヤー名を入力し、[Connect Server] ボタンを押します。

続けて以下の画面に切り替わります。実行端末のいずれか1つで、RoomName の入力欄に任意のルーム名を入力し、
[Create Room] ボタンを押してルームを作成してみましょう。

すると、以下の画面に移行します。
この段階でもボイスチャットの自己テストは可能ですが、一旦このまま放置します。

一方で別のクライアントを立ち上げて、PlayerName に名前を入力し、[Connect Server] ボタンを押します。
押すと以下のように既設ルームが選択できようになりますので、選択しましょう。

すると、双方の端末でルーム入室中の状態になり、以下のような表示がなされます。

デフォルトの状態では、VoiceChat Send Type が「broadcast」に設定されており、
この状態でボイスチャットによる対話を実行すると、自身の発声内容が、自身を除くルーム内の全プレイヤーに対して送信されます。

UI を操作することにより、VoiceChat Send Type が「multicast」に切り替えることができます。
この状態に切り替えてボイスチャットによる対話を実行すると、自身の発声内容について、ルーム内の指定されたプレイヤーに対してのみ送信されます。

「multicast」に切り替えた場合、さらにルーム内のプレイヤーのリストと、
ボイスチャットの送信対象として「許可する(Allow)」か「拒否する(Deny)」かの選択を行なうことができます。
PlayerName に表示されたプレイヤーのクライアントに対して、Send Permission の設定を「Allow」にした場合、
その PlayerName のクライアントに対し、自身の発声内容を送信します。
一方、Send Permission の設定を「Deny」にした場合には、その PlayerName のクライアントに対し、自身の発声内容を送信しません。
以下の設定例では、次のような状態でボイスチャットが機能します。
・ PlayerName「Monobit」は、自身の音声を自身のスピーカーでは聞き取れず、PlayerName「Engine」側のスピーカーでのみ自身の音声を出力できます。
・ PlayerName「Engine」は、自身の音声を自身のスピーカーで聞き取ることは可能ですが、PlayerName「Monobit」側のスピーカーでは自身の音声を出力できません。
