ナレコム杉本です。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を生成することができます。
実行動画はこちらです。
以上です。