MRが楽しい

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

UnityでのHoloLens(WindowsMR)プロジェクトの作成手順(MRTK 2017.4.0.0版)

本日は HoloLens の技術調査枠です。
UnityでのHoloLens(WindowsMR)プロジェクトの作成手順の基本について改めてまとめます。

Unityプロジェクトの新規作成からUWPアプリをビルドするまでの手順になります。

開発環境の準備

開発環境として Unity のインストールが必要になります。
以下の記事を参考にインストールを実施してください。
bluebirdofoz.hatenablog.com

2018/08/01現在、Unity の最新バージョンは 2018.2.1f1 です。
ただし MRTK 2017.4.0.0 は Unity 2017 の対応バージョンです。
このため、以下を参考に Unity 2017.4.3f1 を利用するのを推奨します。
bluebirdofoz.hatenablog.com

Mixed Reality Toolkit(MRTK)の取得

Mixed Reality Toolkit(MRTK) は Unity 上で Mixed Reality プロジェクトを作成するためのコンポーネントがまとめられたオープンソースプロジェクトです。
以下のリリースページから最新の HoloToolkit-Unity-XXXX.X.X.X.unitypackage を取得します。
github.com

2018/08/01現在、MRTK の最新バージョンは 2017.4.0.0 です。
HoloToolkit-Unity-Examples-XXXX.X.X.X.unitypackage はサンプルシーン集なので本記事では利用しません。

Unity プロジェクトの作成と MRTK のインポート

Unity で新規プロジェクトを作成します。
Unity を起動し、New タブから新規プロジェクトの設定を行います。
・Project name:任意のプロジェクト名
・Templaete:3D
・Location:任意のディレクト
設定を完了したら「Create project」をクリックしてプロジェクトを作成します。
f:id:bluebirdofoz:20180801063742j:plain

プロジェクトが作成されたら Unity を起動したままの状態で、先ほど取得した HoloToolkit-Unity-2017.4.0.0.unitypackage を実行します。
すると「Import Unity Package」ダイアログが表示されます。
「Import」ボタンをクリックして MRTK をプロジェクトにインポートします。
f:id:bluebirdofoz:20180801063751j:plain

Asset に古い API が利用されている場合、以下のようなダイアログが表示されます。
「I Made a Backup. Go Ahead」 を選択すれば、Unity が自動的に新しい API に書き換えてくれます。
特に理由がない限り、「I Made a Backup. Go Ahead」を選択してよいです。
f:id:bluebirdofoz:20180801063758j:plain

HoloLens(WindowsMR) プロジェクトの基本設定

MRTK では HoloLens(WindowsMR) 向けプロジェクトのシーン/ビルド設定の自動設定が行えます。

最初にビルド設定を実施します。
MRTK のインポートが完了していれば、メニューに「Mixed Reality Toolkit」の項目が追加されています。
Mixed Reality Toolkit -> Apply Mixed Reality Project Settings を選択します。
f:id:bluebirdofoz:20180801063807j:plain

「Apply Mixed Reality Project Settings」ダイアログが表示されます。
デフォルト設定のまま「Apply」を実行します。
f:id:bluebirdofoz:20180801063818j:plain

次にシーン設定を実施します。
Mixed Reality Toolkit -> Apply Mixed Reality Project Settings を選択します。
f:id:bluebirdofoz:20180801063831j:plain

「Apply Mixed Reality Scene Settings」ダイアログが表示されます。
デフォルト設定のまま「Apply」を実行します。
f:id:bluebirdofoz:20180801063841j:plain

以上で HoloLens(WindowsMR) プロジェクトの基本設定は完了です。
f:id:bluebirdofoz:20180801063851j:plain

シーンの作り込み

アプリの機能を実現するためのシーンの作り込みを行います。
今回はアプリ実行時に、動作していることが分かるように X:0,Y:0,Z:2 の位置に Sphere オブジェクトを配置しました。
f:id:bluebirdofoz:20180801063902j:plain

プロジェクトのビルド

メニューから File -> Build Settings を開きます。
f:id:bluebirdofoz:20180801063910j:plain

「Build Settings」ダイアログが開くので「Build」ボタンをクリックします。
(このとき、「Build Settings」にエラーメッセージが表示される場合は後述の「Unity 2018 以降の注意点」を確認下さい)
f:id:bluebirdofoz:20180801063919j:plain

出力フォルダの指定を要求されるので、ディレクトリを作成して「フォルダーの選択」をクリックします。
f:id:bluebirdofoz:20180801063927j:plain

ビルドが完了すると、指定ディレクトリに sln ファイルが生成されます。
以上で Unity でのビルド作業は完了です。
f:id:bluebirdofoz:20180801063936j:plain

Unity 2018 以降を利用する際の注意点

Unity 2018 以降の環境で「Build Settings」を開くと、以下のエラーメッセージが表示されることがあります。
「Currently selected scripting backend(.NET) is not installed.」
f:id:bluebirdofoz:20180801063946j:plain

これは MRTK 2017.4.0.0 はビルド設定で Scripting Backend に .NET が設定されることが原因です。
Unity 2018 ではインストール時に「UWP Build Support(.NET)」がデフォルトではチェックされず、インストールされません。
f:id:bluebirdofoz:20180801063955j:plain

解決方法として、「UWP Build Support(.NET)」にチェックを入れて Unity を再インストールするのも手ですが。
将来的に Scripting Backend は IL2CPP に移行するらしいので、ビルド設定の方を IL2CPP にするのが良いでしょう。
メニューから Edit -> Project Settings -> Player を選択します。
f:id:bluebirdofoz:20180801064003j:plain

Inspector タブに「PlayerSettings」が表示されます。
「Other Settings」パネルにある「Scriping Backend」を「.NET」から「IL2CPP」に変更します。
f:id:bluebirdofoz:20180801064012j:plain

これで「Build Settings」を開くと、エラーが解消されています。
f:id:bluebirdofoz:20180801064020j:plain

HoloLens RS5 Insider Preview(日本語版) をインストールする

本日は HoloLens の調査枠です。
HoloLens RS5 Insider Preview(日本語版) をインストールする手順をまとめます。

以下のページにて、HoloLens RS5 Insider Preview の日本語版が公開されました。
docs.microsoft.com

HoloLens にインストール可能な日本語版 OS はこれが初めてになります。試してみます。

※ 注意
 あくまでプレビュー版のバージョンです。インストールは自己責任となります。
 クリーンインストールが必要なため、HoloLens 内の全てのコンテンツやアプリなどが消去されます。
 OS を元に戻したい場合は Windows Device Recovery Tool でリカバリ可能です。
 ただし当然ながら、一度消したコンテンツやアプリは復帰できません。

では、手順に従って HoloLens RS5 Insider Preview をインストールしてみます。

パッケージの取得

参考ページのダウンロードリンクから日本語版パッケージを取得します。
docs.microsoft.com
f:id:bluebirdofoz:20180731010250j:plain

ダウンロードしたファイルを開くと、以下のファイルが入っています。
f:id:bluebirdofoz:20180731010300j:plain
・rs5_release.retail.ja-JP.10.0.17720.1000.ffu
  HoloLens RS5 Insider Preview 日本語版のイメージ

アカウントの準備(Windows Insider Programの登録)

Windows 10 Insider Preview を利用するには Windows Insider Program に登録した Microsoft アカウントが必要です。
以下のページから Microsoft アカウントWindows Insider Program に登録します。
insider.windows.com
f:id:bluebirdofoz:20180731010337j:plain

参加条件を確認した上で、同意すれば登録可能です。
f:id:bluebirdofoz:20180731010345j:plain

HoloLens側の準備(Windows Insider Programの設定)

HoloLens を起動し、Insider Preview の OS をインストールする承認設定を行います。
Settings アプリを起動して Update & Security をタップします。
f:id:bluebirdofoz:20180731010501j:plain

Windows Insider Program タブを開き、Get Insider Preview builds 欄の Get started をタップします。
f:id:bluebirdofoz:20180731010530j:plain

アカウントの選択画面が始まるので「Link an account」をタップします。
f:id:bluebirdofoz:20180731010543j:plain

サインイン中のアカウントまたは、その他アカウントの選択画面が表示されますので、Windows Insider Program に登録済みのアカウントを選択します。
f:id:bluebirdofoz:20180731010551j:plain

受信するコンテンツの設定を行います。デフォルトの「Active development of Windows」で問題ありません。
「Confirm」をタップします。
f:id:bluebirdofoz:20180731010603j:plain

次にリングのペース設定を行います。デフォルトの「Slow」で問題ありません。
「Confirm」をタップします。
f:id:bluebirdofoz:20180731010614j:plain

これらの設定はインストール後の OS アップデートの頻度や取得ブランチに影響します。
設定毎にどういった影響があるかは以下が詳しくまとめられています。
・A comprehensive view of the current Insider Program options
 https://insidewindows.net/2017/08/03/a-comprehensive-view-of-the-current-insider-program-options/

Preview 版を利用する際の注意事項が表示されます。「Confirm」をタップします。
f:id:bluebirdofoz:20180731010659j:plain

最後に、変更を反映するための再起動を行います。「Restart Now」をタップします。
f:id:bluebirdofoz:20180731010707j:plain

再起動後、Windows Insider Program を確認して、「You're all set to get Insider Preview builds」が表示されていれば設定完了です。
f:id:bluebirdofoz:20180731010726j:plain

リカバリーツールのインストール

以下のページから Windows Device Recovery Tool (WDRT) を取得します。
Windows Device Recovery Tool: FAQ
 https://support.microsoft.com/ja-jp/help/12379/windows-10-mobile-device-recovery-tool-faq
f:id:bluebirdofoz:20180731010821j:plain

ダウンロードした WindowsDeviceRecoveryToolInstaller.exe を実行します。
Windows Device Recovery Tool のインストールが開始しますので「インストール」をクリックします。
f:id:bluebirdofoz:20180731010847j:plain

展開が完了したら「次へ」をクリックします。
f:id:bluebirdofoz:20180731010857j:plain

使用許諾に同意し、「次へ」をクリックします。
f:id:bluebirdofoz:20180731010907j:plain

最後に「インストール」をクリックして、Windows Device Recovery Tool のインストールは完了です。
f:id:bluebirdofoz:20180731010914j:plain

HoloLens RS5 Insider Preview イメージの焼き込み

インストールが完了したら、Windows Device Recovery Tool を起動します。
f:id:bluebirdofoz:20180731010925j:plain

HoloLens を USB で接続し、認識されると HoloLens の選択肢が表示されるので、それを選択します。
f:id:bluebirdofoz:20180731010935j:plain

情報の取得が完了すると、利用可能な OS のシステムバージョンが表示されます。
2018/07/30現在、デフォルトでは OS Build : 10.0.17134.80 の OS が選択されています。
Manual Package selection をクリックします。
f:id:bluebirdofoz:20180731010948j:plain

先ほどダウンロードした rs5_release.retail.ja-JP.10.0.17720.1000.ffu のファイルを選択します。
f:id:bluebirdofoz:20180731010958j:plain

すると、10.0.17720.1000 のイメージが Local Package として指定されます。
これを確認したら、「ソフトウェアをインストール」を押してOSのインストールを始めます。
f:id:bluebirdofoz:20180731011009j:plain

HoloLens が初期化される旨の警告メッセージが表示されます。「続行」をクリックします。
f:id:bluebirdofoz:20180731011033j:plain

インストールが実行されます。十分ほどで完了します。
f:id:bluebirdofoz:20180731011045j:plain

完了後、HoloLens のバージョンを確認し、10.0.17720.1000 になっていれば成功です。
f:id:bluebirdofoz:20180731011058j:plain

HoloLens を起動してセットアップを実行すれば、HoloLens RS5 Insider Preview の日本語版が利用できます。
設定のバージョン情報を開けば、OS ビルドのバージョンが確認できます。日本語化されていることも確認できました。
f:id:bluebirdofoz:20180731011111j:plain

尚、インストール実行時に以下のようなエラーが表示される場合は Windows Insider Program の設定が反映されていない可能性があります。
f:id:bluebirdofoz:20180731011131j:plain

アイコンを更新しました

アイコンのデザインを少々修正してブログアイコンに再設定しました。
f:id:bluebirdofoz:20180730051730p:plain
オフの勉強会での目印に使っているゴーグル(稀に忘れますが)を追加しています。

……が。
何故かブログトップのアイコンのみ更新されません。
ゴーグルを付けていないホロモンが表示されています。
f:id:bluebirdofoz:20180730051741j:plain

個別ページなどに遷移すると、こちらは何故か更新されています。
f:id:bluebirdofoz:20180730051750j:plain

以下に同じ事象の報告がありました。少し時間を置いてみます。
dysdis.hatenablog.com

HoloLens RS5(Build 17720) のプロジェクション機能を試す

本日は HoloLens RS5 の調査枠です。
HoloLens RS5(Build 17720) のプロジェクション機能の利用方法をまとめます。

先日、HoloLens RS5(Build 17720) にアップデートを行いました。
bluebirdofoz.hatenablog.com

このアップデートから、HoloLens の基本機能にもプロジェクション機能が追加されました。
プロジェクション機能は自身の表示画面を、別の WindowsPC の画面に投影する機能です。
メニュー画面の左下に「Connect」ボタンが追加されており、これがプロジェクションの実行ボタンになります。
f:id:bluebirdofoz:20180729044008j:plain

事前準備として、投影先の WindowsPC にプロジェクションの許可設定を行っておく必要があります。
まずは、投影先の WindowsPC の設定を確認します。
ウィンドウズメニューの「設定」を開き、一覧の中から「システム」を選択します。
f:id:bluebirdofoz:20180729044018j:plain

「このPCへのプロジェクション」タブを開きます。
投影許可の設定を「どこでも使える」または「セキュリティで保護されたネットワーク上のどこでも利用可能」に設定します。
「常にオフ」の場合、プロジェクションは利用できません。(デバイスによっては利用できない場合があります)
f:id:bluebirdofoz:20180729044025j:plain

投影先の WindowsPC の設定が完了したら、HoloLens 側の「Connect」ボタンをタップします。
CONNECT パネルが表示され、投影先の WindowsPC が検出されます。
f:id:bluebirdofoz:20180729044032j:plain

投影先の WindowsPC をタップすると、PC 側で接続確認の通知が表示されるので「はい」を選択します。
f:id:bluebirdofoz:20180729044040j:plain

これで HoloLens の映像が WindowsPC に投影されます。
DevicePortal と比べると、遅延が少ないように感じます。
f:id:bluebirdofoz:20180729044046j:plain

プロジェクションを終了するには「Connect」ボタンの位置に「Disconnect」ボタンが表示されているので、これをタップします。
f:id:bluebirdofoz:20180729044053j:plain

追記
投影先の PC でプロジェクションを利用するにはmiracast対応のデバイスが必要です。
以下の要件によると「Miracast を使用するには、Windows Display Driver Model (WDDM) 1.3 をサポートするディスプレイ アダプターと、Wi-Fi Direct をサポートする Wi-Fi アダプターが必要です。」とのことです。
www.microsoft.com

はてなブログとgoogle Analyticsの連携方法をまとめる

本日ははてなブログの調査枠です。
Google Analyticsを使ってはてなブログのアクセス数を確認する方法をまとめます。

はてなブログの解説ツールであった「はてなカウンター」は2017年8月にサービスを終了しました。
これ以降、はてなブログで詳細なアクセス解析を行いたい場合は、外部の解析ツールを連携する必要があります。
はてなカウンター サービス終了のお知らせ
 http://counter.hatena.ne.jp/

はてなブログでは以下の解析ツールが連携可能です。
Google Analytics
Google Search Console
・Bing ウェブマスターツール
今回はこの内の「Google Analytics」を使って解析ツールを設定しました。
f:id:bluebirdofoz:20180728230708j:plain

Google Analyticsを利用するには、前提条件として、Gmailアカウントが必要です。
以下のページに所有しているGmailアカウントでログインします。
Google Analytics
https://www.google.com/analytics/web/?hl=ja

すると以下のようなGoogle Analyticsの開始ページが表示されます。
「お申し込み」ボタンをクリックします。
f:id:bluebirdofoz:20180728230007j:plain

アカウントの作成画面が表示されます。
アクセス解析を実施するブログの情報を入力します。
f:id:bluebirdofoz:20180728230016j:plain

スクロール下部にあるデータ共有のチェック項目は好みでチェックしてください。
全てチェックしなくても機能的には違いはないようです。
設定を完了したら「トラッキングIDを取得」ボタンをクリックします。
f:id:bluebirdofoz:20180728230030j:plain

利用規約の確認ダイアログが表示されます。
確認の上、チェックを行い、「同意する」ボタンをクリックします。
f:id:bluebirdofoz:20180728230042j:plain

するとアカウントが作成され、トラッキングコード画面が表示されます。
表示されている「トラッキングID」をコピーします。
f:id:bluebirdofoz:20180728230051j:plain

次に取得したトラッキングIDをはてなブログに設定します。
はてなブログの設定画面に移動し、「設定」項目の「詳細設定」タブを開きます。
f:id:bluebirdofoz:20180728230527j:plain

「詳細設定」タブページをスクロールしていくと中頃辺りに「解析ツール」の設定項目があります。
Google Analytics 埋め込み」のテキスト欄に先ほどコピーした「トラッキングID」を設定します。
f:id:bluebirdofoz:20180728230536j:plain

設定を行ったら最下部までスクロールし、「変更する」ボタンをクリックして設定完了です。
Google Analyticsの画面でホーム画面を開き、解析が正常に動作しているか確認します。
f:id:bluebirdofoz:20180728230630j:plain

HoloLens RS5(Build 17720) の MixedRealityViewer を試す

本日は HoloLens の調査枠です。
先日、HoloLens RS5(Build 17720) へのアップデートを行いました。
bluebirdofoz.hatenablog.com

MixedRealityViewer

このアップデートから、HoloLensの基本アプリにも「MixedRealityViewer」が追加されました。
f:id:bluebirdofoz:20180727075739j:plain

今までは HoloLens の Home 画面には「Holograms」アプリに登録された3Dモデルしか配置できませんでした。
しかし、「MixedRealityViewer」を使えば、Remix3D にアップロードされた3Dモデルや HoloLens のローカルフォルダに配置した3Dモデルを Home 画面に開くことができるようになりました。
f:id:bluebirdofoz:20180727075751j:plain

表示可能なデータ形式

今回は HoloLens のローカルフォルダに置いた3Dモデルについて、どのようなデータ形式の3Dデータが MixedRealityViewer から表示可能か確認してみました。
MixedRealityViewer は以下のページによると、FBX、STL、OBJ、GLB、GLTF、PLY、3MF の3Dファイルをサポートしています。
www.microsoft.com

早速、BlenderSphere オブジェクトを作成し、各ファイル形式で3Dデータを出力してみました。
データを取り違えないよう、各データには異なる色を着色していきます。
f:id:bluebirdofoz:20180727075856j:plain

出力したファイルを DevicePortal で User Folders/3D Objects 配下に配置しました。
3MF のみ、対応のアドオンを Blender にインストールしていなかったので除外しています。
f:id:bluebirdofoz:20180727075921j:plain

MixedRealityViewer の「FromFile」タグにある「Open」ボタンをタップすると、ローカルフォルダを開けます。
ここでファイルを配置したディレクトリを開けば、読み込み可能なファイルが一覧に表示されます。
f:id:bluebirdofoz:20180727075944j:plain

フォルダを開いた結果が以下になります。
FBX ファイルは一覧に表示されませんでした。PC 上の MixedRealityViewer では FBX ファイルは開けるのですが……。
HoloLens の MixedRealityViewer では FBX ファイルはサポートされていないのかもしれません。
f:id:bluebirdofoz:20180727080038j:plain

各データの表示結果

選択可能なファイルを片っ端から選択して確認しました。
・GLB形式
f:id:bluebirdofoz:20180727080103j:plain
・GLTF形式
f:id:bluebirdofoz:20180727080112j:plain
・OBJ形式
f:id:bluebirdofoz:20180727080121j:plain
・PLY形式
f:id:bluebirdofoz:20180727080133j:plain
STL形式
f:id:bluebirdofoz:20180727080145j:plain

結果、GLB、OBJ については色を含めて表示に問題なし。
GLTF 形式は読み込みが失敗、原因は不明。
PLY、STL はメッシュは読み込めるが色は表示されず。

PLY、STL は頂点カラーで着色済みです。
PC 上の MixedRealityViewer でも灰色で表示されるので、そもそも MixedRealityViewer は頂点カラーでのレンダリングを行わないのかもしれません。

アニメーション設定モデルの表示

少し気になったので、3Dランチャ作成方法の調査で作成した「注視時のモーフアニメーションを設定した GLB ファイル」も投入してみました。
f:id:bluebirdofoz:20180727080222j:plain

開いてみると……。
f:id:bluebirdofoz:20180727080236g:plain
注視時のみ、アニメーションしました。

表示モデルのポリゴン上限

※ 2018/7/27 10:00修正
すいません。単位一桁間違えてました。1万が区切りです。3Dランチャと同じです(汗

更に気になったので約9千三角ポリゴンのデータと、1万1千三角ポリゴンのデータを投入しました。
f:id:bluebirdofoz:20180727080305j:plain

・9千三角ポリゴンの GLB ファイル
f:id:bluebirdofoz:20180727080355j:plain
・1万1千三角ポリゴンの GLB ファイル
f:id:bluebirdofoz:20180727080407j:plain

やはりというか、1万超えのデータは表示できませんでした。これは3Dランチャを作成していた際の制限事項と全く同じです。
読み込み可能なデータ形式が増えているものの、恐らく表示には、3DSecondaryTile の機能をそのまま利用しているものと思われます。

HoloLensがWindows Device Recovery Toolに認識されない場合のリカバリ方法について

本日は HoloLens の調査枠です。
前回のRS5アップデート手順で実施した「HoloLensが認識されない場合のリカバリ方法」について
後から情報を探したくなったときのため、別記事としてまとめます。
bluebirdofoz.hatenablog.com

OS がクラッシュした場合など、HoloLens が正常に起動しなくなった場合、HoloLens を PC に USB 接続しても機器を検出できなくなることがあります。
この場合、HoloLens を Windows Device Recovery Tool でリカバリしようとしても、ツールで HoloLens を検出できません。
f:id:bluebirdofoz:20180726085820j:plain

この際の解決策として、HoloLens を回復モードで起動する方法があります。
一旦、HoloLens の電源をしっかり落とし、電源ボタンと音量(+)ボタンを同時押ししながら HoloLens を起動します。
こうすると、HoloLens が回復モードで起動され、Windows Device Recovery Tool で以下のように機器が検出されるようになります。
f:id:bluebirdofoz:20180726085945j:plain

回復モードでの起動のため、情報の読み取りは完了しません。
機器が検出されたら「電話が検出されませんでした」ボタンをクリックします。
f:id:bluebirdofoz:20180726085858j:plain

すると以下のような機器の特定画面に遷移するので、「HoloLens」を選択します。
f:id:bluebirdofoz:20180726085909j:plain

インストール画面に移行するので、「ソフトウェアをインストール」を実行すれば、HoloLens がリカバリされます。
f:id:bluebirdofoz:20180726085956j:plain