[Magicleap]MagicLeap入門以前

更新した情報を以下のサイトにアップしました(2020/05/15)
[Iwaxlab](https://iwaxlab.com/articles?id=6)


今回はMagicLEapOneの解説記事をまとめてみました。
といっても結構下準備にいくつか必要だったので、まずは「入門以前」としてMagicLeapの概要と必要準備についてまとめていきます。 
	
##MagicLeapとは
2010年に米国で会社が設立され、約26億ドルもの資金を調達し、昨年2018年8月より開発者向けが販売開始されました。
2019年9月現在はアメリカ、イギリス、フランス、ドイツの四か国で販売、サポートされています。 また、現時点で開発物を世に公開できるのは米国のみのようです。
デバイスの位置づけとしては、MicrosoftのHoloLensやLeapmotionのProjectNorthStarと同じ、シースルー型のMRデバイスとなっています。
Lumin OSという独自のOS(おそらくAndroidがベース)を使っており、Helioという独自の３Dブラウザが搭載されています。
また、C言語、またはUnityやUnrealというゲームエンジンでの開発もサポートしており、先ほど紹介したHelio専用JavaScriptライブラリも公開されています。
この力の入れ具合で私はすでにドキドキワクワクなのですが、その開発を進めるための最初の準備を一緒に順を追って見ていきましょう。


##アカウントを作成する
まずはクリエイターポータルと呼ばれる、MagicLeapOneの開発者サイトでアカウントを作りましょう。

[クリエイターポータル](https://creator.magicleap.com/home)

新規でアカウントを作る際も、このページから使いたいメールアドレスを入力します。
すると入力したメールアドレスに"Welcome to Magic Leap"という題名でアクセスコードが記載されたメールが届くと思うので、そちらを入力してログインしてください。
![000.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/4515cdac-c2b0-edb4-92c8-9257fe1e6260.jpeg)


今後ログインする際も、アドレス入力=>アクセスコードメールが届く=>アクセスコードを入力=>ログイン、が基本の流れになります

##パッケージマネージャーのインストール
MagicLeapには専用のパッケージマネージャーが存在し、すべての開発用ツール、SDKはこれを通してインストール、アンインストールします。
![001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/1cb0e144-e4a5-7199-c03d-ac823f622aac.jpeg)

インストーラーを起動すると、どこにインストールするのか聞かれるので、(デフォルトはルートユーザー直下)任意の場所を指定してインストールしてください。
また、LuminSDK、Unity、Unreal、LuminRunTimeという項目がそれぞれありますが、どこのタブからダウンロードしても、同じインストーラーがダウンロードされるのでお気になさらず。
![002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/309b2fe7-7e4f-feb7-d4dd-466d8c9cf195.jpeg)

##デバイス側の準備
それではデバイス側の準備をしましょう。
デバイス側では最初に作成したアカウントと紐づける必要があり、デバイス側でアカウントの認証ができると、自分のアカウントページのDevices内に登録したMagicLeapが列挙されます。
![003.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/dbdd7566-7864-9817-06d2-f67f3b9a23f8.jpeg)

さらに<a style="font-weight: bold;">デバイス側で Settings->Device->CoreatorModeでCreator Modeをオン</a>にしましょう。
これで認証されていないアプリケーションもMagicLeapローカル内で動作させることが可能になります。

##開発証明書の発行
では次に、開発者証明書を発行します。
開発者証明書とは、自作したアプリを世に公開する為に必要な証明書で、制作するアプリに紐づけるものです。
各自作アプリへの紐づけ方は、別章で解説するとして、ここでは証明書の発行方法をみていきましょう。
CreatorPortalでPublish->Certificatesを押すと証明書管理画面に移行します。
"Addnew"を押すと証明書を発行するので、任意の名前で作ってみましょう。
![004.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/5c33dea8-789c-61b1-18cf-e3d0957a5d31.jpeg)

任意の名前をCerticateLabelに入力して"Generate"を押し、しばらくすると、privatekeyというZipファイルがダウンロードされます.
![005.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/c8924e99-8a75-ed71-4c79-9235c4f8215d.jpeg)

中身を展開すると、作成した名前で .cert と .privatekeyがあるのを確認できますね。
このうちの.privatekeyは大事に保管してください。これが消えると証明書を再度作り直さないといけません。
.certに関しては先ほどの証明書管理画面からサイドダウンロードすることは可能です。
![006.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/72d6d2ce-245d-5290-f438-bd247baddf73.jpeg)

これらは同一のディレクトリにある必要があるのでこのまま大事に保管しておきましょう。
この開発証明書一つで認証できるアプリは２つまでとのことです。これは世に公開するときのみの限定で、ローカルで作成する分には証明書は使いまわせます。


##各ツール、パッケージ説明
<b>※2020年5月14日現在、このパッケージマネージャ回りが大きく変更されています。詳しくはこちらを参照ください<b>
[リンク先: IwaxLab](https://iwaxlab.com/articles?id=15)

先ほどインストールしたパッケージマネージャを起動して中身を見てみましょう。
![007.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/f21c6d60-1002-ee30-2f15-e6a09fcfb5ab.jpeg)

起動すると以下のような画面が開きます。
![008.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/2ffc06e5-6a3d-cadf-c594-f9a3637cf292.jpeg)

この中から自身の開発環境に必要なコンポーネントをインストールしていくことになります。
この中で特に順様なモジュールは Common Packages -> LuminSDKで、SDK本体がコレになります。
![009.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/89accd1e-07a6-aee0-87f3-c1d575419f3f.jpeg)


そのLuminSDKの右側の欄を見ると "SHELL" と "USE ML REMOTE"の項目が確認できると思います。
![010.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/255d001a-a52e-ec39-8e61-edcf77650c65.jpeg)


SHELLはコマンドラインで直接MagicLeapにアクセスしてアプリをインストールさせたり、PCに接続されているデバイスを列挙したりする便利ツールです。
![011.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/7372f680-ed76-bf11-5b7d-c78e35a778df.jpeg)


"USE ML REMOTE"は各開発環境で自作アプリを実機でプレビューする際に必要になるツールです。また、仮にデバイスを持っていなかったとしてシミュレータ機能があり、まるで実機で動かしている感覚でシミュレートさせることができます。
![012.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163667/c4aed707-ee0f-e4f7-02bb-abb5e6704f90.jpeg)

上記２つのツールは、これから開発する際に特にお世話になることでしょう。

##お疲れさまでした
以上で"MagicLeap開発以前"という開発するにあたって必要な準備が全て終わりました。
それぞれの得意な開発環境を用いて、いざMagicLeapの世界を楽しみましょう！