Nreal Light DevKit の使い方（基本操作編）

Nreal Light Deveveloper Kit のファーストバッチに入ったようで、年内入手が叶いましたので、いろいろ書いていこうと思います。

![IMG_E8500_small.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71421/9502611c-ff3d-96a2-d987-949794886814.jpeg)

## Nreal Light Developer Kitの構成

最初に、Nreal Light Developer Kitは主に以下の２つのパーツで構成されます。

* Glasses
  * メガネ部分です。ディスプレイ機能とカメラ機能、スピーカーなどが入っています。
* Conputing Unit
  * 四角いユニット。CPU、メモリが入っていて、実質表示機能を除いたAndroidスマホのようなものです。
  * 分離するコントローラー（円盤状）と磁石でくっつきます。

そのほかのスペックはこちらに
https://www.nreal.ai/specs/

今後発売されるコンシューマーバージョンは以下のようになる予定です。$500程度の予定とされています。

* Glasses
  * メガネ部分
* 手持ちのAndroidスマホ
  * SnapDragon 855搭載のものとされていますが、それ以上の機種の限定があるかは不明です。auやSoftbankと連携しているので、対応機種が明らかになるでしょう。


## Nreal Light Developer Kitの起動方法

わりと起動方法がむつかしいです。

* Computing Unitの起動とスリープ
    * Computing Unitの電源ボタン（長細いボタン）を５秒ほど長押しするとComputing Unitが起動します。
    * 電源ボタン横の長細いLEDがいろんな色に光っている間は起動中です。
    * 緑色になると起動済みです。（グラス側は真っ黒でもここでは気にしない）
    * 注意：このあと１分程度放置してスリープに入ると青色になりますので、その場合は電源ボタンを軽く一回押すと回復します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71421/076109a2-435a-3fd5-4c55-d7aa7a8a550e.jpeg" width="300px">

* Nrealのランチャーを起動する
    * Nrealのランチャーを起動するには、Type-Cケーブルを抜いて、挿します。</b>
        * Glassが挿入されたことがランチャー起動のトリガーになっています。
        * Computing Unitが電源ONかつスリープしていない状態でないと起動しません。
    * これでランチャーが表示されるはずです。
    * コントローラーによる操作は次の項目で。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71421/f1eca501-6212-151c-56c8-baaded6c5d91.jpeg" width="300px">

* コントローラーを起動する
  * コントローラーをComputing Unitから外して裏返すと小さなスライドスイッチが見えますので、これを操作して、緑色が見える状態にします。
  * その上で、コントローラーの表面の上側のところを１０秒ほど長押しします。
  * 表面上側のLEDが緑色に光ったら準備完了しています。
  * グラスをかけたら、表面上側を軽く一回クリックすると方向の調整が完了します。
  * この状態で、ランチャーアプリにポインターが表示されているはずです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71421/08a5070e-4961-da03-5195-63aaa3db2892.jpeg" width="300px">

## うまく動かないときのTips

* グラスに何も映らない
    * Computing UnitのLEDが青色だったら電源ボタンを一回押してスリープ解除
        * 充電時、緑色表示のままスリープしている場合もある
    * __とりあえずグラスのUSB-Cケーブルを抜いて挿す！__これで解消することは多いです。
* グラスに映るがなんか左右に分かれていておかしい
    * 左右スプリットのモードが正しくないので、変更する必要があります。
    * メガネ部の、左側ツルの下側にボタンがあります。これは輝度調整ボタンですが、その後ろ側を長押しするとモード変更が行えます。
    * モード変更後は、いったんAndroid画面が見えますので、Type-Cケーブルを抜き差しすることで、ランチャーを起動しなおす必要があります。

## Android本来の画面をグラスで見るには

Computing Unitは結局のところAndroidスマホの中身なので、Androidの画面表示を行うことができます。ただし操作はできません。見るだけです。

* メガネ部の、左側ツルの下側にボタンがあります。これは輝度調整ボタンですが、その後ろ側を長押しすると、Android画面に切り替わると同時に左右スプリットモードが変更されます。

ただし、この操作を行うと左右スプリットモードが変わります。そこで、再度同じ操作を行うと、もとのモードに戻ります。
※上記Tipsの「* グラスに映るがなんか左右に分かれていておかしい」を参照してください。

※PCとつないでVysorやscrcpyを利用すると、PCからAndroid画面で操作を行えます。これについては別の記事にしようと思います。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71421/3b20b8bf-faca-dcf8-f802-14a0bbf3a858.jpeg" width="300px">

## adbを使うには

PCとの間を USB Type-C のケーブルでつなぐことで、adbを使うことができます。一般的にはPCを認証する操作が必要ですが、特に必要ない状態になっており、すぐにつなぐことができます。

```
>adb devices
List of devices attached
70dexxxx        device
```

注意点としては、USB micro-B 端子のほうにPCをつないでも認識されません。こちらの端子は充電専用のようです。

adbが使えれば、adb installでAPKをインストールしたり、Unityからアプリを走らせたりできますね。

## デモでのコントローラーの基本操作

コントローラーは円盤状で特に継ぎ目がないですが、役割としては、上部、下部、中央の３つにわかれます。

* 上部
    * 姿勢のリセット
        * なんかポインターの指す方向が違うなーというときに~~押します。~~長押しします。（SDK1.2.0で長押しに変わりました）
        * (SDK1.2.0での新仕様）通常のクリックでは、中央部と同様にクリックとして判定されます。
* 中央部
    * いわゆるクリックです。タッチパッドになっていて、アプリによってはスワイプもできます。
* 下部
    * いわゆるBackボタンの扱いです。
        * "InfinitySpaces" デモ内では、メニューに戻ります。
    * 長押し（10秒ぐらい）すると、ランチャーに戻ります。
    * ※ 自分の個体はここの使用感がイマイチで、一番下端では反応せず、気持ち上側を押すことで反応しました

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71421/8d1179dc-f697-b566-618b-322b35dc519c.jpeg" width="300px">

## Unityでの開発（さわりだけ）

~~細かいことは次回があれば書くとして、一点とにかく最初にはまりやすいポイントとしては以下です。~~

~~__Package Nameは、 ```com.nreal.なんとか``` にしないとランチャーに出てきません！__~~

~~開発に慣れた方ほど、Package Nameを自前のものに変更すると思うので、はまりやすいポイントになります。~~

※追記: 2020/1/22 SDK1.2.0で修正されまして、任意のPackage Nameが利用可能になりました！良かった！

あと主な情報源はこちらになると思います。
https://developer.nreal.ai/develop/discover/introduction-nrsdk