戯言日記

ホロレンジャーの戦いの記録

HoloLens Shader Pack を買ってみた 【後編】

HoloLens Shader Pack 後編です

後編ではSpatialMap用のMaterial/Shaderについて簡単に紹介します

(Material名 / Shader名)
1. Triangles / CellsAndLines
f:id:haikage1755:20170723210004p:plain:w300

2. Squares / Grid
f:id:haikage1755:20170723224944p:plain:w300

3. Quads / CellsAndLines
f:id:haikage1755:20170723224817p:plain:w300

4. MultiGrid / MultiGrid
f:id:haikage1755:20170723210509p:plain:w300

5. Holodeck / Grid
f:id:haikage1755:20170723210625p:plain:w300

6. Flagments / PatterAndHighlight
f:id:haikage1755:20170723210828p:plain:w300

使い方

1. SpatialMappingCalcNormalsをScene内の空のGameObjectまたはSpatialMapping Prefabにアタッチ

2. SpatialMappingManagerのSurfaceMaterialにHololensShaderPack/Assets/Materials/SpatialMapping内のMaterialを適応

3.

  • GazeTransitionAnimatorをシーン内のSpatialMappingにアタッチし、SurfaceMaterialに2で使用しているマテリアルを指定すると、現在見ている位置を中心にパルスアニメーションが走る(この時マテリアルのPulse TransitionがEnableになっていることを確認)
  • TapTransitionAnimatorをシーン内のSpatialMappingにアタッチし、SurfaceMaterialに2で使用しているマテリアルを指定すると、タップした位置を中心にパルスアニメーションが走る(この時マテリアルのPulse TransitionがEnableになっていることを確認)

4. SpatialMappingMaterialControllerを用いることで、SpatialMappingのマテリアル変更をトリガー可能 (例として音声認識を使ってSelectNextMaterialを呼び出すなど)

5. GazeAnimatorは, 注視点に指定されたマテリアルをコピーするスクリプトで、カーソルオブジェクトの代わりに利用することで注視点をシェーダーによって可視化できる (Fragmentsマテリアルは、この機能を使用するマテリアル)


今回はTapTransitionAnimatorを除いた以下の構成にしました

f:id:haikage1755:20170723225247p:plain

SMMCSampleは、SpatialMapController.csのSelectNextMaterialをAirTapで呼ぶ簡単なコードです

using UnityEngine;
using HoloToolkit.Unity.InputModule;

public class SMMCSample : MonoBehaviour, IInputClickHandler
{
    SpatialMappingMaterialController _smmc;

    private void Start()
    {
        _smmc = GetComponent<SpatialMappingMaterialController>();
    }

    public void OnInputClicked(InputClickedEventData eventData)
    {
        _smmc.SelectNextMaterial();
    }
}

動画

youtu.be

[研究者になりたかった青二才の戯言日記]は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。」