MRが楽しい

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

WindowsMRで3Dランチャを作成する

本日は WindowsMR の技術調査枠です。
WindowsMR のアプリは通常、以下のような平面のランチャ画面が表示されます。
f:id:bluebirdofoz:20171027074032j:plain

今回試すのは、これを3Dモデルに差し替えるというものです。
アプリのランチャが特徴的なものになるほか、WindowsMRのホームに好みの3Dモデルを置くこともできます。
以下の記事を参考にしました。
dhero.hatenablog.com
公式マニュアルは以下となります。
Creating 3D models for use in the Windows Mixed Reality home

前提条件として、3Dモデルの作成ツールとglTFのエクスポータが必要です。
今回は Blender とそのアドオンである gltf-Blender-Exporter を用いて実施します。
環境構築手順は以下を参照してください。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com

早速、3Dランチャ用のモデルを作成します。Blender を起動し、サンプルのCubeを削除します。
f:id:bluebirdofoz:20171027074218j:plain

今回は 追加 -> メッシュ -> UV球 を選択し、球体の3Dモデルを作成します。
f:id:bluebirdofoz:20171027074227j:plain

3Dランチャとして表示できる3Dモデルには様々な制限事項があります。
これらを解消するため、トランスフォームとマテリアルの設定を行う必要があります。

まずはトランスフォーム情報を設定します。
Sphere を選択した状態でオブジェクトタブを選択し、トランスフォームを以下の通り編集します。
位置 X:0.0 Y:1.01 Z:0.0
回転 X:-90 Y:0 Z:0
f:id:bluebirdofoz:20171027074235j:plain

次にマテリアルを設定します。
Sphere を選択した状態でマテリアルタブを選択し、「新規」ボタンをクリックします。
f:id:bluebirdofoz:20171027074243j:plain

マテリアルが生成されたらディフューズの色項目を選択し、色を設定します。
f:id:bluebirdofoz:20171027074259j:plain

以上の設定を行ったら ファイル -> エクスポート -> glTF 2.0(.glb) でファイル出力します。
今回は Test.glb というファイル名で出力しました。ファイル名は任意です。
f:id:bluebirdofoz:20171027074314j:plain
このとき、(.gltf) ではなく (.glb) ファイルで出力する必要があるので注意です。

次に3Dランチャを設定するアプリが必要です。
サンプルとして MixedRealityToolKit の基本設定を行っただけのアプリを作成します。
f:id:bluebirdofoz:20171027074322j:plain

ビルドを行い、生成された VisualStudio プロジェクトを開きます。
プロジェクトの Assets ディレクトリに作成したモデルをコピーします。
f:id:bluebirdofoz:20171027074416j:plain

コピーした Test.glb を選択してプロパティ画面を開きます。
ビルドアクションを「コンテンツ」に変更します。
f:id:bluebirdofoz:20171027074424j:plain

追加した3Dモデルをランチャとして利用するため、マニュフェストファイルを編集します。
Package.appxmainfest を右クリックで コードの表示 を選択し、テキスト表示します。
f:id:bluebirdofoz:20171027074434j:plain

以下の2箇所について編集します。
まず、2行目の Package の設定項目に以下の設定を追加します。
xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
・変更前

<Package xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" 
         xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
         xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2"
         IgnorableNamespaces="uap uap2 mp" xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">

・変更後

<Package xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" 
         xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
         xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2"
         xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
         IgnorableNamespaces="uap uap2 uap5 mp" xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"

次の19行目の uap:DefaultTile 設定のタグに以下の設定項目を差し込みます。
uap5:MixedRealityModel Path="Assets\Test.glb"
(ファイル名とファイルパスは自身が設定したものを記述します)
・変更前

<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>

・変更後

<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png">
  <uap5:MixedRealityModel Path="Assets\Test.glb" />
</uap:DefaultTile>

以上で設定は完了です。後はアプリをWindowsMRを起動するPCにインストールします。
f:id:bluebirdofoz:20171027074442j:plain

WindowsMR を起動してメニューからインストールしたアプリを選択します。
f:id:bluebirdofoz:20171027074452j:plain

アプリのランチャとして、設定した3Dモデルが表示されていれば成功です。
f:id:bluebirdofoz:20171027074502j:plain

Home で利用できる3Dランチャのモデルには幾つかの制限事項があります。別途、調査を行いました。
bluebirdofoz.hatenablog.com