HoloLens スマートフォンとのOSC通信

ナレコム杉本です。HoloLens Advent Calendar 2017 16日目の記事です!
今回は、HoloLensとスマートフォン間でのOSC通信を行っていきたいと思います。

この記事は、凹みさんのUnity 向けの OSC 実装を作ってみたを参考にしています。
凹みさんの記事で紹介されているuOSCを実際に利用し、スマートフォンでボタンがクリックされた際に、HoloLens側で3DオブジェクトのCubuが生成されるようにしていきます。

開発環境

開発環境は、以下の通りです。
■ Windows 10 Home
■ Visual Studio 2017 (15.4.4)
■ Microsoft HoloLens
■ Unity 2017.1.2f
■ MixedRealityToolkit-Unity-v1.2017.2.0

Hololens側の設定

1. Unityの環境にあったMixedRealityToolkitと、OSC通信を行うためのuOSCインストールし、Unityにインポートしてください。
2. HoloToolkitの中から[HoloLensCamera]を[Hierarchy]にドラッグ&ドロップし、空の3Dオブジェクト[HoloLensServer]を作成します。

3. [HoloLensServer]にuOSCの[ServerTest]と[uOscServer]をドラッグ&ドロップします。

4. [ServerTest]の中身をこちらのコードをコピー&ペーストして変更してください。
5. HoloToolkitの[DefaultCursor],[InputManager],[SpatialMapping]をドラッグ&ドロップしてください。

6. スマートフォンから受信したデータを表示するために[Canvas]の子要素にUIの[Text]を作成し、3DオブジェクトのCubeを適当な位置に作成してください。このCubeを元にスマートフォン側でボタンが押されるとCubeが新たに生成されます。

以上でHoloLens側の設定は終了です。

スマートフォン側の設定

1. スマートフォン用に新しくSceneを作成します。
2. 空のオブジェクト[Client]を作成し、uOSCの[ClientTest]と[uOscClient]をドラッグ&ドロップします。

3. [ClientTest]の中身をこちらのコードをコピー&ペーストして変更してください。
4. [Canvas]の子要素にUIの[Button]を作成し、[Inspecter]の[OnClick()]へ[Hierarchy]の[Client]をドラッグ&ドロップしてください。その後、プルダウンメニューから[ClientTest]の[Puch]メソッドを選択してください。

以上でスマートフォン側の設定は終了です。

配置とビルド

配置とビルドを行ってください。

1. スマートフォン(IOS)側のビルドを行います。
 ① [AddOpenScene]をクリックしSceneを追加します。
 ② [PlayerSetting]をクリックし[inspector]でビルドの設定をおこないます。
 ③ [OtherSetting]->[Identification]->[BundleIdentifier]のProductNameを任意の名前に変更します。
 ④ [Build]をクリックしたらビルド完了です。

2. HoloLensの配置とビルドに関してはHoloLensの5つのビルド方法を参照してください。

スマートフォンのBottonを押すと、Hololens側でメッセージを受け取り、Cubeを生成することができます。

実行動画はこちらです。

以上です。

この記事を書いた人

azure-recipe-user