MRが楽しい

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

Hololensで壁の向こうの世界が見える窓を作る その1

本日はhololensの学習枠です。
今回トライするのは、壁や空間に窓が開いてその向こうに別の風景が見える、という技術です。

まずは技術の理解からです。以下の技術ブログでサンプルプロジェクトが提供されています。
tips.hecomi.com

今回はこちらを参考に技術を理解していきます。
hecomi/HoloLensPlayground をダウンロードしてプロジェクトを開きました。
f:id:bluebirdofoz:20170802005009j:plain

シェーダやSpatialMappingを利用するため、合わせてHoloToolKitもインポートします。
f:id:bluebirdofoz:20170802005106j:plain

「方法1」の技術について確認します。
HoloLens_Stencil_Window/Scenes にある Pattern1 のシーンがそれのようです。
f:id:bluebirdofoz:20170802005123j:plain

HoloToolkit -> Configure -> Apply Hololens Project Settings でビルド設定を変更します。
f:id:bluebirdofoz:20170802005134j:plain

本プロジェクトは Spatial Mapping を使うので SpatialPerception の許可設定が必要です。
Edit -> Project Setting -> Player から PlayerSettings を開きます。
Windows Store App Settings の Publishing Settings にある Capabilities から SpatialPerception をチェックします。
f:id:bluebirdofoz:20170802005144j:plain

後は File -> Build Settings でビルド設定を開き、Add Scene でシーンを追加して「Build」をクリックで完了です。
f:id:bluebirdofoz:20170802005153j:plain

hololensにインストールして起動します。
f:id:bluebirdofoz:20170802005204j:plain

壁をタップすると……。
f:id:bluebirdofoz:20170802005226j:plain

窓が出ました……が、この時点では窓の向こうには何も見えません。
これは、そのままだとSkyboxオブジェクトのNormalSkyマテリアルにテクスチャが割り当てられていないためです。
プロジェクト内を探しましたが、サンプルテクスチャはないので自分で好きな画像を設定してくださいと言う事だと思います。
(違ってたらすいません)

全天球の表示を行うため、Cubemapに対応したテクスチャが必要となります。
丁度、手元にBlender講座で利用したイイ感じの空テクスチャがあったので利用します。
画像ファイルをインポートしたら、画像のInspectorから以下の設定を行います。
 TextureType:Default
 TextureShape:cube
f:id:bluebirdofoz:20170802005316j:plain

「Apply」ボタンを押して反映すると、以下のようにCubemapテクスチャが作成されます。
f:id:bluebirdofoz:20170802005325j:plain

ではテクスチャを適用してみます。
HoloLens_Stencil_Window -> Materials にある NormalSky.mat のInspectorを開きます。
Cubemapに先ほどインポートしたCubemapテクスチャを設定します。
f:id:bluebirdofoz:20170802005701j:plain

この状態で改めてビルドしてみると……。
f:id:bluebirdofoz:20170802005344j:plain

今度は窓の向こうに空が見えるようになりました。
次回は本プロジェクトのシェーダの処理を読み解き、技術について理解を深めます。
bluebirdofoz.hatenablog.com