MRが楽しい

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

公式チュートリアル「HOLOGRAMS 210 1章」を試してみる

本日は公式チュートリアル実施枠です。
いつも通り、以下ブログの記事を参考に実施します。
・HOLOLENS 公式チュートリアル HOLOGRAMS 210 GAZE 1章
 https://azure-recipe.kc-cloud.jp/2016/12/holograms-210-1/


参考記事にある通りにチュートリアルを実施します。
アプリをビルドすると、下記の画面が表示されました。
f:id:bluebirdofoz:20170509014238j:plain
タップ操作を行うと…。
f:id:bluebirdofoz:20170509014243j:plain
宇宙飛行士が現れました。

今回の目新しい技術としてはfitboxのオブジェクトでしょうか。
アプリ起動時に表示された、所謂「スプラッシュスクリーン」のオブジェクトとなります。

作っている箇所は以下の辺り。
以前利用したPanelオブジェクトと異なり、四角形の3Dオブジェクトを作成する手法のようです。
・Fitbox.cs

    private void CreateFitboxQuad(Transform parent, float xPos, float yPos, float width, float height)
    {
        var quad = GameObject.CreatePrimitive(PrimitiveType.Quad);
        quad.transform.parent = parent;
        quad.transform.localPosition = new Vector3(xPos, yPos, 0);
        quad.transform.localScale = new Vector3(width, height, quad.transform.localScale.z);
        quad.transform.localRotation = Quaternion.Euler(0f, 180f, 0f);
        quad.GetComponent<MeshRenderer>().material = FitboxMaterial;
    }

以下でタップイベントをキャッチした際に呼び出す関数を設定しています。
・Fitbox.cs

        // Set up our GestureRecognizer to listen for the SelectEvent
        recognizer = new GestureRecognizer();
        recognizer.TappedEvent += (source, tapCount, ray) =>
        {
            DismissFitbox();
        };
        recognizer.StartCapturingGestures();

DismissFitbox関数ではAstroManのオブジェクトがアクティブになり、表示されます。

    private void DismissFitbox()
    {
        // Destroy the GestureRecognizer ...
        recognizer.CancelGestures();
        recognizer.StopCapturingGestures();
        recognizer.Dispose();
        recognizer = null;

        // ... show the hologram collection ...
        if (HologramCollection)
        {
            HologramCollection.SetActive(true);

同時に、fitboxオブジェクトは削除されます。

        // ... and Destroy the Fitbox
        Destroy(gameObject);

因みに途中、差し替えたカメラオブジェクトは以下の設定を行ったカメラオブジェクトとなります。
・Move Camera to Origin: アプリ起動時にカメラ位置を0,0,0にする
・Camera Clears to Black: カメラのBackgroundを黒にする

以前の「Holograms 101」チュートリアルでは手動設定していた項目ですね。