MixedReality-WebRTC と Ayame Labo を利用して Unity で WebRTC を使う
この記事について
この記事では、Unity アプリで MixedReality-WebRTC と Ayame Labo を利用して WebRTC を使ったビデオ通話を行う方法について紹介します。
利用するサービス、ライブラリ
Ayame Labo
Ayame Labo は株式会社時雨堂さんが無料で提供してくださっているシグナリングサービスです。
MixedReality-WebRTC
MixedReality-WebRTC は Microsoft が公開している WebRTC ライブラリです。
バージョン 2.0 の時点では以下のプラットフォームがサポートされています。
- Windows 10 デスクトップ
- UWP (HoloLens 含む)
- Android
MixedReality-WebRTC-ayame
私が公開している Unity 用ライブラリです。
MixedReality-WebRTC にてシグナリングサーバーとして Ayame を利用するためのコードが含まれています。
開発手順
Ayame Labo への登録
上記ページに 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" ボタンを押してください。
接続情報の設定
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 | チェック を入れる |
接続テスト
Unity Editor と Web ブラウザにて接続テストを行います。
まずは、Unity Editor の Play ボタンを押し、実行します。
次に、別の端末で Ayame Labo のページを開き、「送受信」のサンプルページを開いてください。
ルーム ID には先ほど Unity で指定した IDを入力してください。
接続ボタンを押すと WebRTC 接続が行われます。
うまくいけば、ブラウザ側のカメラ映像が Unity Editor 上に表示されます。
(原因がわかっていないのですが、Unity Editor 側の映像はブラウザで表示されません。Unity アプリ同士であればこの問題は起こりません。)
UWP (IL2CPP) ビルドの場合の追加設定
Player Settings の Capabilities にて、以下の項目にチェックを入れてください。
- InternetClient
- WebCam
- Microphone
HoloLens の場合の追加設定
Player Settings の Other Settings 内の Graphics Jobs のチェックを外してください。
Discussion