MixedReality-WebRTC と Ayame Labo を利用して Unity で WebRTC を使う

3 min read読了の目安(約3400字

この記事について

この記事では、Unity アプリで MixedReality-WebRTC と Ayame Labo を利用して WebRTC を使ったビデオ通話を行う方法について紹介します。

利用するサービス、ライブラリ

Ayame Labo

https://ayame-labo.shiguredo.jp

Ayame Labo は株式会社時雨堂さんが無料で提供してくださっているシグナリングサービスです。

MixedReality-WebRTC

https://github.com/microsoft/MixedReality-WebRTC/

MixedReality-WebRTC は Microsoft が公開している WebRTC ライブラリです。

バージョン 2.0 の時点では以下のプラットフォームがサポートされています。

  • Windows 10 デスクトップ
  • UWP (HoloLens 含む)
  • Android

MixedReality-WebRTC-ayame

https://github.com/tarukosu/MixedReality-WebRTC-ayame

私が公開している Unity 用ライブラリです。
MixedReality-WebRTC にてシグナリングサーバーとして Ayame を利用するためのコードが含まれています。

開発手順

Ayame Labo への登録

https://ayame-labo.shiguredo.jp/

上記ページに GitHub アカウントを使ってサインインします。
サインイン後のページで表示されるシグナリングキーを後ほど利用します。

Unity プロジェクトの準備

Unity プロジェクトの作成

Unity 2019.4 以降のバージョンで、新規プロジェクトを作成してください。

MixedReality-WebRTC と MixedReality-WebRTC-ayame の導入

Unity プロジェクトの Packages\manifest.json を以下のように変更してください。

{
  "scopedRegistries": [
    {
      "name": "Microsoft Mixed Reality",
      "url": "https://pkgs.dev.azure.com/aipmr/MixedReality-Unity-Packages/_packaging/Unity-packages/npm/registry/",
      "scopes": ["com.microsoft.mixedreality"]
    }
 ],
  "dependencies": {
    "com.tarukosu.mixedreality.webrtc.ayame": "https://github.com/tarukosu/MixedReality-WebRTC-ayame.git?path=Assets/Microsoft.MixedReality.WebRTC.Unity.ThirdParty/Ayame#v0.5.0",
    "com.microsoft.mixedreality.webrtc": "2.0.2",
    "com.microsoft.mixedreality.webrtc.samples": "2.0.2",
    ...

変更後、Unity Editor を表示するとパッケージのダウンロードとインポートが行われます。

サンプルシーンのインポート

Window > Package Manager から、MixedReality-WebRTC Ayame を選択してください。
そして、Samples の "Import into Project" ボタンを押してください。

image

接続情報の設定

Assets\Samples\MixedReality-WebRTC Ayame\0.5.0\MixedReality-WebRTC Ayame 内の VideoChatAyameDemo.unity を開いてください。
Ayame Signaler の Connection Settings に指定されている Scriptable Object が接続設定となっています。
以下のように設定を行ってください。

項目 入力内容
Signaling Key Ayame Labo のページで取得した シグナリングキー
Room Id <github のアカウント名>@<任意のルーム名>
Auto Connection チェック を入れる

image

接続テスト

Unity Editor と Web ブラウザにて接続テストを行います。

まずは、Unity Editor の Play ボタンを押し、実行します。

次に、別の端末で Ayame Labo のページを開き、「送受信」のサンプルページを開いてください。

image

ルーム ID には先ほど Unity で指定した IDを入力してください。

image

接続ボタンを押すと WebRTC 接続が行われます。

うまくいけば、ブラウザ側のカメラ映像が Unity Editor 上に表示されます。
(原因がわかっていないのですが、Unity Editor 側の映像はブラウザで表示されません。Unity アプリ同士であればこの問題は起こりません。)

image

UWP (IL2CPP) ビルドの場合の追加設定

image

Player Settings の Capabilities にて、以下の項目にチェックを入れてください。

  • InternetClient
  • WebCam
  • Microphone

HoloLens の場合の追加設定

Player Settings の Other Settings 内の Graphics Jobs のチェックを外してください。

image