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

前回は、HoloLens用のUnity「Unity HoloLens 5.4.0f3-HTP (64-bit)」を使用し、環境の準備からAssetの配置、Gestureの設定まで行いました。今回は、スクリプトを記述し、動作設定をしたうえで、ディプロイ(配備)して、実際に動かしてみましょう。

スクリプトの記述

次にScriptを記述していきます。

まず、Hierarchy内のSphere(赤い球)を選択して、Inspectorから「Add Component→New Script」と選択して、「Name」に「ChangeColorScript」、「Language」に「C Sharp」を選択して、「Create and Add」をクリックします。

するとSphere1のInspectorに「Change Color Script(Script)」が追加されます。その中のScriptにある「ChangeColorScript」をダブルクリックします)。

Inspector内に「Change Color Script(Script)」が追加された

Visual Studio 2015の起動

Visual Studio 2015が起動しますので、リスト1のコードを記述します。

リスト1 Air TapでSphereの色を変える処理

using UnityEngine;
public class ChangeColorScript : MonoBehaviour {
    public Material color1;
    public Material color2;

    public void OnSelect()
    {
        var material = GetComponent<Renderer>().material;
        if (material.color == color1.color)
        {
            material.color = color2.color;
        }
        else
        {
            material.color = color1.color;
        }
       }
    }

このコードについて補足しておきましょう。

冒頭では、publicな変数でMaterial型のcolor1とcolor2を宣言しています。

そして、OnSelectに、視線が球に移りAir Tapした時の処理を記述します。

OnSelect内では、変数materialをMaterialコンポーネントとして宣言しています。マテリアルのcolorがcolor1であった場合は、球の色をcolor2の色に指定します。そうでなかった場合は、マテリアルのcolorをcolor1に指定します。

color1とcolor2はpublicな変数として宣言していますので、ビルドをすると、Inspector内に「Color 1」と「Color 2」のマテリアルを指定する項目が表示されます。後程、作成したMaterialをその項目にドラッグ&ドロップして設定しますので、ビルドを忘れないで実行してください。

Visual Studio 2015を閉じてUnityの画面に戻ります。

すると、以下のように「Color 1」と 「Color 2」を指定する項目が追加されています。

Change Color Script(Script)にColor 1とColor 2の項目が追加された

それぞれの項目に、Assets内にあるMaterialをドラッグ&ドロップします。

Color 1とColor 2にMaterialをドラッグ&ドロップ

Materialはどちらに何色を指定しても問題はありません。

以上で、「Sphere1(赤い球)」のスクリプト設定は完了です。

同様に、Hierarchyから「Sphere2」を選択し、Inspectorから「Add Component→Scripts→Change Color Script」と選択して上記のように設定してください。

以上でプロジェクトは完成です。ここまでの作業を「File→Save Scene」で保存しておきましょう。

Build Settingsの設定

次にこのプロジェクトをWindows Store用のファイルに書き出し、HoloLensで使用可能にします。

Unityメニューの「File→Build Settings」と選択します。以下のような画面が表示されます。

Build Settingsの画面

こちらで「Add Open Scenes」ボタンをクリックします。作成して保存したSceneの名前が表示されます。今回は「Air Tapで色を変える」と表示されます。

次に、「Platform」から「Windows Store」を選択します。右に表示される「SDK」に「Universal 10」、「UWP Build Type」に「D3D」を選択します。また、「Unity C# Project」にもチェックを付けます。

各種Build Settingsを設定

「Build」ボタンをクリックするとビルドしたファイルの保存場所を聞いてきますので、ここでは、「HoloLens」というフォルダーを新規に作成して指定しましょう。

ビルドには多少時間がかかります。設定ミス等があった場合は、途中で書き出しがストップし、エラーが表示されますので、エラーを確認して、修正して再度実行してください。

書き出しが成功すると、先ほど作成したHoloLensのフォルダーが選択されて表示されます。HoloLensのフォルダー内を見ると、「AirTapChangeColor.sln」というファイルが作成されています。HoloLensをPCと接続して起動させてから、このファイルをダブルクリックしましょう。

Visual Studio 2015の起動とHoloLensへのデプロイ

さきほどのAirTapChangeColor.slnをダブルクリックするとVisual Studio 2015が起動します。ですが、Visual Studio 2015内ではコードを触ることは一切ありません。HoloLensへのディプロイを行うだけです。

Visual Studio 2015の上のバーの「Debug」と表示されている箇所に「Release」、「ARM」と表示されている箇所に「x86」を指定します。

また、「ローカルコンピューター」と表示されている部分は、接続方法によって異なります。

HoloLensとPCをUSBケーブルで接続している場合は「Device」を指定します。もしWi-Fiで接続する場合は「リモートコンピューター」を選択することになりますが、第1回でも説明したとおり、Wi-Fiは電波法に抵触するので使用できません。よって、今回はPCとHoloLensをUSBケーブルで繋いでデプロイする方法で解説します。

デプロイを実行する前にHoloLensの実機側で以下の設定を行っておいてください。

HoloLensのDeveloper modeの設定

HoloLensのSettingsメニューで「For developers」の「Developer mode」を必ず「On」にしておいてください。デフォルトでは「Off」になっています。デフォルトのままだと、デプロイに失敗しますので、注意してください。

また、この画面にある「Pair」ボタンをクリックして、PCとHoloLensのペアリング用のPINコードを、メモ用紙にでも控えておいてください。

デプロイ(配置)の実行

「Device」の左横の「右向き▲」をクリックすると、デプロイが開始されます。

HoloLensに配置するための準備が完了した

その際、初回はPIN入力のダイアログが表示されますので、先ほどメモしておいたPINコードを入力してください。一度入力すると次回からは必要ありません。

デプロイに成功すると、以下の画面が表示されますので、「デバッグの続行」をクリクしてください。

「デバッグの続行」をクリックする

Unityのタイトルが表示され、以下のように、宙に浮いている球を目線で選択すると、カーソルがリング状になります。その状態でAir Tapすると、球の色が変わります。

初期のころはデプロイエラーが出ることがありましたが、最近のVisula Studio 2015 Update3では、ほとんど配置エラーも出ませんので安心です。

2つの球を交互にAir Tapすると色が変化する。リングのカーソルは必ず球の上にある必要がある

実際に動かした動画は下記のようになります。


1回目にも書きましたが、USBによるデバイスポータルサイトへの接続は「http://127.0.0.1:10080」に接続します。このサイトで動画を撮ったりスクリーンショットを撮ったりします。

今回はこれで終わりです。Gestureの設定などは、今後も必要になりますが、今回と同じ作業になります。

次回は「空間マッピング」について解説します。