MRが楽しい

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

HoloLens上で表示されるアプリの名前について(ピン止めされたアプリ一覧)

本日は HoloLens の調査枠です。
前回記事の、ピン止めされたアプリ一覧に名称が表示されない問題の続きです。
bluebirdofoz.hatenablog.com

twitter上で情報を求めたところ、即回答を頂けました。littlewing さん有難うございます。

試しに実施してみました。
メニューから Edit -> Project Settings -> Player で PlayerSettings を開きます。
Icon のパネルを開き、「Show name on」のチェックボックスにチェックを入れます。
f:id:bluebirdofoz:20180706065530j:plain

これでアプリを再ビルドし、HoloLens 上でピン止めを行ってみると……。
f:id:bluebirdofoz:20180706065545j:plain
アイコン上に、テキストで名称が表示されました。成功です。

詰めて確認したところ、「Show name on」の「Medium Tile」のチェックが HoloLens のピン止めされたアプリ一覧の Tile に該当するようです。
この項目をチェックしているか否かで表示の有無が切り替わります。
f:id:bluebirdofoz:20180706065604j:plain

本項目をチェックしていると、マニュフェストファイルの uap:DefaultTile タグに以下の uap:ShowNameOnTiles の記述が追加されます。

<uap:DefaultTile ShortName="IconName" Wide310x150Logo="Assets\Wide310x150Logo.png">
  <uap:ShowNameOnTiles>
    <uap:ShowOn Tile="square150x150Logo" />
  </uap:ShowNameOnTiles>
</uap:DefaultTile>

f:id:bluebirdofoz:20180706065621j:plain

ただし、RS4より前のときと異なり、表示される名称は ShortName ではなく ProductName になります。
f:id:bluebirdofoz:20180706065651j:plain
この辺りは RS4 の時点で動きが変わったのかもしれません。

HoloLens上で表示されるアプリの名前について

本日は HoloLens の調査枠です。
HoloLens上で表示されるアプリの名前について気になった点をまとめます。

HoloLensでは全てのアプリ一覧に表示されるアプリ名と、ピン止めされたアプリ一覧に表示されるアプリ名が異なる場合があります。
・全てのアプリ一覧
f:id:bluebirdofoz:20180705085634j:plain

・ピン止めされたアプリ一覧
f:id:bluebirdofoz:20180705085649j:plain

これはそれぞれ参照する名称が異なるためで、全てのアプリ一覧では ProductName が、ピン止めされたアプリ一覧では ShortName が参照されます。
・ProductName
f:id:bluebirdofoz:20180705085702j:plain

・ShortName
f:id:bluebirdofoz:20180705085713j:plain

これらの設定は最終的にマニュフェストファイルに記載されています。
f:id:bluebirdofoz:20180705085721j:plain

……と、以前はそのはずだったのですが。
本日ふと気づくと、ピン止めされたアプリ一覧の方に表示されるはずの名称が表示されていませんでした。
f:id:bluebirdofoz:20180705085733j:plain

その他、幾つかのアプリも名称が表示されません。一方で元からインストールされているアプリは名称が見えます。
原因はよく分からず。RS4 に変わった辺りから動きが変わっていたのでしょうか?それとも私の環境問題?
解決方法は見つかりませんでした。原因と対処方法が判明したら再度まとめます。

Blenderでカメラ移動時にズームができなくなる問題の対処方法

本日は Blender の技術調査枠です。
Blenderでカメラ移動時にズームができなくなる問題の対処方法についてまとめます。

問題事象

色々とモデリングを行った後、マウススクロールでズームを行おうとすると一定以上のズームができなくなることがあります。
例えば、以下の状態はマウススクロールでズームを行っても、これ以上中央のCubeオブジェクトに寄れなくなっています。
f:id:bluebirdofoz:20180704025031j:plain

事象の原因

原因から説明すると、これはモデリングを行ううちにカメラ視点の原点がズレてしまっていることが原因です。
事象を理解するために新規プロジェクトを起動します。
f:id:bluebirdofoz:20180704025110j:plain

このまま、Shift+スクロールキー押下でカメラを横方向にスライドさせます。
f:id:bluebirdofoz:20180704025119j:plain

カメラの位置はそのまま、スクロールキー押下の回転で、視点をCubeオブジェクトの方へ向けます。
f:id:bluebirdofoz:20180704025128j:plain

そのまま、マウススクロールでズームを行うと、一定以上Cubeオブジェクトに寄ることができなくなります。
f:id:bluebirdofoz:20180704025136j:plain

これだと原因が分かりやすいと思いますが、これ以上ズームができないのはCubeオブジェクトの手前にカメラ視点の原点が存在するためです。
モデリングでカメラを動かすうち、このようにカメラ視点の原点が移動していることがあります。

対処方法その1(オート深度)

カメラ視点の原点を常に意識する事で対処は可能ですが、Blenderの設定でも対処は可能です。
一つは「オート深度」の機能を有効化する事です。
メニューから ファイル→ユーザ設定 でユーザ設定ウィンドウを開き、インタフェースタブを表示します。
f:id:bluebirdofoz:20180704025234j:plain

「ユーザ深度」にチェックを入れ、「ユーザー設定の保存」を行います。
f:id:bluebirdofoz:20180704025244j:plain

この設定を行うことで、カメラ視点の原点を超えてズームが行えます。
f:id:bluebirdofoz:20180704025253j:plain

より正確に言うと、原点を超えてズームを行おうとすると、カメラ視点の原点がズーム方向に移動していきます。
このため、原点を超えたズーム後、カメラの回転を行うと、ズームした位置を中心にカメラが回転します。
f:id:bluebirdofoz:20180704025308j:plain

対処方法その2(選択範囲を中心に回転)

また、別の対処方法として「選択範囲を中心に回転」の機能を有効化する手段もあります。
メニューから ファイル→ユーザ設定 でユーザ設定ウィンドウを開き、インタフェースタブを表示します。
「選択範囲を中心に回転」にチェックを入れ、「ユーザー設定の保存」を行います。
f:id:bluebirdofoz:20180704025324j:plain

この機能を有効化しておくと、カメラは必ず選択中のオブジェクトを原点として回転します。
例えば、「選択範囲を中心に回転」を有効にし、Cubeオブジェクトを選択した状態で、カメラを横にスライドさせます。
f:id:bluebirdofoz:20180704025333j:plain

この状態でカメラを回転すると、以下のように、スライドさせた位置ではなく、Cubeオブジェクトを原点とする形でカメラ視点が回転します。
f:id:bluebirdofoz:20180704025348j:plain

こちらの機能だと、カメラの原点位置を見失わずに済みます。
ただし、カメラ移動の自由度は下がってしまうかもしれません。上手く使い分けましょう。

Blenderでポリゴンを折り紙のように折りたたむ

本日は Blender の技術調査枠です。
Blenderでポリゴンを折り紙のように折りたたむ方法について調査します。

例えば、以下のような平面メッシュがあるとします。
f:id:bluebirdofoz:20180703084658j:plain

これを以下のように辺を折り目とした折り紙のように折りたたむにはどうすればよいかです。
f:id:bluebirdofoz:20180703084707j:plain

ポリゴンは中空に浮き、座標軸も傾いており、更に中点も折り目の位置にないため、回転を行う適切な座標軸がありません。
f:id:bluebirdofoz:20180703084723j:plain

対処方法として「トランスフォーム座標系」の設定機能を利用します。
まず、以下の通り、回転軸の基本となる「辺」のみを選択し、ツールシェルフの「トランスフォーム座標系」を開きます。
「+」ボタンをクリックし、座標系を追加します。
f:id:bluebirdofoz:20180703084736j:plain

するとメニューの「座標系」に新たに「辺」という項目が追加されます。
f:id:bluebirdofoz:20180703084744j:plain

これを選択すると、先ほど選択した辺を基準にした座標系が表示されます。
f:id:bluebirdofoz:20180703084758j:plain

座標系が変更されたら、折り曲げたい面の頂点を選択します。
このとき、折り目となる辺の頂点を最後に選択し、アクティブ状態にしておきます。
f:id:bluebirdofoz:20180703084806j:plain

メニューの「ピポットポイント」から「アクティブ要素」を選択します。
f:id:bluebirdofoz:20180703084814j:plain

すると、座標軸の原点位置がアクティブな頂点の位置になります。
f:id:bluebirdofoz:20180703084822j:plain

後はこの例だと、指定軸のY軸回転(Rキー+Yキー+Yキー)を行えば、折り目で折りたたむようにポリゴンを回転できます。
絶対軸のY軸回転(Rキー+Yキー)ではグローバル軸が基準になってしまうので、必ず指定軸で回転するようにします。
f:id:bluebirdofoz:20180703084707j:plain

折り目の辺を変える場合は、辺ごとに「トランスフォーム座標系」を同じように追加していきます。
f:id:bluebirdofoz:20180703084831j:plain

MicrosoftLayoutPreviewを試してみる(モデルのインポート編)

本日は HoloLens の技術調査枠です。
HoloLens向けのビジネスアプリケーションのPreview版として以下の二つのアプリが公開されています。
Microsoft Layout
Microsoft Remote Assist

今回はこのうちの「Microsoft Layout」について利用してみます。
利用方法について公式ページの説明があります。こちらの説明に沿って実施してみます。
Microsoft レイアウトのセットアップと使用
 https://support.microsoft.com/ja-jp/help/4294437/windows-10-set-up-and-use-microsoft-layout

アプリのインストール

MicrosoftLayout は、HoloLens または WindowsMR 側のビューアアプリと、PC 側のインポートアプリがあります。
今回はビューアアプリは HoloLens のものを試します。
HoloLens 上で MicrosoftStore を開き、「Microsoft Layout」で検索をかけると「MicrosoftLayout(Preview)」が見つかるので、インストールを実施します。
f:id:bluebirdofoz:20180702050004j:plain

次にPC側のインポートツールを用意します。
PC 上で MicrosoftStore を開き、「Microsoft Layout」で検索をかけると「Import Tool For Microsoft Layout(Preview)」が見つかるので、インストールを実施します。
f:id:bluebirdofoz:20180702050031j:plain

PC 側でも「MicrosoftLayout(Preview)」が見つかります。こちらは WindowsMR 側のビューアアプリです。
WindowsMR でビューアアプリを利用する場合はこちらをインストールします。
f:id:bluebirdofoz:20180702050042j:plain

モデルの変換

PC 上でインストールした「Import Tool For Microsoft Layout(Preview)」を起動します。
f:id:bluebirdofoz:20180702050051j:plain

Models タブを開き、Add Models ボタンをクリックします。
3Dオブジェクトディレクトリ配下に、誂え向きの3Dデータがあったのでこれを選択します。
f:id:bluebirdofoz:20180702050103j:plain

インポート用にモデルの変換作業を行う旨のダイアログが表示されるので「Got it」をクリックします。
f:id:bluebirdofoz:20180702050119j:plain

変換が完了すると、以下のようにモデルが表示されます。モデルに寄りますが、変換には数分かかります。
また、変換はクラウド上で行われるため、インターネット接続が必要です。
f:id:bluebirdofoz:20180702050127j:plain

モデルのインポート

HoloLens を PC にUSB接続します。
すると「Import Tool For Microsoft Layout(Preview)」の画面に「HoloLens」が認識されます。
f:id:bluebirdofoz:20180702050136j:plain

送信したいモデルを選択し、画面右上で「HoloLens」を指定した状態で「Send」ボタンをクリックします。
これで、HoloLens にモデルがインポートされます。
f:id:bluebirdofoz:20180702050146j:plain

以上でモデルのインポートは完了です。
HoloLens 側で「MicrosoftLayout(Preview)」を起動すると、モデルの一覧にインポートしたモデルが表示されました。
f:id:bluebirdofoz:20180702050153j:plain
因みに PC 側の「MicrosoftLayout(Preview)」には「Import Tool For Microsoft Layout(Preview)」で変換を行った時点で追加されています。

HoloLensアプリでホログラムのブレやRGB分離が起こる問題の対処

本日は HoloLens の技術調査枠です。
MRTK を利用して自作したアプリで、ホログラムがブレたり、RGB分離が発生するなど不安定な動作が発生することがあります。
私の環境では Unity 2017.4.3f1 、かつ、MRTK 2017.2.1.4 Patch Release を利用したプロジェクトでRGB分離が頻発する事象が再現しました。

以下に本類似事象の解決方法の報告があったので、試してみました。


github.com
issuetracker.unity3d.com

MRTK のシーン適用を実施した当該プロジェクトを開きます。
f:id:bluebirdofoz:20180701220817j:plain

InputManagerゲームオブジェクトにアタッチされている「StabilizationPlaneModifier」を無効化します。
f:id:bluebirdofoz:20180701220827j:plain
対処はこれで完了です。私の環境ではいまのところ、対処後にRGB分離の事象は再現していません。

StabilizationPlaneModifierは、安定化平面の設定を処理するスクリプトなので、無効化してもアプリの基本動作に影響は与えません。
StabilizationPlaneModifierが行っている動作を知りたい場合は、以下の記事を読んでみると良いです。
www.tattichan.work

HoloLensでアニメーションする3Dランチャを作成する その6

本日は HoloLens の技術調査枠です。
HoloLensでアニメーションする3Dランチャを作成する方法をまとめます。
前回記事の続きです。
bluebirdofoz.hatenablog.com

今回はモーフアニメーションの制限事項で気になる点があったので調査を行います。
以下の3Dランチャ制限事項にあるモーフターゲットの上限とは何を指しているかです。
 再生時間: 最大 20 分
 キーフレーム数:最大 36,000 フレーム
 モーフの頂点数:最大 8,192

各シェイプキーでの上限値なのか、全てのシェイプキーを加算した条件なのかを確認します。

モーフアニメーションの検証

基礎となるモデルとして 3,446 個の頂点と 6,888 個の三角ポリゴンを持つUV球を作成します。
f:id:bluebirdofoz:20180630050816j:plain

そしてX軸とZ軸にそれぞれ伸縮する2つのシェイプキーをアニメーションとして登録しました。
f:id:bluebirdofoz:20180630050824g:plain

3Dランチャに設定を行い、確認してみます。こちらは特に問題なく再生されました。
f:id:bluebirdofoz:20180630050837g:plain

次にもう一つ、Y軸に伸縮するシェイプキーを追加し、アニメーションとして登録します。
f:id:bluebirdofoz:20180630050852j:plain

これにより、シェイプキー一つ辺り 3,446 頂点なので、合計 10,338 の頂点変形のパターンがあることになります。
f:id:bluebirdofoz:20180630050900g:plain

3Dランチャに設定を行い、確認してみると……再生できました。
f:id:bluebirdofoz:20180630050919g:plain
微妙に変形具合が異なりますが、これはシェイプキー上限の問題というより、別の補正の問題のように見えます。
何にせよ。モーフの頂点数制限の 8,192 とは一つのシェイプキー辺りの上限を指すようです。
シェイプキーが幾つまで登録できるか上限があるのかは分かりませんが、ある程度、色々なアニメーションが作れそうです。