読者です 読者をやめる 読者になる 読者になる

HoloLensのDevcice PortalをMacで使用する

===
2017/3/9
Live PreviewをMacでも利用できたことを追記しました
===



HoloLensには、というよりWindows 10 搭載のデバイスには、Device Portalという機能があります。

詳細は下記で紹介した通り、デバイス詳細情報をWebブラウザ経由で見ることができます。

magicbullet.hatenablog.jp

HoloLensのDevice Portalを使うと、HoloLensのカメラ越しの映像(Live Preview)をブラウザで見ることができます。


ところで、MacでもDevice Portalを見ることはできます。

f:id:Takyu:20170209215351j:plain

しかし、

f:id:Takyu:20170209215734j:plain

のようにエラーメッセージが出てしまい、HoloLensのLive Previewを見ることはできません。

===

元々試した環境はSafariでした。@z_zabaglione さんのご指摘により、Chromeであれば動くことを確認しました。

当時試したときと同じ環境(Sierra 10.12.3)で、私のMacでもChromeを使って動かすことができました。

f:id:Takyu:20170309173854j:plain


参考のため、以下、Parallel Desktopを使った場合についても残しておきます。

===



ただし、仮想化ソフト「Parallel Desktop」を使うことで見ることができました。試した環境は下記の通りです。

[Mac]

Mac Book Pro Late 2016
・Sierra 10.12.3
・Parallel Desktop 12.1.3
・USB type-Cとtype-Aの変換ケーブルでHoloLensと接続

[HoloLens]

Windows Version 14393.693.x86 fre rs1_release 161220-1747


このようになります。

■ Live Preview

f:id:Takyu:20170209220842j:plain

■ 3D View

f:id:Takyu:20170209221045j:plain

補足

(1) 有線でのDevice Portal接続方法

ちなみに、Holographic AcademyチュートリアルではWifi経由のアプリインストールデバッグ方法しか書いてありませんが、HoloLensは有線でのアプリインストールやDevice Portal 接続が可能です。

有線でDevice Portalに接続する場合、USBケーブルでPCと接続します。

f:id:Takyu:20170209221404j:plain

すると、このようにMacWindowsのどちらに接続するかを聞かれるのでWindowsを選択します。


続けて、Webブラウザ(Edge以外は動作未確認)から

http://127.0.0.1:10080

にアクセスすればOKです。


(2) Device PortalでのLive Previewに失敗する

理由不明ですが、なぜかLive Previewの表示に失敗することがあります。

f:id:Takyu:20170209221818j:plain


これはPrallel Desktopだけでなく、Windows 10 NativeのPCでも起きることがあります。

USBケーブルの抜き差しか、Windows10PCの再起動などを繰り返すことで直ります。

終わりに

私は普段Macを使っているのですが、下記の情報の通り、HoloLensアプリ開発はMacで一通りできます。

qiita.com

Parallel Desktop上にVisual Studioを入れることで、このようにアプリインストールもできます。

f:id:Takyu:20170205172910j:plain

今回、Live Previewを支えることもわかったので、デモもMacでできそうですね。

Holographic Academyの解説「Hologram 210 - Gaze」

前回に引き続き、Holographic Academyについてです。

前回の「Hologram 101」は、HoloLensの基本機能を網羅したシンプルな例でした。

2XX以降は、それぞれの機能について発展的な使い方を紹介しています。

今回はGaze(見つめる)についてです。

続きを読む

Holographic Academyの解説「Hologram 101」

====
2017/2/4 追記

Chapter 6のSpatial Mappingでチュートリアル通りに動かなかった箇所が解決したので、動作確認の動画を追加しました。

====

Microsoftでは、「Holographic Academy」というDeveloper用のページがあります。

ここには、ゼロからHoloLens開発を始める人向けに、相当細かく手順が書かれています。


なお、HoloLensのアプリ開発を進めやすくするため、Microsoftからは必要なソースコード、Prefab、シェーダなどをまとめた、HoloToolkitも公開されています。

github.com

ただし、Holographic Academyでは機能別に解説しており、Unity標準のAPIがすぐにわかるように記述されているので、HoloToolKitを読む前にソースコード理解を兼ねてAcademyを試してみるのも良いと思いました。

そこで、今後HoloLensアプリ開発の勉強を兼ねて、まずはHolographic Academyの「Hologram 101」を解説してみました。

はじめに

HoloAcademyの最初の二つ、「Holograms 100: Getting started with Unity」と、「Holograms 101E: Introduction with Emulator」は、以前書いた内容とかぶるので省略します。

magicbullet.hatenablog.jp

また、Holo Academyに記載されている手順はかなり丁寧なので、手順そのままで理解に困らなかった場所については、今回のHologram101以降についても説明を簡略化する予定です。

さて、今回は「Holograms 101」の内容を解説します。

続きを読む

UnityでHoloLensのWorld Lockアプリを作る方法

前々回も紹介しましたが、HoloLensアプリには、

・Body Lock(常に目の前に表示される)

・World Lock(HoloLensが持つ三次元空間の中の絶対位置に配置される)

・排他的表現(いわゆるフルスクリーン)

の3種類があります。


公式ページでUnityによるアプリ開発方法を見ると、出来上がるアプリは「排他的表現」になります。

しかし、実際はUnityでもWorld Lockのアプリを作ることができたので、今回はその方法を解説します。


=========

目次

1. 準備

2. ビルド

3. 動作確認

4. 終わりに

=========

1. 準備

検証した環境

Unity 5.5.0 f3

Windows 10 Pro

Visual Studio Update 3


まずはUnity側で何か準備します。

私の場合は、1年ぶりにuGUI minimapのアセットのサンプルシーンを使ってみました。

uGUI minimapの概要や詳細については、下記をご確認ください。

magicbullet.hatenablog.jp


uGUI minimapをインポートしたら、サンプルシーンを開きます。

なお、この方法ではHoloToolKitは使いません。

f:id:Takyu:20170124210630p:plain

2. ビルド

UnityのBuild Settingsを開き、現在開いているシーンをビルド対象にして、下記のように設定します。

f:id:Takyu:20170124210448p:plain


Player Settingsは下記のようにします。

f:id:Takyu:20170124210532p:plain


Virtual Reality Supportedにチェックを入れない、が重要です。


ここまでできたら、Buildボタンを押して適当なフォルダを指定し、UWPのプロジェクトファイルを出力します。
(ここは通常のHoloLensアプリの作り方と同じです)

この後は、Visual Studioでプロジェクトを開き、(拡張子slnをダブルクリックしても開きます)

Target Deviceをx86に指定し、

f:id:Takyu:20170122075723p:plain

Deploy Solutionを選択します。

f:id:Takyu:20170122075849p:plain


これでHoloLensにアプリがインストールされます。

3. 動作確認

HoloLensの実機でアプリを起動します。

通常の作り方だと、視界全体にMade with Unityのロゴが出ますが、今回はWindowの中に表示されています。

f:id:Takyu:20170123043631j:plain


動かすとこのようになります。

UnityのFPS ControllerのカメラワークをHoloLensのヘッドトラッキングで操作しています。

前進移動は、キーボードの上キーです。

前回紹介した、Wekey Pocket キーボードを使っています。

magicbullet.hatenablog.jp


また、HoloLensの注視カーソルも生きていて、uGUIかOnGUIのボタン上でAirTapすると、タップ相当の操作もできます。

動画の中でも見づらいですが、小さな白い点が常に表示されており、これが注視カーソルです。

このように、他のアプリケーションを表示させることもできます。

f:id:Takyu:20170123043556j:plain


ただし、World Lock表示したUnityアプリを操作できるのは、UnityアプリのWindowがフォアグラウンドであるときだけです。


4. 終わりに

UnityでWorld Lockアプリができると、ユーティリティアプリとか、ゲーム以外にもUnityの特性を活かしたアプリができそうですね。

こんな感じで、また色々調べてみたいと思っています。

HoloLensとWekey Pocketキーボードを接続する

HoloLensとキーボードを接続してみました。

今回試したのは、Wekey Pocketという超薄型キーボードです。

www.amazon.com

去年Indiegogoで出資した時に$50くらいでゲットしました。

f:id:Takyu:20170123214911j:plain

f:id:Takyu:20170123214957j:plain

折り畳んでもXperiaZ3よりも薄いです。

使い方は簡単で、HoloLensのSettingsからDeviceを選び、Bluetoothのペアリングを実行するだけです。

f:id:Takyu:20170123035601j:plain

このようにペアリングが成功すればOKです。

キーボードの十字キーでカーソル選択になりますし、文字入力もできます。


HoloLensは基本的にAirTapと音声認識だけで操作できますが、キーボードがあるとデバッグとか、調整関係に役に立ちそうです。

HoloLensでUWPアプリを動かしてみる

先日、ついに日本でもHoloLensが発売されました。

下記のタイトル通り、1/18から日本でもちゃんと届きました!

news.microsoft.com


また、私にHoloLensのすごさを教えてくださった中村さんが、HoloLensを中心とした会社を起こされました。

www.naturalsoftware.jp

中村さん、およびCoFounderの方々は、HoloLens関係の日本の第一人者と言っても過言ではないと思います。

事業拡大することを願っています!


HoloLensを入手した一人として、私も色々試してみたいと思っていますが、今回は、UWPアプリをHoloLensの実機で動かす方法について簡単に解説します。


Unityについては、すでに先ほどの中村さんや、@yuujiさんなどが、Unityで開発するときの詳しいtipsをまとめてくださっていますのでご参考ください。

www.naturalsoftware.jp


f:id:Takyu:20170122112249j:plain
UnityでHoloLensアプリケーション開発Tips | develog.holo



======

目次

1, UWPについて

2. HoloLensでUWPアプリをインストールする方法

3. 試した結果

4. その他補足情報

5. 感想

======

1. UWPについて

下記のブログで紹介した通りですが、参考までに再掲します。


UWPとは、Universal Windows Platform の略です。Windows 10 Family上で共通で動く仕組み、と考えるのが良いと思います。

そして、UWPの概念に沿ったアプリケーションをUWPアプリと呼びます。

UWPアプリであれば、下記の概念図のように同一アプリが異なるデバイスで動作します。

f:id:Takyu:20160601134335j:plain


magicbullet.hatenablog.jp

[注意]

・デバイス別の画面解像度設定は必要です。

・「電話をかける」機能がMobile端末にしかないなど、特定のWindows 10 OS端末にしかない機能は、マニフェストファイルで制限をかける必要があります。

2. HoloLensでUWPアプリをインストールする方法

上記の通り、UWPはWindows10の搭載デバイスであれば、どれにでもインストールできます。

方法も簡単です。まず、HoloLensをPCと接続します。

Visual Studioでプロジェクトを作ったら、

f:id:Takyu:20170122075723p:plain

のように、①CPUアーキテクチャx86に変更し、②deploy対象をDeviceに変更します。

次に、Build / Deploy Solutionを実行します。

f:id:Takyu:20170122075849p:plain


すぐに試したい方は、下記のサンプルコードを使うと良いと思います。UWPアプリのサンプルが多数入っています。

github.com

f:id:Takyu:20170122080127j:plain


【注意事項】
・HoloLensで起動するけど使えない、というサンプルコードもいくつかあります。
(UWPは共通でコードを使えるけど、どんなデバイスにも全て使えるわけではないため、manifestや#ifで制限をかける必要があります)

・SharedContentというフォルダは残しておく必要があります。

3. 試した結果

3-1. Map Sample

これはMap Sampleというプロジェクトですが、AirTapとドラッグで地図を動かすことができました。

f:id:Takyu:20170121004331j:plain

3-2. HolographicSpatialMapping

実は、UWPアプリのサンプルにはHoloLens向けの「HolographicSpatialMapping」もあります。

ただし、当然ですが、

Additional remarks

Note The Windows universal samples for Windows 10 Holographic require Visual Studio 2015 Update 2 to build, and a Windows Holographic device to execute. Windows Holographic devices include the Microsoft HoloLens and the Microsoft HoloLens Emulator.

とあるように、HoloLensもしくはHoloLensエミュレータでしか動きません。


実機にビルドしてみました。

f:id:Takyu:20170121003930j:plain


このように、実世界をメッシュ状に示すことができます。また、AirTapを1回実行すると、

f:id:Takyu:20170121003944j:plain

のように、白いモデルで表示することもできます。

(2枚の写真は多少ずれたところを撮影しています)


3-3. Simple3DGameDX

DirectXを使うFirst Person Shooterのゲームサンプルもありました。

f:id:Takyu:20170121005111j:plain


AirTapで的に当てるかと思ったのですが、残念ながらそのままでは動きませんでした。

3-4. 複数起動させる

2016年5月に開催されたMicrosoft主催のカンファレンス「de:code 2016」では、HoloLensのアプリケーションは以下の3種類であると発表されました。


Unityでアプリを作ると、原則「排他的表現」となり、他のアプリが見えなく(従来のWindowsPCで言えばフルスクリーン的に)なります。

UWPでは、原則World Lock扱いになるため、このように複数起動させることもできます。

f:id:Takyu:20170121005011j:plain


ちなみに、右下と一つ上が水色になっていますが、この2つはUWPでも「排他的表現」の性質を持っているアプリです。

(先ほど紹介した「HolographicSpatialMapping」と、「Simple3DGameDX」)

排他的表現のアプリは、World Lock状態の画面では、splash screen画面が出るだけになります。

ちなみに、この画面は、先ほどのGithubのサンプルコードの、

SharedContent/media/splash-sdk.png

です。

4. その他補足情報

UWPアプリをとりあえず動かすだけなら簡単ですが、Windows10 DesktopやWindows 10 Mobile向けのソースコードがどこまで使えるのかは確認が必要ですね。

ちなみに、UWPそのものを勉強したいときは、下記のかずきさんが書かれたslideshare & kindle本がオススメです。

blog.okazuki.jp


これについては、日本マイクロソフトでUWPなどのアプリケーション関係のエヴァンジェリストである高橋さんもお勧めされていました。

blogs.msdn.microsoft.com

5. 感想

私のメインはUnityですが、ざっと触っただけどもUWPでも色々できそうな気がしました。

去年、AndroidとUnityの連携とか、

magicbullet.hatenablog.jp


CortanaとUnityの連携方法とかを調べたこともあるので、

magicbullet.hatenablog.jp


今後、UWPのいいところをUnityで使えるようにしていこうかな、とも思っています。

Unityのコミュニティ活動でMicrosoft MVPを受賞するには?

これはUnity Advent Calendar 2の16日目の記事です。

昨日は、@riberunn さんの「メッセージやパラメータをYAMLファイルで定義・参照する」でした。


本日は、Microsoft MVPをUnityで受賞する方法を解説したいと思います。

==================

目次

1. Microsoft MVPとは?

1-1. 概要
1-2. 受賞対象分野
1-3. 受賞者の人数
1-4. 有効期限

2. 受賞の特典

2-1. アワードキット
2-3. カンファレンス参加
2-4. 製品開発部門のメーリングリスト、オンラインミーティングへの参加
2-5. コミュニティメンバーとのつながり

3. 応募方法

4. 応募時に気をつけるとよいこと

4-1. 簡潔、かつ客観性のある文章にする
4-2. 自己PRを工夫する
4-3. MVP受賞者に事前チェックを依頼する

5. 日本のMVP受賞者の方のブログご紹介

6. 終わりに


==================

1. Microsoft MVPとは?

1-1. 概要

f:id:Takyu:20161213095001p:plain

マイクロソフト MVP アワード プログラムとは

とあるように、ある技術分野のコミュニティの発展に貢献するような活動をしている人をMicrosoftが表彰する制度です。

有効期限は1年なので、受賞を継続するには毎年のコミュニティ活動が欠かせなくなってきます。

1-2. 受賞対象分野

下記の通り、たくさんあります。

f:id:Takyu:20161213101414p:plain

f:id:Takyu:20161213101422p:plain

ところで、Unityもそうですが、Microsoft製でない技術が多いですよね。これは2015年の10月からアワード規約が改訂されて増えたため、のようです。

(一部抜粋)

単一の技術専門分野にて表彰していた従来の MVP アワードの構造を改め、技術の垣根を超えた広範囲にわたる MVP のコミュニティ活動を表彰する運びとなりました。これにより、開発者と IT 技術者に関連した MVP の受賞分野は、従来の 36 の技術専門分野から、オープンソース技術を含めた 90 種類の活動領域から構成される 10 の受賞カテゴリーへ変更となります。

MVP Award Update - Oct 2015


とはいえ、Microsoft製以外の技術については、Microsoft製の技術や製品にも結びつく活動であることが必要と思います。

そう思った理由として、下記の関連記事を見つけました。

ascii.jp

(一部抜粋)

MVPになるのはどうしたらよいのだろうか? マイクロソフトが力を入れていきたい分野で活躍する人はもちろんのこと、MVPは各製品の事業部からの出資から成り立っているため、その時点で事業部の求める人材像がクライテリアになる可能性は高い。


上記の通り、MVP候補者の最終審査は、事業部が行うようです。

なので、UnityであればUWPやHoloLensとか、Windows Holographicで提携しているHTC VIVE関連とか、何らかの形でMicrosoftに関わってくる分野の活動の方が受賞確率は高まると思われます。


1-3. 受賞者の人数

全世界では約4000名、日本国内では約250名が受賞しています。

カテゴリ内の技術別の人数内訳は非公開ですが、数名から数十名と思われます。

2. 受賞の特典

2-1. アワードキット

このようなた「たて」が送られてきます。ガラス製で結構重いです。

f:id:Takyu:20161011162607j:plain

他にも、ピンバッジ、証明書のようなカードと賞状も同梱されています。

2-2. サブスクリプション

Office 365 E3相当のサブスクリプションを使うことができます。Office365とは、Microsoft Office製品を端末問わず使えるサービスです。

Officeと言えば最も有名なのは、Word、ExcelPowerPointですが、今のOffice365はこのように多数のアプリケーションがあります。

f:id:Takyu:20161213210623p:plain

また、5人分のライセンスが付与されており、ポータルサイトからアカウントを発行することで、自分以外の人でも使うことができます。
(ユーザライセンスの数は受賞カテゴリによって変わります)


2-3. カンファレンス参加

MVP受賞者限定のカンファレンスに参加することができます。

大きく二種類あります。


(1) MVP Global Summit

世界中のMVP受賞者が集まるカンファレンスです。MVP受賞者だけでなくMicrosoft本社の方も参加するので、とにかく色々な方と交流できます。

講演やセミナーのほか、そこでしか得られない最新の技術情報も得られます。

ただし、参加にはNDA締結が必須のため、Global Summitでどんなことがあったのか、何を知ったのか、などは言えないことになっています。

(ネット検索で「MVP Global Summit」でブログ検索しても中身が出てこないのは、そのためです)


2016年のMVP Global Summitは11月にシアトルで開催されました。10月に受賞した私も参加資格はあったのですが、諸事情でどうしても日程が合わず、残念ながら欠席させていただきました。

来年もMVPを受賞できたら参加したいと思います。


(2) MVP Open Day

MVP受賞者同士の交流を深めるためのイベントです。

私はまだ詳細わかってないのですが、国別に開催されるようです。
(こちらもNDAなので詳細は言えないのですが)

2-4. 製品開発部門のメーリングリスト、オンラインミーティングへの参加

こちらもNDA前提となりますが、受賞カテゴリに関係した製品開発を行っている部署のメーリングリストや、オンラインミーティングに参加することができます。
(オンラインミーティングについては、週1回程度の頻度で開催案内が来ます)

これらは、製品開発部門に対して直接フィードバックをかけることができるため、中々ない機会だと思います。

2-5. コミュニティメンバーとのつながり

MVP受賞者の方は、それぞれの技術分野で突出しています。

受賞者の集まりが不定期にあるので、機会を利用してそのような方たちと交流できるのはとても励みになります。

また、MVP経由のつながりで、書籍執筆とか転職の機会も増えるそうです。

これらはMVPを受賞しないとできない体験ですので、これらだけでもMVPを目指す価値があると思います。

3. 応募方法


では、どうやったらMVPを受賞できるのか、についてです。

大前提としてMVPを受賞するには、まずは応募することです。(Microsoftが突然声をかけてくれることは滅多にありません)

応募用のURLは下記です。Microsoftのアカウントでサインインする必要があります。

https://mvp.microsoft.com/ja-jp/Nomination/NominateAnMvp


ここで、氏名や連絡先の他に、自分の活動内容と自己PRを入力していきます。

基本的にはこれだけです。活動内容の種類は、

・勉強会での発表

・ブログでの技術情報執筆

・何かの技術で作った作品を展示

・書籍執筆

・メディアへの寄稿

Githubなどでソースコードを公開

・コミュニティの運営

などなど、コミュニティやユーザーと幅広く自分の技術に関する知見を共有している活動はすべて対象となります。
(活動が多い人は入力が大変かもしれません)

あとは提出すれば審査が進みます。3回の審査を経て、通ればMVPを受賞できます。


ちなみに、審査は1年で4回実施され、1月、4月、7月、10月のいずれかを開始月として受賞が決定します。

本日12/16だと1月受賞者の選考中になるので、受賞に興味ある方は、4月受賞を狙って応募することになります。

1月以降に、上記のサイトをチェックすることをお勧めします。

4. 応募時に気をつけるとよいこと

4-1. 簡潔、かつ客観性のある文章にする

最も簡単に言うと、自分の活動がいかにコミュニティに影響力あるものなのか、すごい活動なのか、を文章で伝えることが重要だと思います。

例えば、「Unity勉強会でshaderの書き方の発表をした」とします。

この活動を応募フォームに書く場合、単に「発表をした」だけでなく、

・どれくらい続いている勉強会か? (例:2012年から年間4回開催している、開催が初めてで自分は第一回目として発表した)

・参加者人数は?(例:参加者100名)

・どんな影響があったか (例:自分の発表したshaderの使い方で、最近のスマホゲームで使われる光のエフェクトを簡単に表現できるようになったので、スマホゲーム業界の人、趣味で新しくゲームを作りたい人に貢献できた)

のようなことを混ぜて書くと、Unityを知らない人でも、客観性のある数値と効果を読むことで、その勉強会で発表することのすごさが伝わります。

また、その勉強会での来場者の反応などを示すのもよいと思います。



なぜこのような提案をするか、ですが、審査をする方はあらゆる技術や勉強会に精通しているわけではないためです。

また、多数の応募フォームを見ているため、「私の活動はすごい」を客観性のある言葉で伝えて審査する方の印象に残す必要があります。


4-2. 自己PRを工夫する

審査事務局より別途、自己PRの提出が求められます。

ここは自分自身の活動を要約し、今後コミュニティにおいてどんなことをしたいか、と言う抱負を書くところです。

これは私の個人的予想ですが、審査をする場合、まずここを見て応募者がどんな人でどんな活動をしているのか、を見極めるのだと思います。


最初の見極めで評価が良くないと困るので、ここは簡潔かつわかりやすく書く必要があります。

4-3. MVP受賞者に事前チェックを依頼する

審査に通った人であれば、書き方のコツも分かっているはずなので、個人的には事前チェックを依頼することをお勧めします。

私の場合も、@mitsuba_tan さんに見ていただきました。

5. 日本のMVP受賞者の方のブログご紹介

参考までに、私が知っているMVP受賞者の方を一部ご紹介します。
(順不同です)

mitsuba

c-mitsuba.com

C#JavascriptRubyなどの言語の他、XAML、Blendなどの描画系の言語にも詳しい方です。

書籍も出されておられます。

xin9le.net

xin9le.net

C#.NET Frameworkを中心に活動されている方です。北陸地域でコミュニティ運営もされています。

Natural Software

www.naturalsoftware.jp

センサーデバイス系について書籍やブログなどで情報発信をされている方です。
特に、HoloLens関係の情報発信では日本で最も多いかと思います。

つくるの大好き

satoshi-maemoto.hatenablog.com

Kinectなどのセンサーデバイスを使って新しいものを生み出すコミュニティ「TMCN」に所属されている方です。センサー系だけでなく、VRやAR関係でも多数の作品を出展されています。

かずきのBlog@hatena

blog.okazuki.jp

Windowsアプリケーション関係で多数ブログを書かれています。Windows 10以降のアプリケーションプラットフォーム「UWP」について電子書籍を発行されています。UWPに関する情報は少ないのでとても勉強になります。


他にもたくさんの方がいらっしゃいますので、ぜひ探してみてください。

6. 終わりに

Microsoft MVPは、Unity系のコミュニティではまだあまり知られていないと思います。

私が知らない受賞メリットもまだまだあるはずですので、気になった方はぜひご検討ください。

今回の記事が、MVPを考えている方の助けになれば幸いです。


次回は、@isemito_niko さんの「VRデバッグに役立つかもしれないアセットを作りましたのでその紹介」です。よろしくお願いします!