最終回となる今回は、「Asset Store」で入手した「妖精」を室内で飛ばすプログラムを解説します。過去2ケースでは「HoloToolikit-Unity」を使っていましたが、今回はほとんど使いません。

プロジェクトの作成

Unityを起動して新しいプロジェクトを作成します。今回は「FairiesSample」という名前にしました。今回使用するAssetは「Dream World Fairies(有料、2ドル)」です。Asset Storeからダウンロードしますが、有料のAssetを購入する場合は、事前にクレジットカードの登録が必要になります。なお一度購入したAssetは、その後何度Importしても無料になります。また、Assetは自分の環境に合わず、エラーなどが表示されて使用できない場合があります。そうした場合は、作者への連絡先が明記されていますので、直接作者にメールで問い合わせ、解決方法や返金対応などを依頼してみてください。

「Asset Store」からのDL方法、インポート作業については、第5回を参照してください。

インポート後、これまではHierarchyの中にある「Main Camera」を削除して、HoloToolKit-Unityの「Main Camera」を配置していました。ただ今回は、HoloToolkit-Unityを取り込んでいませんので、Hierarchy内の「Main Camera」を自前で設定します。

まず、Hierarchy内の「Main Camera」を選択し、Inspector>Transform>Positionの「X、Y、Z」の値をすべて「0」にします。次にCameraの「Clear Flags」に「Solid Color」を指定します。「Backgorund」の長方形をクリックしてColorを表示させて、「R、G、B、A」の値にすべて「0」と入力すると、背景が真っ黒で表示されます。

HoloToolkit-Unityで使用した「Main Camera」と同じ表示

ProjectからAssets>Character>NPC>HuaYaoと進み、「HuaYao.FBX」をScene画面内にドラッグ&ドロップします。Hierarchyに表示された「Huayao」を選択してInspectorを表示。HuaYaoがカメラを向くように、TransformのRotationの「Y」に「180」と指定します。次に、TransformのScaleの「X、Y、Z」の値に「0.5」と指定して、サイズを小さくします。画面の中央に来るように配置してください。

HuaYaoを配置

Game画面でHuaYaoを見るとグレーで表示されていますが、これはMaterialが設定されていないためです。HuaYaoのMaterialフォルダーの中を見ると、3個の「.mat」ファイルがあります。HuaYao01~HuaYao03までのファイルが用意されていますので、好きな模様をScene画面の「HuaYao」の上にドラッグ&ドロップしてください。

Scene画面のHuaYaoにHuaYao_02.matを適用

これで、HuaYaoの見栄えの設定はできました。次に、Hierarchyから「HuaYao」を選択してInspectorを表示させ、上にあるModelの横のSelectボタンをクリックします。

Selectボタンをクリックする

次に「Rig」を選択すると「Animation Type」が「Generic」になっていますので、「Legacy」に変更して「Apply」ボタンをクリックしてください。

Animation TypeにLegacyを選択する

その後、再度Hierarchyから「HuaYao」を選択してInspectorを表示してください。すると「Animation」という項目ができています。Animationの右横の「〇に・」のアイコンをクリックして、「Select AnimationClip」画面を表示させ、「Walk」を選択してください。

Select AnimationClipからWalkを選択した

第3回で解説したProject Settingsの設定を行ったあと、スクリプトを作成します。なお今回は、Gestureを設定しません。

HuaYaoは、キーボードの矢印キーで動かしますので、あらかじめBluetooth対応のキーボードを用意してください。

Hierarchyから「HuaYao(妖精)」を選択し、Inspectorを表示して「Add Component」から「New Script」を選択します。Nameに「AnimationMoveScript」、Languageに「C Sharp」を選択して、「Create and Add」をクリックします。するとInspectorに「Animation Move Script(Script)」が追加されます。

「Animation Move Script(Script)」が追加された

Scriptの「AnimationMoveScript」をダブルクリックするとVisual Studio 2015が起動します。

リスト1 : 妖精をキーボードの矢印キーで操作するコード

using UnityEngine;
using System.Collections;

public class AnimationMoveScript : MonoBehaviour {

    private GameObject obj;

    void Start()
    {
        obj = GameObject.Find("HuaYao");

    }

    void Update()
    {

        if (Input.GetKey("down"))
        {
            obj.transform.position += transform.forward * 0.01f;
        }

        if (Input.GetKey("left"))
        {
            obj.transform.Rotate(0, 2, 0);
        }
        if (Input.GetKey("right"))
        {
            obj.transform.Rotate(0, -2, 0);
        }
    }
}

GameObject型の変数objを宣言します。Startメソッド内で、Findを使って「HuaYao」にアクセスし、変数objで参照しておきます。Updateメソッド内では、矢印キーによる条件分岐を行います。下矢印キーでは前方向に、左矢印キーはY軸を中心に「2」度回転、右矢印キーは反対方向に「-2」度回転します。

ビルド時の警告の対処

ビルドを実行すると、最初から用意されている「ShowAnimation.cs」に対して警告が表示されるので、その警告をダブルクリックして「ShowAnimation.cs」を表示させ、すべてのコードをコメントアウトしてください。通常、警告はそのままにしておいても問題はないのですが、今回の警告は「Build Settings」時にエラーが発生して「Universal 10」のファイルに書き出すことが出来ません。そのため必ずShowAnimation.csはコード全体をコメントアウトし、再度ビルドを実行してください。ここで、一次保存しておきましょう。

Build Settingsは第4回とまったく同じ手順ですが、「Add Open Scenes」を指定することを忘れないでください。書き出しが成功すると、作成したHoloLensのフォルダーが選択されて表示されます。HoloLensのフォルダー内を見ると「FairiesSample.sln」というファイルが作成されており、ダブルクリックするとVisual Studio 2015が起動します。その前にHoloLensをPCと接続して、起動させておきましょう。

Visual Studio 2015の起動とHoloLensへのデプロイ(配置)

Visual Studio 2015内ではコードを触らず、第4回と同じようにHoloLensへのデプロイ(配置)を行うだけです。デプロイ(配置)に成功して表示された画面から、「デバッグの続行」をクリックしてください。Unityのタイトルが表示され、下記のようにキーボードで妖精を操作できます。

室内を妖精が飛んでいる

今回でHoloLensプログラミングの連載は終了です。ほとんどがHoloToolkit-Unityのコードを利用できるため、思ったほど難しくなかったのではないでしょうか。HoloLensの国内発売がすでに予告されており、2017年にはサードパーティから安価なAR(MR)デバイスが登場する予定です。この連載が、HoloLensの未来を信じる方への情報提供の一助となれば、筆者としては嬉しい限りです。