【MagicLeap入門】Magic Leapのコントローラーのボタンや機能、特徴を学ぶ!


MagicLeapのアプリ開発で頻繁に使用するのがコントローラー(Controller)になります。

6DoFで直感的に使いやすいコントローラーですが、少し特徴のあるコントローラーでもあります。

そこで、今回はこのコントローラーについて解説していきます。

※本記事は2020年5月時点のMagicLeap Oneのコントローラーの紹介になるのでご注意ください。

MagicLeapのコントローラーとは

MagicLeapのコントローラーはLightPack/LightWearと共に付属されている機器になります。

6DoFなので回転情報だけでなく位置情報もMagicLeapに送ることができ、アプリの体験の質を高めることができる機器です。

Magic Leapのコントローラーには4つのボタンが存在します。

各々ボタンの名称と特徴が違うので、主に使う機能と共に下記にまとめます。

ホーム/バックボタン(Home/Back Button)

コントローラーのフロント部分にある丸い小さなボタンはホーム/バックボタンになります。

以下のような機能・使い方があります。

  • ホーム画面を開く
  • アプリを開いているときにホーム画面に戻る、アプリを閉じる
  • コントローラの電源がOffの際に長押しすることで電源をOnにする

タッチパッド(TouchPad)

コントローラーのフロント部分にある大きな黒い円の部分です。

タッチ操作をこのパッド上で行うことができます。

例えば以下のような操作ができます。

  • アイコンを上下左右に移動させる
  • オブジェクトを回転させる
  • スライダーを直感的に調整する

様々な操作をスマホ操作のように直感的に実現できるのがこのタッチパッドになります。

また円の縁が光るようになっており、電源がついているかどうかを視覚的に確認できるようにもなっています。(光の色によっても意味が変わります)

バンパーボタン(Bumper)

コントローラーの先端にある楕円形のボタンをバンパーボタンと言います。

このボタンは「押した」「押したままの状態でホールド」「離した」を認識できます。

用途ですが、一般的なボタンと同じ使い方をします。

トリガーボタン(Trigger)

コントローラーの先端にある、バンパー下の引き金をトリガーボタンと言います。

このトリガーでは以下のような機能・用途があります。

  • トリガーの引き具合で強弱を変えることができる
  • トリガーなのでドラッグ操作を行う場合に使用しやすい

MagicLeapのコントローラーの特徴・注意点

MagicLeapのコントローラーの使用時に以下の特徴・注意点を把握しておくことが大切になります。

開発において躓きやすい特徴や注意点を中心に以下にまとめました

コントローラーのトラッキングがロストした場合の対応方法

コントローラーのトラッキングがロストした場合(画面にコントローラーのレイやオブジェクトが表示されなかった場合など)は

コントローラーを空中で八の字を描くとキャリブレーションを実行できて、再度トラッキングを認識します。

キャリブレーションをかけても復元できない場合はコントローラーを再起動する必要があります。

【コントローラーの再起動の手順】

  1. ホームボタンとトリガーボタンを数秒間同時押しでコントローラの電源を落とします。
  2. 再びホームボタンを長押ししてコントローラの電源をつけます。

上記でも直らない場合は以下の可能性があるため、ご確認ください。

  • コントローラの充電が少ない場合。MagicLeapのコントローラは充電が50%以下になると上手く動作しなくなることがあります。
  • LightPackとコントローラーの距離が数インチの場合ロストします。二つの距離を離しておきましょう。
  • コントローラの故障。メーカにお問い合わせください。

コントローラーの充電残量を確認する方法

コントローラーの充電を確認する際に、LightWearを装着せずに確認する方法があります。

コントローラーの電源がOnでMagicLeap本体と接続されている状態の時に、LightPackの電源ボタンを数秒間軽くタッチする(押し込まない)ことで、コントローラーのタッチパッドの縁が光ります。

その光が円の何割までで何色の光なのかによって、電池残量が何割残っているかが分かります。

例えば一周全てが光った場合100%近く充電されています。(この場合緑色で光ります)

ちなみにLightWearでの電池残量の確認方法ですが、ホーム画面の電源ボタンをクリックすることで可能です。

スクリーンショットや画面録画を行いたい場合

コントローラーによってMagicLeapのLightWearの画面を撮影することができます。スクリーンショットと録画両方が可能です。

  1. コントローラーのホームボタンとバンパーボタンを数秒間同時押し
  2. Captureアプリが立ち上がり、「Take a Photo」と「Record a Video」がサジェストされるので、撮影方法に合わせて選択してください。
  3. 撮影を行います。撮影したデータはMagicLeap内に保存されます。
  4. データをPCに移行するにはPCとMagicLeapをつないで、The Labを使って移行を行います。

スクリーンショットはjpg形式、録画はmp4形式で保存されます。

同じ空間で複数のMagicLeapを起動した際にお互いのコントローラーが干渉してしまう場合

複数のMagicLeapを起動した際にお互いのコントローラーが干渉してしまう場合があります。

その場合、コントローラー同士を1.5-3m離した状態で起動すると異なる周期の割り当てがうまくいくので干渉しづらくなります。

その他の開発におけるTips

上記の特徴以外にも開発におけるTipsがいくつか紹介します。

  • MagicLeapをPCに繋いだ際にThe Labでもコントローラのボタン、ハプティクスの情報が確認できます。これによって正しくボタン操作を行えているかをPC上で確認できるようになります。
  • ボタンへ機能を割り当てる場合、ネイティブと似たような割り当てを行うと、ユーザも感覚的に理解しやすくUXが良くなります。

Unity SDKのコントローラーに関するサンプルシーン

実際の開発においては、サンプルシーンを元に内容を修正してアプリに実装するということが多いと思います。

そこで、Unity向けに提供されているMagicLeapのコントローラーに関するサンプルシーンを紹介します。

サンプルシーンの名前はControllerになります。その名の通り、コントローラーからの入力操作とそれに応じた触覚のフィードバックを体験できるサンプルです。

各ボタンでのアクションは以下になります。

  • ホームボタン
    • 一度タップすると、画面上のコントローラのモデルのホームボタンが光ります。
    • 長押しするとアプリを終了するコマンドと判定されます。
  • タッチパッド
    • タッチパッドで
    • タッチの強度によって色が変わります。
  • トリガー
    • トリガーを押し込む時間の長さによって、画面上のコントローラのモデルのトリガーが色を変えて移動します。
    • また、振動の強さをトリガーの引いた長さによって変わります。
  • バンパー
    • コントローラのモデルの色が変更
    • ボタンを押すと振動します。
    • ボタンを離すと振動します。(押した時とは違うフィードバックです)

前提条件として、以下の権限を正しく設定しないとアプリが正常に動作しないので、正しい権限設定をしてください。

  • LowLatencyLightwear
  • ControllerPose

まとめ

以上、MagicLeapのコントローラーについての解説になります。

ぜひ本記事を参考にMagicLeapアプリの開発を一層進めていただければ幸いです。

また、XR-HUBではMagicLeap開発の参考になる記事も随時更新しているので、こちらもご参照ください。

参考記事)【MagicLeap入門】Unityのセットアップ手順を1から解説!

参考記事)【MagicLeap入門】Toolkitのセットアップから使い方を解説


この記事はいかがでしたか?
もし「参考になった」「面白かった」という場合は、応援シェアお願いします!

株式会社x garden CGO(Chief Growth Officer)
Unityエンジニアとして日々Unityと奮闘中
自他共に認めるゲーマー
Splatoon最高記録:世界6位(リグマペア)
ApexLegends最高記録:5連チャンピオン