HoloLens(ホロレンズ)でWebRTCとUnityの設定方法の説明

HoloLens(ホロレンズ)でWebRTCとUnity設定

こんにちは!Huyです。今、ONETECHで仕事をしています。ONETECHのUnityチームに入ることによって、毎日最新技術に触れる機会が増えてきました。プログラマーになって、最新技術の調査やそれを身に着けるためにはどれほど大変なのか常に実感しています。共有するとこで、自分もそこから勉強できるという考えから、この記事でホロレンズとホロレンズ2Microsoft HoloLens)でWebRTCとUnityの設定方法について、説明していきたいと思います。設定に困ったことを経験した方に少しでもお役に立てる記事になればうれしいです。

まず、WebRTCとは何か説明していきます。

WebRTCWeb Real-Time Communication)は、ウェブブラウザやモバイルアプリケーションにシンプルなAPI経由でリアルタイム通信(英: real-time communication; RTC)を提供する自由かつオープンソースのプロジェクトである。

ホロレンズについてこちらを参照ください: MICROSOFT HOLOLENS: 最先端のAR製品の利点と欠点

ホロレンズ2についてこちらを参照ください: MICROSOFT HOLOLENS 2 – 2019年半にリリーズ

WebRTCを使って得たベネフィットとは?

  • 品質の高いライブストリーミングができる(画像、動画)。
  • P2Pでリアルタイムで端末間データ通信できる。
  • 平均レイテンシー: 300-400ms。
  • 平均FPS動画: 25+。
  • サポートが充実したオープンソース。

設定方法の説明

事前に用意しておくのは

完了とツール

Visual Studio 2019ダウンロード

設定の際に下記コンポーネントもあわせて設定してください。

  • Python development.
  • .NET desktop development.
  • Desktop development with C++.
  • Universal Windows Platform development.

Unity 2018.3.x もしくは 2019.1.x: ダウンロード

Node.js: ダウンロード

次は、gitリポジトリのクローン

任意のディスク(最低残り10GBが利用可能なディスク)でコマンドプロンプトを開き、下記のコマンドを叩いてください。

git clone –recursive https://github.com/microsoft/MixedReality-WebRTC.git -b master D:mr-webrtc

D:mr-webrtcを任意フォルダーにかえてください (パスが短ければ短いほどビルドの際にエラーを避けることができる)。

それから、WebRTCライブラリのビルド

Microsoft.MixedReality.WebRTC.Unity.slnのプロジェクトを開く。

順番にバージョンをビルドしていきます (F7を押すかBuildをクリックしてから Build Solutionを選択してください)。

ビルドが成功したら、ライブラリファイルがUnityプロジェクトのPluginsフォルダーに自動的にコピーされます。

次に、サーバ設定

まず、任意ディスクでコマンドプロンプトを開き、下記コマンドを叩いてください。

git clone https://github.com/bengreenier/node-dss.git -b master D:node-dss

D:node-dssを任意フォルダーにかえてください。

つぎに、フォルダーでコマンドプロンプトを開き、下記コマンドずつ叩いてください。

npm install

npm start

今回はプロジェクトの検証

libs/Microsoft.MixedReality.WebRTC.UnityのバスでUnityプロジェクトを開いてください。

それからVideoChatDemo とPlayのシーンを起動してください。

デモで端末別に稼動を設定する。

ファイルを開き、下記コードをコピーしてから保存してください。libsMicrosoft.MixedReality.WebRTC.UnityAssetsMicrosoft.MixedReality.WebRTC.UnityScriptsSignalingNodeDssSignaler.cs

yield return new WaitUntil(() => RemotePeerId.Length > 0);

サーバで稼動するPCに沿ってIPアドレスを直してください。

両端末で下記を設定する。

  • 両端末で お互いのDevice IDを入力する。
  • 一方で Create Offerを押して、残りの端末が受信できるまで待ちます。
  • 残りの端末でCreate Offerを押してください。

ホロレンズでビルド

ホロレンズ上の入力項目が利用できないので、ビルドの前に、PCの端末IDを入力する必要があります。

プロンプトをUniversal Windows Platformにターゲットします (UnityにはまだUniversal Windows Platformが設定されてなければ、Open Download Pageを選択して、インストールを行って下さい)。

ビルドを選択して、ビルドを行ってください。

MixedReality.WebRTC.Unity.slnのプロンプトを開き、下記を行ってください。

  • Remote Machineを選択。
    • ホロレンズの場合は: Release x86を選択。
    • ホログラム2の場合は: Release ARM64を選択。
  • プロンプトに右クリックして、プロパティを選択してください。その後、DebuggingでホロレンズのIPアドレスを入れてからOKボタンをクリックしてください。

F5を押して、プロジェクトを起動してください。

ホロレンズでデバッグして事のないPCであれば、下記リンクを参照ください。Using the Windows Device Portal

結果:

注意事項

WebRTCライブラリをビルドする際に、下記画像のようなエラーが出た場合、プロジェクトを閉じて、再度ビルドを試してください。

下記画像のようなエラーが出た場合は、スキップしてもいいです。

WebRTCをビルドする前に、Unityプロジェクトを絶対開かないようにしてください。理由はライブラリファイルがないなら、Unityが自動的にfile .metaを削除してしまうからです。

下記エラーを引き起こしてしまう:

YUVFeedMaterial như sau:画像が逆方向になってしまった場合は、YUVFeedMaterialのHorizontal Mirrorを有効にしてください。

WebRTCはここ近年非常に発せてしており、ライブ配信技術を交代するへの期待が高まっています。WebRTCの知識を身に着けておくとプログラマーとしても決して損することではありません。以上はライブ配信やリアルタイムのデータ通信を行うためのWebRTCやホロレンズでの設定について説明しました。少しでもあなたにとってお役に立てば本当にうれしいです。

お問い合わせはhuytn@onetech.vnまでご連絡下さい。あなたの意見を積極的に使い、今後の記事に適用させていただければと思います。

ありがとうございました。

 

<2020年6月に追記>

こんにちはHUYです。2020年4月にとうとう日本に来ることができました。皆さんコロナの中で大変だと思いますが私は元気です。

今、秋葉原のONETECHのクライアントのところでHoloLensアプリの開発をしています。
といっても、テレワークが中心ですが、

実際に日本に来てたくさん勉強することができています。

    ・見積もりの相談(システム開発の費用を概算で知りたい方?)
    ・企画段階からの相談(こんなアプリの開発できますか?)
    ・オフショア開発に不安のある方(オフショア開発って何ですか?)
    ・ベトナムやONETECHに興味のある方(ベトナムでビジネスしたいのですが)
    ・エンジニア人材不足にお悩みの方(エンジニアを採用したいのですが?)
    ご相談やお見積もりは全て無料で対応いたします。

    下記入力フォームに入力し、送信をお願いいたします。後日、担当者から折り返しご連絡させていただきます。また、ご送信頂いた内容によっては、ご回答にお時間がかかる場合がございますのでご了承ください。

    お問い合わせ
    ・見積もりの相談(システム開発の費用を概算で知りたい方?)
    ・企画段階からの相談(こんなアプリの開発できますか?)
    ・オフショア開発に不安のある方(オフショア開発って何ですか?)
    ・ベトナムやONETECHに興味のある方(ベトナムでビジネスしたいのですが)
    ・エンジニア人材不足にお悩みの方(エンジニアを採用したいのですが?)
    ご相談やお見積もりは全て無料で対応いたします。

    下記入力フォームに入力し、送信をお願いいたします。後日、担当者から折り返しご連絡させていただきます。また、ご送信頂いた内容によっては、ご回答にお時間がかかる場合がございますのでご了承ください。

    「個人情報保護方針」をお読みいただき同意いただける場合は「この内容を送信する」ボタンを押して下さい。 入力していただいた内容の送信が完了しても、送信中の状態が続く場合がございます。
    入力していただいたメールアドレス宛に自動返信メールを送信していますので、お手数ですがそちらをご確認ください。

      ・見積もりの相談(システム開発の費用を概算で知りたい方?)
      ・企画段階からの相談(こんなアプリの開発できますか?)
      ・オフショア開発に不安のある方(オフショア開発って何ですか?)
      ・ベトナムやONETECHに興味のある方(ベトナムでビジネスしたいのですが)
      ・エンジニア人材不足にお悩みの方(エンジニアを採用したいのですが?)
      ご相談やお見積もりは全て無料で対応いたします。

      下記入力フォームに入力し、送信をお願いいたします。後日、担当者から折り返しご連絡させていただきます。また、ご送信頂いた内容によっては、ご回答にお時間がかかる場合がございますのでご了承ください。

      お問い合わせ
      ・見積もりの相談(システム開発の費用を概算で知りたい方?)
      ・企画段階からの相談(こんなアプリの開発できますか?)
      ・オフショア開発に不安のある方(オフショア開発って何ですか?)
      ・ベトナムやONETECHに興味のある方(ベトナムでビジネスしたいのですが)
      ・エンジニア人材不足にお悩みの方(エンジニアを採用したいのですが?)
      ご相談やお見積もりは全て無料で対応いたします。

      下記入力フォームに入力し、送信をお願いいたします。後日、担当者から折り返しご連絡させていただきます。また、ご送信頂いた内容によっては、ご回答にお時間がかかる場合がございますのでご了承ください。

      「個人情報保護方針」をお読みいただき同意いただける場合は「この内容を送信する」ボタンを押して下さい。 入力していただいた内容の送信が完了しても、送信中の状態が続く場合がございます。
      入力していただいたメールアドレス宛に自動返信メールを送信していますので、お手数ですがそちらをご確認ください。
      無料相談
      お問い合わせ