マルチプレイでのvoicechat実装方法について議論してみませんか?

マルチプレイでのvoicechat実装方法について議論してみませんか?

Unityでオンラインゲーム(マルチプレイ)でVoiceChatを実現方法を模索するディスカッション記事です。

方法1つ目:Netcode for GameObjects

クライアントもサーバーもUnityにする方式になります。
Netcode for GameObjectsはUnityのいわゆる公式ソリューションになります。

(2021年10月22日)Unityから新しいネットワークサービス一式が発表されました。マッチングサーバー(Lobby)とリレーサーバー(Relay)が含まれており、こちらを利用することになるのではと思います。

Introducing Unity Gaming Services | Unity Blog
料金表は下記で、50 CCUまで無料、1 CCUあたり$0.16、オープンベータではマッチあたり10 CCUまでに限定されているようです。

Start building, completely free | Unity

Photonのリレーサーバーが利用可能みたいです。
エディタで接続するとすぐ切断される不具合がある模様(ビルドすると大丈夫とのこと)。Photonのホストマイグレーションは利用できないので注意。

方法2つ目:Photon

自分でサーバーを立てなくてもオンラインゲームを開発できるネットワークサービスが提供されています。
しかし、WebGLに非対応。

Photon Fusionのリリースに伴って既存のPUNはレガシー扱いになっています。今後のプロジェクトはPhoton Fusionの使用をとのことです。

クラウドサービスのPhoton Cloudが基本。
料金体系は主に同時接続者数(CCU)で課金され、20ユーザーを超えると有料になる。ルームを立ててその中にユーザーが入る方式。
デフォルトの動作としてはルームが一杯になると新しいルームが自動的に作られる。

サーバーを自分で立てるPhoton Serverもある。サーバー費用・運用のコストがかかる。こちらもCCUで課金される。
PUN2(Photon Unity Networking 2)で始めるオンラインゲーム開発入門がわかりやすいとのこと。

注意として、Photon CloudおよびPhoton Serverは現在「ゲーム用途限定」となっているようです。ダッシュボードで全プランで「FOR GAMES ONLY」の表示が出てきます。ノンゲームではPhoton Industriesの契約が必要となっており、VRChatやRec Roomはこちらを使用しているようです(開発者のシート単位の契約が必要で結構高いです)。

Photon運営事務局に問い合わせたところ、「App Storeなどのゲームカテゴリに登録されるかどうか」がゲームかどうかの一つの基準になるとのことです。

Photon Serverを使えばローカルネットワーク内でも使用できる。が、ライセンス認証のためにインターネット接続が必要。インターネットに接続できない場合はオフラインライセンスを提供しているとのこと。
オフラインライセンスについては「最小12ヶ月から」とのことでした。短期間のイベントや展示用途で使用するには難があるかもしれませんとのこと。

方法3つ目:Photon Fusion(Photon Voice)

1番簡単だったのに、WebGLに非対応
Photon Voice 2をインポートしてApp IDを入力し、DemoVoiceシーンあたりを再生すればオーケー。PUNと組み合わせたデモもある(DemoVoicePun-Sceneシーン)。導入がめちゃくちゃ簡単。
Photon PUNとBoltを統合した次世代サービス。お値段がやや高め。
Netcode for GameObjectsやMirrorと比べ帯域使用が6分の1で、60Hzで最大200プレイヤーを実現するとのこと。

方法4つ目:Vivox

In-game voice and text chat from Vivox | Unity Multiplayer Services
5000 PCU(ピーク同時接続ユーザー数)まで無料で、5001 PCUからいきなり$2000/月になります。
もうちょっと緩やかな料金体系にしてほしいという書き込みがあります。みんなで、「そうだ、そうだ、ふざけんな!と言いましょう」
WebGLビルドはサポートしてないとのこと。
2022年2月時点でサポート予定なしとの公式の回答があります。サポートをして欲しい方はこの回答にlikeをつけましょう!

方法5つ目:Agora

Clubhouseがボイスチャットに使用していることで話題になりました(Clubhouse自体はすでにJanus WebRTC Serverに切り替えているそうです)。UnityのSDKもあります。

本家の料金表では月10000分まで無料+シンプルな従量課金制なのですが、日本から利用する場合は代理店を通す必要があり、初期費用やアプリごとの月額基本料金がかかってきます。これがかなり高額なので、個人や小規模開発者の選択肢には入らないと思います。

方法6つ目:Dissonance Voice Chat

いろんなネットワークソリューション上にボイスチャットを追加するアセットとのこと。
使ったことないのでわかりません。
誰かいたら教えてください。

方法7つ目:WebRTC for Unity

Unity公式のlibwebrtcベースのWebRTCパッケージとのこと。
使ってみたっていう人から聞いた話では、実装に難ありとのこと。
主(管理人)は使ったことないのでわかりませんが、なんとなく良さげっぽいとは想っていますが・・・
使ってみたいなーとは想っています。

方法8つ目:Steam

Valveのマルチプレイヤー機能一式が提供されてるとのこと。

方法9つ目:ably

最初に作ったみたやつがこの方法でした。
なんちゃってVoiceChatが出来上がります。
Ably platformを登録してjavascriptを入れます。
Ably + WebRTC tutorialを見て実装できます。
簡単だけど、あくまでもなんちゃってVoiceChatになります。

と調べてみたらこんな感じでした。
ほかにもっと、「こんな方法があったよー」などあれば、会員になって一緒にわちゃわちゃ、おしゃべりしませんか?
というわけで、よろしくおねがいします。

報告する

関連記事一覧

コメント

  1. この記事へのコメントはありません。

コメントするためには、 ログイン してください。