MR and Azure 311:Microsoft Graph

こんにちは、ナレコム菅井です。

今回はMR and Azure311のアプリを作っていきます。

開発環境は以下の通りです。
・Windows
・Unity 2017.4.11f1
・Visual Studio 2017
・HoloLens

Microsoft GraphはMicrosoft内の様々なサービスにアクセスするためのAPIです。目標はMicrosoft Graphを利用してMicrosoft accountにログインし、HoloLens上でカレンダーを確認できるようにすることです。それではさっそく始めて行きましょう!

 

0.準備


まずはじめに、Microsoft Application Registration Portalでアプリケーションを作ります。

1. Microsoft Application Registration Portalにログインし、[アプリの追加]をクリックします。初めてのアプリか否かによって[アプリの追加]の位置が異なるかと思います。

2. アプリケーション名を決めて、[create]をクリック。

3. アプリケーション IDを保存します。後々使うのでアプリケーション IDがある場所を覚えておくか、どこかにメモしておきましょう。

4. 同じ画面のまま[プラットフォーム]から[プラットフォームの追加]をクリックします。アプリの種類を選ぶ画面がポップしてくるので、[ネイティブ アプリケーション]選択します。

5. 続いて同じ画面の下の方にある[Microsoft Graphのアクセス許可]から[委任されたアクセス許可]の隣の[追加]ボタンをクリックします。

6. Microsoftのどのサービスへのアクセスを許可したいかを選択する画面がポップします。今回は[Calendars.Read]にチェックをつけ、[Ok]をクリックします。

7. 最後に[保存]します。

 

1.Unity の設定


続いてUnityの設定を行っていきたいと思います。以下の手順で進めていきましょう。

1.Unityを開き、[New]から新しいプロジェクトをつくる。
名前をMSGraphMRとして、[Create project]をクリックします。

2. [Build Settings..]からさまざまな項目を編集していく。
[File]->[Build Settings..]を開きます。

a.プラットフォームの変更
[PC, Mac & Linux Standalone]を[Universal Windows Platform]に変更し、[Switch Platform]をクリックします

b.[Player Settings..]を編集する
[Player Settings..]をクリックします。

そのあと[Other Settings]、[Publishing Settings]->[Capabilities]、[XR Settings]を以下のように設定してきます。

続いて、[Unity C#]にチェックを入れます。

3. Sceneの保存
[Add Open Scenes]をクリックし、[新しいフォルダー]からScenesと名前をつけて、この中にMSGraphMR_sceneとして保存します。

[Build Settings..]の変更は以上です。

4. Microsoft Graphパッケージのインポート。
まず、MSGraph LabPlugins.zip fileをダウンロードします。[Assets]->[Import Package]->[Custom Package]をクリックします。ダウンロードしたMSGraph LabPlugins.zip fileをフォルダの中から探し選択し、[Import]をクリックします。

5. インポートした中身を確認する。
まず、[Plugins]の中にある[Microsoft.Identity.Client] の中身です。

続いて、[Plugins]->[WSA]の中にある[Microsoft.Identity.Client] の中身です。

 

2.カメラの設定


[Hierarchy]パネルの[Main Camera]の[Inspector] を編集していきます。
a. Transform
————————-
Position  | 全て0
————————-
Rotation | 全て0
————————-
Scale      | 全て1
————————-

b. Camera
———————————-
Clear Flags   | Solid Color
———————————-
Background  | 黒
———————————-

 

3.スクリプトの作成


ここでは以下の4つのスクリプトを作っていきたいと思います。
・MeetingUI
・Graph
・GazeInput
・Interactions

スクリプトの作り方はまず、すべてのスクリプトをまとめておくフォルダーを作成します。[Project]->[Create]をクリックし、[Folder]を選択して新しいフォルダーを作ります。名前をScriptsとします。続いて[Project]->[Create]->[C# Script]をクリックし、クラス名をつけていきます。

・MeetingUI
このクラスではUI の詳細を記述していきます。コードは以下の通りです。

・Graph
このクラスはMicrosoftアカウントから取得したい情報(今回はカレンダーの情報)を取ってくる役割を担います。このクラスでは先ほど0.準備で取得したアプリケーション IDを使います。コードは以下の通りです。

・GazeInput
このクラスはHoloLensをつけたユーザーのGaze情報を管理するスクリプトです。コードは以下の通りです。

・Interactions
このクラスはシーン内のボタンを作ったり、エアタップに反応したりする機能をつけるためのスクリプトです。コードは以下の通りです。

記述し終わったあと、Interactionsスクリプトを[Hierarchy]パネルの[MainCamera]にD&Dします。

また、記述したコード内でタグを用いて識別するので、[MainCamera]にタグをつけたいと思います。[Main Camera]の[Inspector]->[Tag]からタグを追加します。

名前をSignInButtonとして保存します。

4.ビルド


[File]->[Build Settings..]->[Build]の順に選択します。新しいフォルダー(App)を作ります。このフォルダーを選択し、保存します。

この後の手順についてはこちらを参照してください。

HoloLensで実行した時の様子です。何も予定を追加していないのですが、無事動作が確認できました。

以上となります。 お疲れ様でした。

この記事を書いた人

azure-recipe-user