MRDesignLabsを試してみる

#HoloLens#Unity#VR

HoloLens(というよりMixed Reslity)アプリのデザインについてはMicrosoftが公式で公開しています。

  MRDesignLabsはMicrosoftのデザインチームが、上記規定に従って作成したサンプルです。

  これらのアプリを一通り体験すればMicrosoftが考えるMixed Realityに適したデザインを体験することができます。 本記事ではMRDesignLabsを一通り試してみて、Mixed Realityアプリのデザイン感を養います。

ソースのダウンロード、調整

以前はGithubからダウンロードして使えたようですが、以下の記事によると2018/06/27のアップデート以降ちょっとした手順を踏む必要になったそうです。

  Githubでもサブモジュール更新してねと書いてあります。

  まずgitコマンドでクローンし、サブモジュールを更新します。 (サブモジュール初めて使いました)

git clone https://github.com/Microsoft/MRDesignLabs_Unity
cd MRDesignLabs_Unity
git submodule init
git submodule update
git submodule foreach git pull origin master

  これでUnityでプロジェクトを実行できるようになります。   (注意)Githubからソースをzipファイルでダウンロードして展開した場合、サブモジュールの更新ができなかったです。上記のようにgitコマンドを使いましょう。

サブモジュールを更新しないと

サブモジュールの更新をしないと「DesignLabs_Unity」も「DesignLabs_Unity_Examples」も、「Assets/MRDesignLab」フォルダの中が空っぽです。   Unityで開いても、「いろいろ足りない」的なエラーが出てきて実行できません。ところどころ表示も不正です。

フォントをダウンロード

Unityで「DesignLabs_Unity_Examples」を開くと、初回はフォントをダウンロードするように言われます。 「Click here download font」をクリックすると「Hololens font.zip」ファイルがダウンロードされます。   展開して「HoloSymMDL2」をAssetsに追加します。   Unityに戻って「Click here to view button profile」をクリックします。 以下のInspectorビューで「Auto-assign…」を押すと勝手に設定してくれます。   こうなります。   これでフォントが設定されました。 なんで人手間かかるかについては以下の記事で考察されていました。なるほど。

HoloSymMDL2フォントのライセンス

  • 簡単に言うとMicrosoftのPlatform上で動作するものにしか使ってはいけない。(逆に言えばその範囲であれば、開発製品に組み込んでもok)
  • MRDesignLabライセンスがMIT Licenseなので、一緒にダウンロードできないように分けたのかな。

引用: littlewing | MRDesignLabsメモ(1)

  ともあれ、これで準備完了です。 それでは以下では用意されたサンプルを確認します。

Common controls and examples

オブジェクトの操作やUIなどのサンプルです。 以下の5つがサンプルとして公開されています。

  • Interactable Object
  • ManipulationGizmo
  • Object Collection
  • Progress
  • SimpleDialog

  それぞれの細かい説明はGithubに記載されています(2018/8/21現在 Wikiは更新が追い付いていないようです)。 ここではふんわり紹介します。   いずれも「DesignLabs_Unity_Examples」プロジェクトで「File -> Open Scene」で、 「MRDesignLabs_Unity/DesignLabs_Unity_Examples/Assets/MRDL_ControlsExample/Scenes/」フォルダからシーンを選択します。   HoloLens実機やエミュレータを使わずともUnity上で再生することである程度動作を確認できます。 Unity上ではキーボードの方向キーやWASDキー、QEキーで上下左右と前後の移動ができます。

Interactable Object

こんな感じのオブジェクト群が表示されます。 どれもカーソルが乗ったり、タップしたりすると何らかの挙動を示します。 たとえば、バルーンはカーソルが当たるとふくらんで、長押しするとさらに大きくなって黄色になります。   ちなみにフォントがちゃんと設定されていないとこんな感じにところどこと歯抜けになってしまいます。   実機で確認するとこんな感じです。 https://youtu.be/XgCSsRem42c

ManipulationGizmo

ぐぐったら。 「gizmo =  何とかいうあの機械」らしいです。 初めて聞いた日本語の使い方。まぁ、機械っぽいもん的な感じらしい。

Object Collection

いろんなオブジェクト集といった感じ。

Progress

これはわかりやすいですね。 いろんなプログレスです。   こんなんとか。ロード画面で使えそうな素材集です。

SimpleDialog

こちらもわかりやすいです。ダイアログです。 たぶんクリックするとダイアログが出るんでしょうが、Unityの再生画面でのキー操作だとうまくフォーカスできない。

Sample Apps

さらにアプリとして実行できるものもあります。 現在は以下の3つが公開されています。

  これらはMRDesignLabs_Unityとは別のGithubリポジトリが用意されているのでそれぞれクローンする必要がああります。 Githubのページはこちら。

Periodic Table of the Elements

周期表。 https://youtu.be/5iiksmMopkk   詳細はこちらにまとめました。 http://roy29fuku.com/virtual-reality/hololens/mrdesignlab-periodic-table/

Lunar Module

月着陸船。 Githubからコードをクローンします。 今回はサブモジュール云々は必要ないようです。

git clone https://github.com/Microsoft/MRDesignLabs_Unity_LunarModule.git

  以下のシーンを開きます。 「MRDesignLabs_Unity_LunarModule -> Assets -> MRDesignLab_LunarModule -> Scenes -> Main」   ビルドします。 実機で確認するとこんな感じ。 https://youtu.be/igsNUgO670U   これまでのサンプルに比べるとかなり完成度が高いです。 開始地点からゴールまでモジュールを移動させ、うまく着地させるゲームです。 右手で進路を決めて、左手で推進力を決めます。   ゲームとして遊べます。

Galaxy Explorer

宇宙探索。 Githubからコードをクローンします。 ちょっと様子を見ていたところかなり時間がかかりそうだったので、バイナリファイルをgitで管理して.git/objectsが膨らんだのかな、と予想。 --depth=1 を付けて時間短縮をはかります。

git clone --depth=1 https://github.com/Microsoft/GalaxyExplorer.git

  それでも1時間半ぐらい時間かかりました。 単純にファイルサイズがでかい。3GBありました。 .gitディレクトリが900MB弱あったので、バイナリファイルをgitに突っ込んだのかもしれませんね。   Unityで以下のシーンを開きます。 「GalaxyExplorer-> Assets -> Scenes -> MainScene」   お決まりのビルド。   ソリューションファイルをVisual Studioで開いて実機で確認します。 https://youtu.be/xO9vTQc3nEc