先日島根で開催しましたXR GameJamに合わせて、日本エイサーのご好意でWindows Mixed Reality ヘッドセットの製品版をお借りしました。
開発環境
今回試した開発環境は次のようになります。
• Windows 10 バージョン1709
• Unity 2017.2.0p3
開発環境には、Windows 10のバージョン1709、いわゆる「Fall Creators Update」を適用します。同バージョンから「Mixed Realityポータル」アプリが追加されたり、OSレベルで対応が進んでいますので、これ以降のバージョンは必須になります。
まだバージョンアップされていない方は、Windows 10の「設定」から「更新と設定」を選び「更新プログラムのチェック」を行ってインストールしてください。
Unityは執筆時点で最新バージョンである Unity 2017.2.0p3を使用しました。
Windows Mixed Realityのセットアップ
Windows Mixed Realityのデバイスの設定について軽く触れておきます。
必要スペックはAcerの製品ページに書いてありますが、事前にWindowsストアから「Windows Mixed Reality PC Check」を使って動作環境を確認することができます。購入予定の方は事前に試しておくと良いでしょう。
ここまで準備できたら、ヘッドセットのHDMI端子とUSB端子をPCに接続すると自動的に設定が始まり、コントローラの認識などが進んで行きます。
しかし、筆者の場合ですが、以前、開発者版を入れていたせいでコントローラを認識してくれないトラブルが発生しました。開発者版でコントローラがない設定を引き継いでしまっていたのが原因で、この場合は、一度Mixed Realityをアンインストールすることで解決します。
アンインストールは「設定」→「Mixed Reality」→「アンインストール」から行えます。
このあと再度ヘッドセットのHDMIケーブルとUSBケーブルを挿すと、再びMRのセットアップが始まり、コントローラを準備しておくことで認識するようになります。
MixedRealityToolkitのダウンロード
Microsoftが配布しているUnity用のライブラリを利用しますので、下記URLよりダウンロードします。
Downloads項目から、HoloToolkit-Unity-Examples-v1.2017.2.0.unitypackage と、HoloToolkit-Unity-v1.2017.2.0.unitypackage をダウンロードしておきます。
新規プロジェクトの設定
Unityを開き、新規プロジェクトをFirstMR という名前で作成します。
「Asset→Import Package→Custom Package…」を選び、先ほどダウンロードしたHoloToolkit-Unity-v1.2017.2.0.unitypackageを読み込みます。
この時点で、UnityにMixed Reality Toolkitメニューが追加されています。
この中にあるConfigure→Apply Mixed Reality Project Settingsを選びます。
出てきたダイアログでTarget Occluded Devicesにチェックを入れApplyボタンを押します。
シーンの作成
今回はコントローラを表示させたいので、使えそうなサンプルをベースにしていきます。
「Asset→Import Package→Custom Package…」を選び、先ほどダウンロードしたHoloToolkit-Unity-Examples-v1.2017.2.0.unitypackageを読み込みます。
次に、HoloToolkit-Examples/MotionControllers-GrabMechanics/Scenes/GrabMechanicsを開きます。開いた状態で、FileメニューからSave Scene Asで別名保存します。
Assets直下に、Controllers という名前で保存します。
このシーンを開いている状態で、Mixed Reality Toolkitメニュー→Configure→Apply Mixed Reality Scene Settingsを選びます。
全てにチェックが入っている状態でApplyボタンを押します。
コントローラオブジェクトの設定
シーンに配置されているMixedRealityCameraParent/MotionControllersにアタッチしているコンポーネントを見ると、MotionControllerVisualizerにLeft Controller Override、Right Controller Override という項目があります。Unityで動かす時にはここにコントローラのオブジェクトを適用する必要があります。
HoloToolkit-Examples/Input/Prefabs/ControllerRectをシーンに2つ配置します。
この2つをそれぞれ、ControllerRectRight、ControllerRectLeftとリネームし、MotionControllersオブジェクトのMotionControllerVisualizer内にあるLeft Controller Override、Right Controller Overrideに紐づけておきます。
わかりやすくそれぞれに色の違うマテリアルを貼り付けても良いかもしれません。
これでUnity内の準備は完了です。
Mixed Reality ポータルアプリの起動順番
Unity内の準備はできましたが、今回の最大のポイントはこれから説明する「UnityとMixed Reality ポータルアプリの起動の順番」です。
下記手順を間違えると、原稿執筆時点ではコントローラが表示されません。
(1) UnityからPlayするときに、すでに「Mixed Reality ポータル」が立ち上がっているとコントローラを認識してくれません。「Mixed Reality ポータル」を閉じて、UnityからPlayボタンを押して、自動的な連動により立ち上げる必要があります。
(2) また、このとき、コントローラがスリープ状態になっていてもダメです。
コントローラがスリープしている状態から、コントローラを触ると自動的に「Mixed Reality ポータル」が立ち上がります。しかし、Unityから「Mixed Reality ポータル」を立ち上げる必要があるので、一度「Mixed Reality ポータル」を終了します。その後、UnityのPlayボタンを押す、という流れになります。
つまり、Unityで開発している時には、一度操作した後は必ず「Mixed Reality ポータル」を終了する必要があるのです。
この点に注意すると、ようやく開発環境が整います。
事例紹介
冒頭にも書きましたように、とあるきっかけから11月25日、26日に「XR GameJam in Japan 2017 Autumn【島根会場】」を主催いたしました。島根会場では16人参加でしたので、4人ずつの4チームを組みました。
Unity未経験者も一緒に素材をつくったりしていて、最後にはどのチームも最初に考えていた遊びの面白さを体験できるコンテンツができあがりました。GameJam本編には参加しなかった方々にも楽しんでいただけるよう、2日目の夕方には試遊会を開催しました。試遊会で遊んだあと、全員でいいと思った作品に投票し、オーディエンス賞を決めました。
オーディエンス賞1位に選ばれた作品は「あらエイサー」というゲームです。
こちらは、エイサーのMixed Realityヘッドセットを利用したことと、島根の郷土芸能「安来節」の「あらえっさー」をかけたタイトルです。なんとコントローラをざるに見立てた上で、実際にざるにくっつけてしまう、というVR画面以外でも楽しめるコンテンツになっています。
このような地元の郷土芸能をVRに昇華したコンテンツができるのもXR GameJamの面白さですね。
(本記事に書いた「Mixed Reality ポータルアプリの起動順番」のノウハウは、このチームと一緒にGameJamのなかで悪戦苦闘しつつ探し出しました)
著者紹介
![]() |
山田宏道 (YAMADA Hiromichi) - 株式会社トルクス 代表取締役
千葉大学工学部卒業。ゲームプログラマーを経て、2005年よりフリーランス、2012年 株式会社トルクスを設立し、コンシューマ用途、ビジネス用途等、様々なiOSアプリ、ARアプリ等を受託開発。
2016年4月より島根県奥出雲町在住。現在、VR関連技術に注力しており、2016年10月に「地域おこしVR研究会」を立ち上げ、観光向けVRコンテンツなどを企画、開発中。