夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

ゼロから学ぶHoloLens 初心者向けチュートリアル HoloLensの五大要素を学ぶ Input その① AirTap

チュートリアル枠です。

今回自分が3年前HoloLens に初めて触れ右も左もわからない中開発を行った頃の自分に向けてチュートリアルを作成します。

〇HoloLensへアプリをデプロイしよう!

今回はHoloLensアプリ開発環境を1から構築することを目的とします。 下のようなテーマで書いていこうと思います。

1.Unityの環境を構築しよう!

2.MRTKを使おう!MRTKとは何か?

    UnityEditorでMRTKを使おう

    アプリをUnityからビルドしよう。

    HoloLens実機にデプロイしよう

    

3.HoloLensの5大要素を学ぶ

      空間認識機能を実装する

      空間認識の表現

      ・AirTapの実装←本日はこちら

4.応用編

〇環境

・Unity2019.4.18f1(LTS)

・VisualStudio2019

●筆者PC環境

 ・OS:Windows10 Pro

 ・プロセッサ:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz 3.50 GHz

 GPU:NVIDIA GoForceRTX 3080

 Microsoft HoloLens 1st

Microsoft HoloLens 2

 スペックに関しては高いほうが良いですが、HoloLensアプリ開発の場合VRと比べ求められるスペックは低いです。

 VRアプリ開発の場合PC自体がVRReady(VRゲームを実行できる環境)であることがほぼ必須ですが、HoloLensの場合VRReadyではなくても開発自体はできます。

 Unityが動くスペックであれば最低限問題ないです。

〇AirTapの実装

今回はジェスチャを実装します。

 HoloLensではコントローラーがありません。HoloLens 1st、HoloLens 2ともにユーザーの手を使ったジェスチャで入力を行います。

[AirTap]とはHoloLensの最も基礎的なジェスチャで一般的なPCでいうところのクリック、スマートフォンなどでいうところのタップと同じような選択の機能を実現します。

redhologerbera.hatenablog.com

今回はこの機能を実装します。プロジェクトは前回のものを使用します。

redhologerbera.hatenablog.com

今回はAirTapを行うことでCubeを落下させる実装を行います。

初めに前回作成した[Drop]コンポーネントを次のように書き換えます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Drop : MonoBehaviour
{
    [SerializeField]
    Rigidbody rb;

    public void DropDown()
    {
      
        rb.useGravity = true;
    }

   
}

①[Cube]オブジェクトを選択しインスペクターウィンドウから[Interactable]というコンポーネントを追加します。

f:id:Holomoto-Sumire:20210605212234j:plain

コンポーネントの追加はインスペクターウィンドウの最下部の[Add component]をクリックし[Interactable]と検索バーに入力することで行えます。

f:id:Holomoto-Sumire:20210605212407j:plain

②[Interactable]コンポーネントはアクションに対してのリアクションを返すコンポーネントです。

f:id:Holomoto-Sumire:20210605212559j:plain

これによって[Cube]をAirTapすることでリアクション(イベント)を発火させることができます。

次にイベントを設定します。

③[Events]のタブを開き[+]マークをクリックしイベントを追加します。

f:id:Holomoto-Sumire:20210605212827j:plain

②hierarchyウィンドウから[Cube]オブジェクトを[Interactable]コンポーネントの[Events]にドラッグアンドドロップして設定します。

f:id:Holomoto-Sumire:20210605213000j:plain

 これはAirTapに対してのリアクションをどのオブジェクトが行うかの設定です。

 次に何を行うかを設定します。

③[No Function]をクリックします。

f:id:Holomoto-Sumire:20210605213256j:plain

④Cubeオブジェクトにアタッチしている[Drop]コンポーネント、[DorpDown]を選択します。

f:id:Holomoto-Sumire:20210605214848j:plain

これでCubeをAirTapすることでCubeが落ちるようになります。