MR:mirage solo のパススルー機能を使ってみた

どーもこんにちは、Keita_Nakamori@(´・ω・`)です。

捨てようかどうか迷っているMirage Soloについて、最後にMRをやってみようと思います。

環境

  • Windows10 home
  • Unity 2018.4.4f1
  • GoogleVRForUnity_1.200.0

ヒエラルキー

  • GvrBetaHeadset:新しいです
  • GvrControllerMain
  • GvrEventSystem
  • GvrEditorEmulator
  • GvrBetaControllerPointer:これも新しいです
  • PlayerというEmptyを作って、その中にMain CameraとGvrBetaControllerPointerwを入れておきます。

GvrBetaHeadsetの設定

起動と同時にMRが発動するように、インスペクターでGvrBetaHeadsetスクリプトのグルーバル変数であるInitial Camera Mode を Tone Mapに、Initial Scene TypeをAugmentedに変更します。

カメラの設定とオブジェクト配置

カメラの背景はHolo Lenseと同じく完全透明のSolid color (0,0,0,0)への変更が必要です。

カメラの座標はカメラの親であるPlayerでy=1.5にします。カメラ自体は(0,0,0)です

オブジェクトは1m角の枠とユニティちゃんを配しました。

ではビルドしましょう。やりかたはVRのときと全く同じです。

MRとVR(オブジェクトだけ)を切り替えたいとき

下記サイトを参考に、スクリプトをPlayerに貼り付けます。これで、Appボタンを押せば切り替えられるようになりました。

【Unity(C#)】MirageSoloのシースルーモード導入方法

スクリーンショットを貼っておきます(Volume Down ボタン+ DayDreamボタン(一番下))

スクリプト

念の為、置いておきます。

ViewModeChange.cs

弱点

オブジェクトの前になにも障害物がない状態では問題ないのですが、例えば、手をユニティちゃんの手前にかざすと、隠れるはずのユニティちゃんが隠れてくれません。

ここがホロレンズと違うところで、手はオブジェクトとして認識されているわけではありません。

よって、手はパススルーの背景と同じ扱いをされてしまいますので、手で遮っても、その上にユニティちゃん(オブジェクト)が乗ってくることになります。

このときに盛大な違和感を憶えます。

でも、手をオブジェクトの後ろに回すぶんにはなんの違和感もありませんし、むしろ自然な感じが良いです。

今後

  • パススルー画像をリアルタイムで解析して、
  • 手の動きをオブジェクト化し、
  • ユニティちゃんの手前にかざし、ユニティちゃんが見えなくなるような方法を探る。

そんなことができるでしょうか。

Python : numpy

どーもこんにちは、Keita_Nakamoriです(´・ω・`)

Pythonを色々やってきた中で、何かしらマイルストーン的なものがほしいと思い

Python 3 エンジニア認定データ分析試験

なるものを受けてみようと思っております。

データ分析というからには、numpy , pandas, matplotlib, scikit-learn くらいは出るんだろうなあと漠然と考えていますが、今日はnumpyを学習したので、備忘録に貼っておきます。

numpy_text_for_data_analisys_with_Python.html

numpy_text_for_data_analisys_with_Python.zip

HoloLense:久しぶり

久しぶりにホロレンズをかぶりました。

Keita_Nakamori です。

ツール関係のセットアップ

マイクロソフトアカデミーを見てみると、おすすめのUnityバージョンがUnity 2018.3.10f1に上がっていましたので改めてインストール。

MRツールキット Mixed Reality Toolkit (MRTK V2) for Unity のほうもV2(バージョン?)になっているので合わせてダウンロード

ダウンロードして、どうするかは忘れました・・・

Unityプロジェクトを作りましょ

プロジェクト名:MR_test_001

場所:C:\Users\Public\Documents\Unity Projects

メインカメラのMR化

ヒエラルキー>メインカメラ

背景を透明にしましょ:ClearFlags=ソリッドカラーにします。

Background=全部ゼロで真っ暗な透明にします。

Clipping Planes=デフォルトはあ0.3ですが0.85にします。少し遠めですね。

シーン名をMainにしてセーブしましょ。

プロジェクトの設定

エデット>プロジェクトセッティング>クオリティは

Very Lowにします。ホロレンズのCPUはしょぼいので、軽くしてスピード重視ということです。

エデット>プロジェクトセッティング>プレイヤーは

ウィンドウズマークを押して、XR Setingsのバーチャルリアリティサポートにチェックをいれて、SDKにWindows Mixed Realityを選択します。

次に、(こんなんあったかな?)Configuration>Scripting BackendをIL2CPPかから.NETに変更します。意味はわかりません。

オブジェクトをシーンに追加してビルド

cubeをシーンに追加しました。

ホロレンズをかぶって、windowsstoreからHolographic Remoting Playerをダウンロードして実行。

IP address   192.168.0.125   とでました。

次、ホロレンズエミュレーターでやってみようということで、ダウンロードして実行しました。

  • HoloLensEmulatorSetup.exe

UnityメニュのWindowの下にエミュレータという項目が出るはずですが、出てこないのでUnityを再起動。

でてこないので、目を凝らすとXRとあったのでここを押したら、この中にEmulatorがありました。

警告:あなたはVRサポートセッティングを使用できるようにして、なおかつMRをデバイスに追加すべし。エミュレータを使えるようにね!

ほうほう、なにかが足りないらしい・・・。

でも、今日はホロレンズが目の前にあるのだから、エミュレータじゃなくていいよね!やめた!

ここまでで1時間か ぐぬぬぬ・・・

USBで直接つないでビルド

File>build Setting でビルドしましょう

platformはUniversal Windows Platform 通称 UWPです。知らないとはまりますw

Target DeviceをAny DeviceからHoloLensに変更して、DebuggingはUnity C# Projectsにチェックを入れます。

あ、スイッチプラットフォームの位置がUnity2017から変更されてますね。スイッチしましょう。

これでビルドできると思いきや、Buildボタンがアクティブにならない・・・

警告:.NETはインストールされていません。なぬ~~~

AndroidSDKとJDKはいじってないから、ここかなあ。

Edit>Preferences>External Tools です。親切にもDownloadボタンが横にあるので押してみます。

  • android-studio-ide-182.5314842-windows.exe

これがダウンロードされたらインストールを実行しましょう。

C:\Program Files (x86)\Android\android-sdk に入りました。

JDKのほうはなぜかチェックが外れていたので、embeddedしました。

C:\Program Files\Java\jdk1.8.0_161\ です。

これでビルドできると思いきや、まだまだBuildボタンがアクティブにならない・・・

警告:.NET 4.xがインストールされていない。

じゃあ、インストールしましょうと思いきや、もう入っているよとの警告・・・

矛盾している・・・

さらにビルド画面には.NETは無理よ。IL2CPPを推奨します。とのことなので、プレイヤーセッティングの.NETに設定したところを再びIL2CPPに変更しました。矛盾していますね。

そしたらBuidボタンがアクティブになりました。なんで!!

そしてビルドしたファイルを入れるフォルダですが、これはユニティフォルダの中に入れてはならないという前回の経験から、上の階層に戻り。

C:\Users\Public\Documents\App_builded に入れました

MR_test_001.sln さてこれ、どうしましょ?

そうそう、ダブルクリックで実行するとVisualStudioが立ち上がるので、デバイスリリース x86 するんですよね。

とおもいきや、なんかVisual Studio Enterprise 2017のインストールが始まってしまいました。まあついていきましょう。

無事インストール完了・・・とおもいきや、Microsoftアカウントを求められたので入力したら、試用期間終了のオシラセ・・・はあ?

??????????????????????????????

今日はやばい。

なんもできん。

あと1時間半で何ができるか・・・。

完全に仕切り直し

分からないので、PC自体を変えてやっていきます。

Unity は2017.4.15f1です。いつもの感じでいけるか!

VRセッチングして.NETにして

ホロレンズをUSBでPCにぶっさして。

MR_test_001.sln をダブルクリック!

VS2017が立ち上がり

リリース x86 そしてデバイスで GO!!

しばらくたってから

プログラム ‘[1888] MR_test_001.exe’ はコード -1 (0xffffffff) で終了しました。

いけた!なんてこった!

とりあえず大急ぎでUNITYちゃんを出してみました。

本日はもうこれ以上なんもできません!帰りますw

ズコーーーーー!!

 

 

 

 

HoloLense:折り紙の続き #5

https://docs.microsoft.com/ja-jp/windows/mixed-reality/academy

アカデミー

こんばんは Keita Nakamori です。

折り紙の続きをやっていきます。

今日はUnity2017.4.20f2でやってみます。

インストールからやっていきました。

はまりどころ1   PIN コードはどこだ!?

一通り折り紙を配置してVSに吐き出したあと リリース-x86-デバイスでホロレンズへ書き出そうとしたところPINを要求されました。

20分くらい探したところ セッティング>アップデート&セキュリティ>For developers ずーっと下にスクロールしてDevice discovery のPairボタンをおすと出てきました。これはつらいです・・・

はまりどころ2

cursorオブジェクトを配置しWorldCursor C#をaddし、開いたところ、まずMicrosoft NET 4.6.1をインストールしろと出ましたので、従いました。

これがまた結構時間がかかる、フリーズしたかと思いました。はっきりいってオニですな。

いや なにかがおかしい.ファイルを開くたびに VSをインストールしているような挙動を示しています。これがおかしくないというのなら、なんなんでしょ。

追記:

解決方法としては、とりあえずPCを再起動した後、再びC#のスクリプトを開こうとすると、同じようにNETなんちゃらのインストールを促されるのですが、ここで、「インストールしない!!」が正解でした。

はまりどころ3

なんかおかしいのでいったんPCを再起動しUnityを立ち上げたところ、さっきまで作っていたオブジェクトたちがいなくなってしまいました。

ここは最初につくったOrigamiシーンをダブルクリックすると復活しました。

はまりどころ4

リリース-x86-デバイスでホロレンズへ書き出そうとしたところ「配置ができてない」とかいう警告が出ました。メニューの中に「Origamiの配置」というのがあったので、これを最初にやってからリリース-x86-デバイスをやるとHoloLenseに書き出しができました。

はまりどころ5

今日は前回に引き続き

  1. RAYを飛ばしてオブジェクトに干渉させる
  2. ボールをタップすると重力で落ちる
  3. 音声認識で最初に戻る
  4. オブジェクトを好きな場所に移動させる。
  5. 金平糖みたいなオブジェクトが爆発する。

をやってみましたが、まともに動いたのは1,2だけ。いろいろありますなあ。

 

HoloLense:ホロレンズエミュレータの準備 #4

こんばんは、keita nakamoriです。

ホロレンズ本体を持っていない場合はエミュレータを使用することもできます。

101Eはエミュレータを使用した場合のおりがみチュートリアルなので、これで学習したいところですが、ハードルがまた幾重にもあります。

事前準備が必要なのでやっていきましょう。

BIOS 仮想化の有効化

エミュレータのインストールにちゃんと書いてはいるのですが、この通りできません。わたくしなりにアレンジしました。

起動時にF1を押しっぱなしにして、BIOSに入ります。(私はthinkpadなのでF1でしたが、お使いの機種によって違うので調べてください。)

BIOSの設定で仮想化を有効にするかどうかの設定があります。「Enable」にしましょう。2か所ありました。

Hyper-Vの有効化

ホロレンズのエミュレータを使用するにあたり、Hyper-Vを有効にしておく必要があります。

cmdを開くときに右クリックして管理者として実行したのち、
下記のコードをコピペします。

DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V

するとwindowsの再起動を促されるので、実行します。
すると、「windowsの機能の有効化または無効化」を開くとHyper-Vが有効になっていうことが確認できます。

VSのインストール

Visual Studio Community 2017をインストールします。
その時、大事なことは「UWPのインストール」にちゃんとチェックを入れることです。
はまりました。

ホロレンズエミュレータのインストール

ここまでやったら、やっとホロレンズエミュレータのインストールができます。

下記のリンクの指示に従ってインストールをしましょう。

 

以上、お疲れさまでした。

このように、まとめるとカンタンそうに見えますが、いちいちはまっているので、結局丸1日かかっています( ゚Д゚)

同じ思いをする人が出ないよう、お役に立てたら幸いです。

難しいことはワカリマセンw

HoloLense:おりがみ やってみました #3

こんにちは、keita nakamori です。

本日は、マイクロソフトアカデミーの101 「おりがみ」をやってみました。

初めに、よくわからなくてUnity5.6でやったのですが、VSからホロレンズにはき出すときにエラーになってうまくいかず焦りました。Unity2018でやれば簡単でした。

はまりどころ

VSのセッティングで、メニューバーの下にある設定で masterではなくて releaseにしなくてはならないことは失念していました。
その右隣りは、X86 と DeviceでOKです。

安定して送信するためにはUSBをつないで 「Device」を選択するといいのです。

チャレンジ

今回は初めに「リモート」でチャレンジしました・・・が、IPアドレスに何をいれればいいのかわからなかったので断念しました。

本日編み出した技

ホロレンズ本体右側の耳の上あたりにあるボタン2個を同時に押すと、動画撮影になりました。

HoloLense:オブジェクトを増やしてみる #2

Hello I am Keita Nakamori.

and then ,Let’s start making holorense project again!!

前回作ったオブジェクトに少し手を加えてみましょう。

工場のプラントっぽい感じにしてみました。

機器をつなぐコンベアとかパイプラインのイメージです。

Assetストアからstanderd assetsをインポートして、テクスチャーなりを張ってみました。

さあ、ビルドしましょう。

結果:画面が狭くて全体像がわからない・・・だめだこりゃ

ホロレンズにUnityの文字が浮かび上がってあと、画面が水色に・・・。

カメラの目の前に設置した青い円柱状のオブジェクトが、画面全体に移りこんでしまい壁のようになってしまいました。

高さを1.4mにしているのですが、この程度であれば、人間の有視界角は少なくとも120°以上あるわけですから、肉眼で見たときに、全体形状は見えるはずです。

しかし、ホロレンズではオブジェクトが表示される範囲は公称40°未満であり、とにかく極端に狭い範囲にしか映し出されません。※実際には25°程度にしか体感できませんでした。

なので、有視界全体の中に画角25°の板が表示されている状態になってしまいます。

次に、少し歩いてみて、設備全体を眺めようと思いました。

そこでも画角の狭さが災いして、オブジェクト同士の位置関係全体を写すことができませんでした。あっちみて、こっちみて。つながりを脳内補間する感じです。

現状では、機械設備のようなデカいものを表示するのには向かないと思います。

今後に期待

後継機にはとにかく画角の改善を期待したいです。

Hololense:初めてのホロレンズ #1

Hello my name is Keita Nakamori  as a mechanical engineer.

From now on . Let’s start a microsoft holorense project!!

まずはアカデミーで、基本を覚えましょう

https://docs.microsoft.com/ja-jp/windows/mixed-reality/academy

Unity:2017.1.2.p2が安定らしい

Visual Studio:2017(15.2)が良い組み合わせらしい

でもとりあえず手元にあるUnity2018でやっていきます。

Unityを起動して プロジェクト名をhorotest_001にしました(間違えてローマ字になってしまったw)

カメラの設定

カメラのポジションを0,0,0

Clear FlagsをskyからSolid Colorへ

Back groundをデフォの青っぽい色から真っ黒、しかも透明へ。rgba(0,0,0,0)です。

Clipping Planesは0.3から0.85に変更します。

これで、カメラからの視界を確認すると、真っ暗になり、ホロレンズのデフォ状態になりました。

画質を落として、スピードを重視したセッティングにしましょう。

menu>edit>project settings>quality

levelsのwindowsマークの一番下のDefaultの▼マークをクリックしてVery Lowにします。

XRに対応するためのセッティングをしましょう。

menu>edit>project settings>player

windowsマークをクリックして※重要

XR settings Virtualにチェックを入れる

そうするとwindows Mixed Realityが使えるようになります。

試しにオブジェクトを作ってみましょう。

さっきつくったカメラの前にcubeを置きます。45°傾けるとわかりやすいです。

目の前の真っ暗な背景にcubeだけが浮いています。

ビルドしましょう

menu>file>build settings

UWP Holorenseにチェックを入れます C#にはチェックができなかったです。よくわかりません。やってみましょう。>build

フォルダはUnityではない別のフォルダを自分で作って選択してください。

でないとUnityと混ざってしまいます。

出来上がったフォルダを見ると.slnという拡張子のものがあります、

これをクリックするとVisual Studioが起動します。

そうすると真っ黒な画面が出てきて不安になると思いますが大丈夫です。

VS側の操作

ARMのところをx86に変えましょう。そう書いてあるんで。

右側がいきなりローカルコンピュータに書き換わるのでDeviceに直しましょう。

かなりはまりどころです。!!!

ホロレンズとPCをUSBで物理的につなぎます。

リモートでIPアドレスを指定してつなげる方法もありますが。それはあとで。

Deviceを押すと、ビルドが開始されます。

しばらく待っていると、ホロレンズ上にでかでかとUnityの画面が出てきて、そのあとに、Unityで作ったcubeオブジェクトが見えてきます。

ホロレンズ側の操作

これでホロレンズにはプロジェクト名 horotest_001のアプリケーションが入りました。

以後、ブルームするとAll Appsのなかに「青いunityアイコン」でhorotest_001が生成されていますので、ここからエアタップして起動します。

まとめ

ここまでで、一通り、何もないところから、目の前にオブジェクトを映し出すところまで来ました。では次回からは少しづつ応用して世界を広げていきましょう。