HoloLensで見ているモデルを第三者視点で確認できるSpectatorViewにTrailRendererを追加する手順について説明します.
SpectatorView
Trail Renderer
- 公式の説明 : https://docs.unity3d.com/ja/2019.4/Manual/class-TrailRenderer.html
- Line Rendererに似ているがラインの位置を全て設定しなくても自動的にオブジェクトが移動した後にラインが描画される.
コンポーネント追加方法
- MixedReality-SpectatorViewではSpectatorViewで共有するオブジェクトの種類と共有方法を
Packages/SpectatorView/SpectatorView/Prefabs/StateSynchronizationAssets.prefab
で定義しています.

- 実際のシーン上では以下のように
SpectatorView
以下に設置されています.

- 各コンポーネントのスクリプトは
Packages/SpectatorView/SpectatorView/Scripts/StateSynchronization/NetworkedComponents
以下のフォルダにコンポーネント毎に置かれています. - 新たに共有したいコンポーネントを追加する場合は以下のスクリプトを追加します.(TrailRendererの場合)
- TrailRendererService.cs :
StateSynchronizationAssets
へのアタッチとTrailRendererの識別用IDを設定しています. - TrailRendererBroadcaster.cs : HoloLens側でTrailRendererのパラメータの変更を検知してSpectatorView側に通知します.
- TrailRendererObserver.cs : SpectatorView側でデータ受信時のTrailRendererへの適応を行っています.
- TrailRendererService.cs :
- 今回追加するTrailRendererはLineRendererと挙動が近いため,LineRendererのコードを参考に各パラメータの共有方法を設定します.

TrailRendererを追加したサンプルプロジェクトがこちら
- SpectatorViewにTrailRendererを追加したプロジェクトになります.
- 利用方法は通常のMixedReality-SpectatorViewと同じです.
samples/SpectatorView.Example.Unity/
プロジェクトのSpectatorView.HoloLens.unity
シーンでTrailRendererを追加した動作を確認できます.
akihiro0105/MixedReality-SpectatorView/tree/TrailLine
まとめ
- SpectatorViewで表示したいコンポーネントを追加できた.
- TrailRendererで移動しているオブジェクトの軌跡を簡単に追加することができる.
- 共有するパラメータや動作を変更することで標準では共有できないパラメータを追加できたり,共有の負荷を低減させることもできます.