Help us understand the problem. What is going on with this article?

HoloLens 積み木アプリを 10 分で作る手順とコード

More than 1 year has passed since last update.

(※2017/7/23 更新)
この記事は、参考情報に記載した HoloLens アプリ開発先駆者である @Taka_Yoshinaga さんの HoloLens アプリ開発の公開資料をもとに、ワンシート形式で主な手順をまとめた資料になります。各手順やコード内容はお公開資料に準じておりますので、本記事は手元に置いて確認用の用途や、手順工程確認表の用途などにご利用ください。公開資料には、手順の詳細や補足情報なども記載されていますので、合わせてご覧いただくことをおすすめします。詳細で丁寧な HoloLens アプリ開発資料を公開している @Taka_Yoshinaga さんにはこの場を借りてお礼申し上げます。

成果物

下記手順で、以下のような成果物が出来上がります。


対象ユーザー

  • HoloLens 開発環境を整えている方
  • HoloToolKit のシンプルな使い方を確認したい方
  • Holographic Academy にあるチュートリアルを全部終えて、次のステップに進みたい方
  • Unity 操作に慣れており、最低限の手順で HoloLens アプリを作りたい方
  • 人前でゼロから簡単なHoloLensアプリ実装デモをしたい方

環境

  • Unity 2017.1.0.f3
  • Visual Studio 2017

手順

  1. HoloToolKit-Unity を DL し unitypackage 化しておく。
  2. Unity 3D プロジェクトの作成
  3. Asset に HoloToolKit.unitypackage をインポート
  4. "Hierarchy" で右クリック [3D Object] - [Cube] を選択、追加
  5. 動作確認
  6. 移動回転拡大ボタンの説明
  7. Cubeを選択:
    1. Position: 0,0,1.2
    2. Scale: 0.15, 0.15, 0.15
  8. Asset で右クリック [Create] - [Material]
  9. Material を選択して Albedo で色変更
  10. Cube を選択 "Material" を展開し Element0 にドラック&ドロップ
  11. [Add Component] - [Rigidbody] を選択、追加
  12. Unity エディター内の再生ボタンで動作確認 (Camera を Position: 0,0,0 に)
  13. Scene を保存 (以後、定期的に保存)
  14. Unity エディター内の再生ボタンで動作確認
  15. Main Camera を削除
  16. Assets フォルダ内で HoloLensCamera を検索、追加
  17. Assets で SpatialMapping を検索 SpatialMapping.prefab を追加
  18. SpatialMapping を選択 - Room Model 検索ボックスから SRMesh を検索追加 (※2017/7/20 更新: HoloToolKitからSRMeshが無くなった)
  19. Assets で InputManager を検索 prebab を Hierarchy に追加
  20. 動作確認 (Shift を押すとハンドカーソルが表示され AirTap 可能)
  21. "Hierarchy" で [Create Empty] を選択、追加
  22. GameObject で [Add Component] - [New Script] で RcvAirTap.cs ファイルを作成
  23. Assets フォルダ内の RcvAirTap.cs をダブルクリックで VS で表示
    1. IinputClickHandler を作成し Ctrl + . で using と OnInputClicked メソッドが自動的に作成
    2. 後述のコード内容を実装
  24. Cube を Assets フォルダにD&D
  25. GameObject を選択 Original 変数に Cube をD&D
  26. 動作確認 (AirTap でCubeが落ちることを確認)
  27. [HoloToolKit] - [Configure] - [Apply HoloLens Capability Settings] - [Spatial Perception] をチェック
  28. [File] - [Build Settings] で [Windows Store] をクリックし [Switch Platform]
  29. SDK: Windows 10, Target device: HoloLens,
  30. [Player Setting] をクリック、[Inspector] - [Other Settings] の [Virtual Reality Supported] にチェック
  31. [File] - [Build Settings] で [Biuld] を実行。任意のフォルダにビルドする。
  32. プロジェクト名.sln を Visual Studio で開く
  33. HoloLens を USB でPCに接続する
  34. Release x86 Device にしてデバッグ実行
  35. 実機デモ (成果物参照)

コード内容

以下のコードを上記手順 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 さんの公開資料をもとに作成しています。各資料ともスクリーンショットとともに丁寧な解説が記載されていますので参照してください。

image
ARコンテンツ作成勉強会:HoloLensハンズオンvol.2(AirTap編) By @Taka_Yoshinaga さん

また、HoloLens アプリ開発環境セットアップに関する詳細や、アプリ開発の導入に関しては @kaorun55 さんが詳細な資料を公開していらっしゃいますので、合わせて参照してください。

HoloLensハンズオン(セットアップ) - HoloLens アプリ開発環境セットアップ By @kaorun55 さん
HoloLensハンズオン(ショート) - 45分でHoloLensアプリ開発 By @kaorun55 さん

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした