MRが楽しい

MRやVRについて学習したことを書き残す

HoloLensでホログラムにアクションを付ける

Unityの機能により、3Dオブジェクトにアクションを付けることができます。
ただ物を配置するだけではなく、仮想現実と仮想現実が衝突したとき、何らかのアクションを起こすこともできます。

今回はチュートリアルの続きです。
・HOLOLENS ホログラムにアクションを付ける HOLOGRAPHIC FUN
 https://azure-recipe.kc-cloud.jp/2016/12/hololens-tutorial7/

説明通りにチュートリアルを行い、アプリを実行してみました。


まず折り紙をタップ操作で手頃な位置に配置します。
f:id:bluebirdofoz:20170419001247j:plain
そしてボールをタップすると以前のチュートリアルで実装した重力操作によりボールが折り紙に落下します。
f:id:bluebirdofoz:20170419001305j:plain
すると折り紙が爆発して消え去り、空間にできた穴にはアンダーワールドとも言うべき世界が広がっていました。

待って。チュートリアルの割りにいきなりハイレベルなことされて付いていけない。
というか、ホログラムのアクションうんぬんよりこっちの技術が気になる。。

とても面白いチュートリアルです。少しずつ読み解いて、この技術も身に着けていきます。


今回の追加スクリプトは以下。
HitTarget.cs

using UnityEngine;

public class HitTarget : MonoBehaviour
{
    // These public fields become settable properties in the Unity editor.
    public GameObject underworld;
    public GameObject objectToHide;

    // Occurs when this object starts colliding with another object
    void OnCollisionEnter(Collision collision)
    {
        // Hide the stage and show the underworld.
        objectToHide.SetActive(false);
        underworld.SetActive(true);

        // Disable Spatial Mapping to let the spheres enter the underworld.
        SpatialMapping.Instance.MappingEnabled = false;
    }
}

OnCollisionEnterは衝突イベントが発生したときに呼び出される関数です。
スクリプトは折り紙のオブジェクトに追加しており、ボールと折り紙が接触した際に呼び出されます。
今回の追加コードは各オブジェクトのアクティブ状態を変化しているだけです。

折り紙とアンダーグラウンドのアクティブ状態を変更しています。
ここから分かるのは折り紙オブジェクトのアクティブ状態はここでfalseにしているので、
爆発のアクションと、空間に空いた穴の表現は、underworldオブジェクト側で実装された処理ということです。

ひとまず"HolographicAcademy-Holograms-101"のチュートリアルはこれで最後なので、少しずつ理解します。