(※2017/7/23 更新)
この記事は、参考情報に記載した HoloLens アプリ開発先駆者である @Taka_Yoshinaga さんの HoloLens アプリ開発の公開資料をもとに、ワンシート形式で主な手順をまとめた資料になります。各手順やコード内容はお公開資料に準じておりますので、本記事は手元に置いて確認用の用途や、手順工程確認表の用途などにご利用ください。公開資料には、手順の詳細や補足情報なども記載されていますので、合わせてご覧いただくことをおすすめします。詳細で丁寧な HoloLens アプリ開発資料を公開している @Taka_Yoshinaga さんにはこの場を借りてお礼申し上げます。
#成果物
下記手順で、以下のような成果物が出来上がります。
HoloLens building blocks Demo https://t.co/Iqzn1boTog
— HoloDevJP (@HoloDevJP) 2017年7月20日
#対象ユーザー
- HoloLens 開発環境を整えている方
- HoloToolKit のシンプルな使い方を確認したい方
- Holographic Academy にあるチュートリアルを全部終えて、次のステップに進みたい方
- Unity 操作に慣れており、最低限の手順で HoloLens アプリを作りたい方
- 人前でゼロから簡単なHoloLensアプリ実装デモをしたい方
#環境
- Unity 2017.1.0.f3
- Visual Studio 2017
#手順
- HoloToolKit-Unity を DL し unitypackage 化しておく。
- Unity 3D プロジェクトの作成
- Asset に HoloToolKit.unitypackage をインポート
- "Hierarchy" で右クリック [3D Object] - [Cube] を選択、追加
- 動作確認
- 移動回転拡大ボタンの説明
- Cubeを選択:
- Position: 0,0,1.2
- Scale: 0.15, 0.15, 0.15
- Asset で右クリック [Create] - [Material]
- Material を選択して Albedo で色変更
- Cube を選択 "Material" を展開し Element0 にドラック&ドロップ
- [Add Component] - [Rigidbody] を選択、追加
- Unity エディター内の再生ボタンで動作確認 (Camera を Position: 0,0,0 に)
- Scene を保存 (以後、定期的に保存)
- Unity エディター内の再生ボタンで動作確認
- Main Camera を削除
- Assets フォルダ内で HoloLensCamera を検索、追加
- Assets で SpatialMapping を検索 SpatialMapping.prefab を追加
-
SpatialMapping を選択 - Room Model 検索ボックスから SRMesh を検索追加(※2017/7/20 更新: HoloToolKitからSRMeshが無くなった) - Assets で InputManager を検索 prebab を Hierarchy に追加
- 動作確認 (Shift を押すとハンドカーソルが表示され AirTap 可能)
- "Hierarchy" で [Create Empty] を選択、追加
- GameObject で [Add Component] - [New Script] で RcvAirTap.cs ファイルを作成
- Assets フォルダ内の RcvAirTap.cs をダブルクリックで VS で表示
- IinputClickHandler を作成し Ctrl + . で using と OnInputClicked メソッドが自動的に作成
- 後述のコード内容を実装
- Cube を Assets フォルダにD&D
- GameObject を選択 Original 変数に Cube をD&D
- 動作確認 (AirTap でCubeが落ちることを確認)
- [HoloToolKit] - [Configure] - [Apply HoloLens Capability Settings] - [Spatial Perception] をチェック
- [File] - [Build Settings] で [Windows Store] をクリックし [Switch Platform]
- SDK: Windows 10, Target device: HoloLens,
- [Player Setting] をクリック、[Inspector] - [Other Settings] の [Virtual Reality Supported] にチェック
- [File] - [Build Settings] で [Biuld] を実行。任意のフォルダにビルドする。
- プロジェクト名.sln を Visual Studio で開く
- HoloLens を USB でPCに接続する
- Release x86 Device にしてデバッグ実行
- 実機デモ (成果物参照)
#コード内容
以下のコードを上記手順 23-2. の際に実装します。
using HoloToolkit.Unity.InputModule;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class RcvAirTap : MonoBehaviour, IInputClickHandler{
//Cube Prefab を扱う変数
public GameObject original;
//AirTapされたときに呼び出される関数
public void OnInputClicked(InputClickedEventData eventData)
{
//throw new NotImplementedException();
//Cube Prefab の情報を用いて実体化
GameObject cube = GameObject.Instantiate(original);
//自分からみて前方1.2mの位置を空間内の位置に変換
cube.transform.position = Camera.main.transform.TransformPoint(0, 0, 1.2f);
}
// Start関数は初期化のために一度だけ実行される
void Start () {
//AirTap の通知が gameObject に渡るように設定
InputManager.Instance.PushFallbackInputHandler(gameObject);
}
// Update は毎フレーム毎実行される
void Update () {
}
}
#参考情報
上記手順まとめは、次の@Taka_Yoshinaga さんの公開資料をもとに作成しています。各資料ともスクリーンショットとともに丁寧な解説が記載されていますので参照してください。
ARコンテンツ作成勉強会:HoloLensハンズオンvol.2(AirTap編) By @Taka_Yoshinaga さん
また、HoloLens アプリ開発環境セットアップに関する詳細や、アプリ開発の導入に関しては @kaorun55 さんが詳細な資料を公開していらっしゃいますので、合わせて参照してください。
HoloLensハンズオン(セットアップ) - HoloLens アプリ開発環境セットアップ By @kaorun55 さん
HoloLensハンズオン(ショート) - 45分でHoloLensアプリ開発 By @kaorun55 さん