最終回となる今回は、「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」と入力すると、背景が真っ黒で表示されます。
ProjectからAssets>Character>NPC>HuaYaoと進み、「HuaYao.FBX」をScene画面内にドラッグ&ドロップします。Hierarchyに表示された「Huayao」を選択してInspectorを表示。HuaYaoがカメラを向くように、TransformのRotationの「Y」に「180」と指定します。次に、TransformのScaleの「X、Y、Z」の値に「0.5」と指定して、サイズを小さくします。画面の中央に来るように配置してください。
Game画面でHuaYaoを見るとグレーで表示されていますが、これはMaterialが設定されていないためです。HuaYaoのMaterialフォルダーの中を見ると、3個の「.mat」ファイルがあります。HuaYao01~HuaYao03までのファイルが用意されていますので、好きな模様をScene画面の「HuaYao」の上にドラッグ&ドロップしてください。
これで、HuaYaoの見栄えの設定はできました。次に、Hierarchyから「HuaYao」を選択してInspectorを表示させ、上にあるModelの横のSelectボタンをクリックします。
次に「Rig」を選択すると「Animation Type」が「Generic」になっていますので、「Legacy」に変更して「Apply」ボタンをクリックしてください。
その後、再度Hierarchyから「HuaYao」を選択してInspectorを表示してください。すると「Animation」という項目ができています。Animationの右横の「〇に・」のアイコンをクリックして、「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)」が追加されます。
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の未来を信じる方への情報提供の一助となれば、筆者としては嬉しい限りです。