今回は、Air Tap(スマートフォンの画面タップのように、指を素早く下ろして上げる動作)でオブジェクトの色を変化させる処理の実装方法について解説します。

今回から、HoloLens用のUnity「Unity HoloLens 5.4.0f3-HTP (64-bit)」を使用します。UnityでHoloLensアプリを開発する場合、カメラ位置の変更や、機能の追加など、アプリを開発する前にしなければならないことがたくさんあります。その手間を省くうえで、「HoloToolkit-Unity」が大変に便利です。

HoloToolkit-Unityの入手

まずは、こちらのサイトより、「HoloToolkit-Unity」をダウンロードしてください。

HoloToolkit-Unityのダウンロードサイト

ダウンロード後、「HoloToolkit-Unity-master.zip」を任意のフォルダーに保存して解凍しておいてください。

プロジェクトの作成

Unityを起動して新しいプロジェクトを作成します。ここではプロジェクト名を「AirtapChangeColor」にしました。

続いて、プロジェクトの画面が開きますので、先ほどダウンロードして解凍しておいた、「HoloToolkit-Unity」のAsset中のフォルダーとファイルをすべて選択して、Unityの「Project」のAssetの上にドラッグ&ドロップしてください。なお、このインポート作業には少々時間がかかると思います。

HoloToolkit-UnityのAssetの中のフォルダーとファイルを全て選択して、Unityの「Project」内のAsset上にドラッグ&ドロップする

インポートが終わると、「HoloToolkit-Unity」の「Asset」以下のフォルダーとファイルがUnityの「Project」の「Asset」フォルダーに取り込まれます。

「HoloToolkit-Unity」のフォルダーとファイルが取り込まれた

以上で準備は完了です。

Assetの配置

では、Scene上にAssetを配置していきましょう。

作業に入る前に、配置したAssetがGame画面でどのように見えるのかを分かりやすくするために画面レイアウトを変更しておきましょう。

画面上部の右端にある「Layout」の横の「小さな▼」をクリックして「2 by 3」を選択してください。すると、画面のレイアウトが以下のように変化します。

上にScene画面、下にGame画面が表示されてまいす。画面が狭くなりちょっと見づらいですが、Assetの配置には、このレイアウトが便利です。

レイアウトが「2 by 3」に変わった

それではAssetを配置していきましょう。

ここでは、Main Cameraを変更し、Sphere(球体)を置いていきます。

Main Cameraの変更

まずはHierarchy内の「Main Camera」を削除します。

次に、「Project」の下の「Create」の右横にある検索欄に「Camera」と入力します。

すると、新しい「Main Camera」がAssetの中に表示されますので、それを選択し、Hierarchy内にドラッグ&ドロップしてください。

検索したMain CameraをHierarchy内にドラッグ&ドロップする

配置が完了したら、検索欄の「Camera」という文字は削除しておいてください。

「Main Camera」をHierarchy内にドラッグ&ドロップすると、Game画面では背景が真っ黒に表示されます。この背景が真っ黒になることが重要で、HoloLensを通してみると、真っ黒が透過されて、現実世界が表示されるようになるのです。

Sphereの配置

Hierarchyの「Create→3D Object→Sphere」と選択して、Scene画面上にSphereを2個配置してください。

表示される3本の矢印を操作して、下に表示されているGame画面で確認しながら、以下のように配置してください。

SphereのScaleを「0.5」にして、2つのSphereを並べて表示した

Hierarchy内にSphereが表示されますので、それを選択してマウスの右クリックで表示されるDuplicateを選択します。すると同じ位置にSphereが重なって表示されますので、矢印キーで移動してください。

ここで注意しなければならないのは、Sphereを移動して位置を調節するのであって、Main Cameraの位置は絶対に動かさないようにしてください。

DuplicateでSphereの複製を作成すると「Sphere(1)」と表示されますので、Hierarchy内の「Sphere」や「Sphere(1)」のInspectorから名前を「Sphere1」と「Sphere2」に変更しておきましょう。

また、このままでは、Sphereのサイズが大きすぎますので、InspectorのTransformのScaleから「X、Y、Z」の値を「0.5」にしておいてください。「Sphere1」にも「Sphere2」にも「0.5」と指定してください。

マテリアルの設定

次に、配置した2つのSphereに色を付けていきましょう。Assetに色を付けて見栄えを変えることをMaterial(マテリアル)と言います。

Projectの「Create→Material」と選択します。「New Material」という球体が作成されますので、名前を「Red」としておきます。同じ手順で「Blue」というMaterialも作成しておきましょう。

RedとBlueという名前のMaterialを作成した

ここまでの作業を保存しておきましょう。Unityメニューの「File→Save Scene as」と選択して「Air Tapで色を変える」という名前で保存しておきます。

では、作成したRedとBlueのMaterialに色を設定していきます。

Blueを選択して、右に表示されるInspectorから「Main Maps」の「Albedo」の横にある白い矩形をダブルクリックします。すると「Color」の画面が表示されますので、青系統色を選択してください。ProjectのAsset内のBlueの球が青い球に変化します。

Blueの球が青い球に変化した

同じ手順でRedの球に赤系色を指定してください。

RedとBlueのMaterialが作成できた

あとは、MaterialをScene画面内の「Sphere1」と「Sphere2」にドラッグ&ドロップするだけです。「Sphere1」に赤系統色、「Sphere2」に青系統色を指定しました。

Scene上の2つのSphereにMaterialを指定した

これで、Assetの配置と見栄えは完成です。

Project Settingsの設定

次にProject Settingsを行います。

Unityメニューで「Edit→Project Settings→Player」と選択します。

するとInspector内に「PlayerSettings」の設定画面が表示されます。ここで「Windows Store」のマークをクリックします。

Windows Storeのマークをクリックする(

表示される画面から、「Other Settings」を選択します。「Rendering」の中にある、「Virtual Reality Supported」にチェックを入れます。すると、以下のように、「Windows Holographic」が表示されます。

Other Settings→Virtual Reality Supportedと選択して、Windows Holographicが設定された

Gestureの設定

続いて、対象物を目線で選択するGaze(実際は頭の動きで選択している)やAir Tapをした際の処理を実装しましょう。ProjectのAssetフォルダーに取り込んでおいた「HoloToolkit-Unity」には、これらの処理がすべて含まれていますので、Gestureの処理に関するコーディングはまったく不要です。

まず、Projectの検索欄に「Cursor」と入力してください。Cursorが表示されますので、それをHierarchy内にドラッグ&ドロップしてください。

CursorをHierarchy内にドラッグ&ドロップする

検索欄に入力した「Cursor」の文字は消しておいてください。

次に、Unityメニューの「GameObject→Create Empty」と選択して、Hierarchy内に空のGameObjectを作成してください。

作成したGameObjectに「Assets→HoloToolkit→Input→Scripts」と選択して、各種スクリプトファイルの置かれているフォルダーを開きます。

各種スクリプトファイルの置かれているフォルダー

このスクリプトファイルの中から、GazeManager.cs、GestureManager.cs、HandsManager.csをそれぞれHierarchy内のGameObjectにドラッグ&ドロップしてください。なお、ファイル名が途切れて確認できない場合は、該当ファイルを選択すると下のバーに完全なファイル名が表示されますので、そちらで確認してください。

GazeManager.cs、GestureManager.cs、HandsManager.csを、Hierarchy内のGameObjectにドラッグ&ドロップする

HierarchyのGameObjectを選択して、Inspector内を見ると、各スクリプトが追加されているのがわかります。ここでは、GameObjectに追加するだけで、何もする必要はありません。

GameObjectに各スクリプトファイルが追加されている

Gestureの設定は以上です。

次回は、スクリプトの設定とアプリケーションのデプロイについて解説します。