MRが楽しい

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

hololens開発にマネキンヘッドを利用する

本日は hololens 開発に使える便利グッズ(物理)の紹介です。
ダイソーで販売しているマネキンヘッドを購入してみました。
f:id:bluebirdofoz:20170910000835j:plain

値段は 600 円です。店舗一覧で「大型店」となっているダイソーならばほぼ確実に手に入るようです。
www.daiso-sangyo.co.jp
(少なくとも小型店では見つからなかった)

こんな感じで hololens にフィットします。
f:id:bluebirdofoz:20170910000909j:plain
結構小顔サイズなので、自分の設定サイズそのままに乗せるとズレますが。。

DevicePortal と組み合わせると、Hololens 上でのアプリ動作を確認しながら PC でプログラミングしたりできそうです。
特に hololens を二台以上利用する Sharing のテストを一人で実施するときは便利かも。

材質は発砲スチロールのため、マネキンヘッド自体の重さは軽いです。
ヘッドが倒れたりが不安なならば重しを付ける必要があります。

底が空いてるので、何か重しを入れ込んでおくのも良いでしょう。
f:id:bluebirdofoz:20170910000946j:plain

試しに缶詰を買ってきました。
f:id:bluebirdofoz:20170910000953j:plain

ぴったし。これでガムテープなどで塞いでおけば重しとして問題ないと思います。非常食にもなります。
f:id:bluebirdofoz:20170910001008j:plain

hololensのセットアップ手順をまとめる

本日は hololens の利用方法についてです。
今更ですが、一番最初の hololens のセットアップ手順について情報をまとめます。

セットアップの実施手順は公式ドキュメントが参考になります。
docs.microsoft.com

セットアップには事前に、以下のものを準備しておく必要があります。
・WANに接続可能なWi-Fi ネットワーク
Microsoft アカウントまたは Azure Active Directory (Azure AD) アカウント

hololens を個人利用する際は Microsoft アカウントでのサインインを求められます。
アカウントを持っていなければ以下のページから作成可能です。
Microsoft アカウント登録手続き
 https://www.microsoft.com/ja-jp/msaccount/signup/default.aspx

Microsoft アカウントを申請する際に必要なものは以下です。
・利用可能なメールアドレス
・利用可能な電話番号(電話番号認証のため)

初期設定として以下の設定を求められます。
・パスワード
・姓名


hololens を企業などの団体の所有物として管理する場合は Azure AD でのサインインを求められます。
アカウントがなければ以下のサイトから作成可能です。無料のエディションもあります。
azure.microsoft.com

しかし基本的に個人が Azure AD でサインインする機会はないと思います。
複数の hololens を統括管理する MDM が利用できるので仕事や展示会では利用機会があるかもしれません。

Azure Active Directory アカウントを申請する際に必要なものは以下です
Microsoft アカウント
・利用可能なクレジットカード
 (バーチャルクレジットカードは利用不可)
・利用可能な電話番号(電話番号認証のため)

初期設定として以下の設定を求められます。
・国/リージョン
・姓名
・連絡先の電子メール
・勤務先の電話
・所属組織名
・名の読み方
・姓の読み方
・支払いに使用するクレジットカード情報
・郵便番号
・住所
・電話番号

参考ページ
www.cns.co.jp

hololensの開発者向けキットと企業向けキットの違いをまとめる

本日は hololens の調査枠です。
hololens の開発者向けキット(DevelopmentEdition)と企業向けキット(CommercialSuite)の違いについて
教えてもらう機会があったので個人メモとしてまとめます。
・Commercial features
 https://developer.microsoft.com/en-us/windows/mixed-reality/commercial_features
・MRデバイス「HoloLens」法人向けキットが登場 新機能も
 http://www.moguravr.com/hololens-corp/

機能的な主な違いは moguravr の方に記述されています。
developer.microsoft の方ではより詳細な表での比較があったのでこれを調べて書き下してみます。


Features
(機能)
開発者向け
キット
企業向け
キット
Device Encryption (Bitlocker)
Virtual Private Network (VPN)
Kiosk mode
Management and deployment
(管理と展開)
Mobile Device Management (MDM)
一部利用不可
Ability to block un-enrollment
Cert Based Corporate WiFi Access
Windows Store (Consumer)消費者MDM
フィルタリング可
Business Store Portal
Security and Identity
(セキュリティ)
Login with Azure Active Directory (AAD)
Login with Microsoft Account (MSA)
Next Generation Credentials with PIN unlock
Secure boot
Servicing and Support
(サービスとサポート)
Automatic system updates as they arrive
Windows Update for Business
Long term servicing branch

各機能について調べてみました。参考元のURLも記述しておきます。

・Device Encryption (Bitlocker):デバイス暗号化(ビットロッカー)
 ドライブの暗号化機能を提供します。
 データを暗号化することでhololensの紛失、盗難時のデータ流出を防止します。
 - BitLocker の概要
  https://msdn.microsoft.com/ja-jp/library/hh831713(v=ws.11).aspx

・Virtual Private Network (VPN):仮想プライベートネットワーク
 VPNのネットワーク接続機能を提供します。
 VPNは公的なネットワーク空間に論理的な専用ネットワークを構築する技術です。
 - Virtual Private Network
  https://ja.wikipedia.org/wiki/Virtual_Private_Network

Kiosk mode:キオスクモード
 アプリの操作制限などを行えるキオスクモードの機能を提供します。
 例えば一つのアプリしか使えないように設定して利用ユーザが指定アプリ以外の操作を行えなくします。
 - キオスク モードでの HoloLens のセットアップ
  https://docs.microsoft.com/ja-jp/hololens/hololens-kiosk

・Mobile Device Management(MDM):モバイル・デバイス・マネジメント
 モバイルデバイス管理の機能を提供します。
 複数のhololensに対してインストールするアプリの選択やセキュリティの設定を一括管理できます。
 hololensではMicrosoftIntuneを利用して端末を管理することが可能なようです。
 - Enroll HoloLens in MDM
  https://docs.microsoft.com/en-us/hololens/hololens-enroll-mdm

・Ability to block un-enrollment:登録削除のブロック
 管理システムからの登録削除をブロックする機能を提供します。
 アカウントに必要な権限を与えつつリセットによる管理外持ち出しなどを防ぐようです。
 hololensの事例ではないですが、以下を参照記事としました。
 - Block un-enrollment Windows Phone devices by Microsoft Intune
  https://ronnydejong.com/2015/01/15/block-un-enrollment-windows-phone-devices-by-microsoft-intune/

・Cert Based Corporate WiFi Access:証明書付き企業Wi-Fiへのアクセス
 認証が必要なWi-Fiに接続する機能を提供します。
 hololensのVPNを介して企業の共有ネットワークにリモートでアクセスできます。
 - Commercial features
  https://developer.microsoft.com/en-us/windows/mixed-reality/commercial_features

Windows Store (Consumer):Windowsストアのアクセス
 開発者向けキットではWindowsストアで公開される全てのアプリがインストール可能です。
 企業向けキットではMDMによるフィルタリングが可能です。
 - Commercial features
  https://developer.microsoft.com/en-us/windows/mixed-reality/commercial_features

・Business Store Portal:プライベートなWindowsストア
 企業向けキットでは企業専用のプライベートなストアを開設できます。
 専用ストアは使用ユーザの制限など、セキュリティや権限のカスタマイズも可能です。
 - Commercial features
  https://developer.microsoft.com/en-us/windows/mixed-reality/commercial_features

・Login with Azure Active Directory (AAD)
 Azure Active Directory(AAD)でのサインインが可能です。
 - HoloLens のセットアップ
  https://docs.microsoft.com/ja-jp/hololens/hololens-setup

・Login with Microsoft Account (MSA)
 Microsoft Account (MSA))でのサインインが可能です。
 - HoloLens のセットアップ
  https://docs.microsoft.com/ja-jp/hololens/hololens-setup

・Next Generation Credentials with PIN unlock:PINロック解除による認証
 従来のパスワード形式以外にPINの形式での認証機能を提供します。
 - Set or Change Windows 10 Sign in options like Password, PIN, Picture Password
  http://www.thewindowsclub.com/windows-10-sign-options

・Secure boot:セキュアブート
 セキュアブートの機能を提供します。
 セキュアブートは許可がないデバイスからのブートを制限する機能です。
 - セキュア ブート
  https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn938319(v=vs.85).aspx

・Automatic system updates as they arrive:到着時の自動システムアップデート
 hololensの初期起動時に自動でシステムアップデートが実施されます。
 - Updating the HoloLens device
  https://developer.microsoft.com/ja-jp/windows/mixed-reality/updating_the_hololens_device

Windows Update for Business:ビジネス向けWindows Update
 管理者がWindows 10 デバイスの更新方法や更新時期を制御する機能を提供します。
 - Windows Update for Business を使った更新プログラムの展開
  https://docs.microsoft.com/ja-jp/windows/deployment/update/waas-manage-updates-wufb

・Long term servicing branch:長期サービスブランチ
 ミッションクリティカルなシステムのための、長期間向けの変更管理ポリシーを提供します。
 最新の重要なセキュリティ更新プログラムを適用することでシステムの安全性を確保しながらも、
 サポート期間中は新機能を提供しないことで変更を最小限に抑えます。
 - エンタープライズ向けの Windows 10 : より安全に、常に最新の環境を提供
  https://blogs.windows.com/japan/2015/02/06/windows-10-for-enterprise-more-secure-and-up-to-date/#YStcYrUxc4ds7BiA.97
 - 企業向け「Windows 10」は“1年無料アップデート”の対象外
  http://www.itmedia.co.jp/enterprise/articles/1502/01/news008.html


以上、誤りがあれば適宜修正します。

Unityでレーザポインタを表示する

本日は Unity の技術調査枠です。
以下の記事を参考に、カーソルの位置がよく分かるようレーザポインタを表示させてみます。
gametukurikata.com
dev3104.hateblo.jp

ではレーザポインタを実装するプロジェクトを開きます。
今回は HoloToolKit の GazeManager と Cursor を利用しているプロジェクトに反映します。
f:id:bluebirdofoz:20170907091350j:plain

レーザポインタ用のオブジェクトを作成します。
CreateEmpty でゲームオブジェクトを作成したら LineRenderer コンポーネントを適用します。
f:id:bluebirdofoz:20170907091401j:plain

LineRenderer に反映するマテリアルを作成します。
Assetsフォルダで右クリック、Create -> Material で新規マテリアルを作成します。
f:id:bluebirdofoz:20170907091418j:plain

レーザポインタを発光している感じに見せるよう以下の通り、マテリアルを設定します。
1. RenderingMode を Transparent にし Albedo の色を変更する
2. Alpha(透明度)の設定値を 200 にする
3. Emission(光の放出)の設定値を 0.5 にする
f:id:bluebirdofoz:20170907091423j:plain
単に発色の設定なので後から好みに調整しても問題ありません。

因みに RenderingMode の各設定の意味は以下の通りです。
docs.unity3d.com

作成したマテリアルを LineRenderer に設定します。オブジェクトの設定は以上です。
f:id:bluebirdofoz:20170907091458j:plain

次に LaserPointer をカメラの位置からカーソルの位置まで伸ばして表示するようにします。
以下のようなスクリプトを作成し、LaserPointer オブジェクトに適用します。
・LaserPointerManager

    public class LaserPointerManager : MonoBehaviour
    {
        /// <summary>
        /// カーソル位置
        /// </summary>
        [SerializeField, Tooltip("カーソル位置")]
        private GameObject p_Cursor;

        /// <summary>
        /// レーザポイント
        /// </summary>
        private LineRenderer p_LaserPointer;

        // Use this for initialization
        void Start()
        {
            p_LaserPointer = this.GetComponent<LineRenderer>();
        }

        // Update is called once per frame
        void Update()
        {
            // レーザポイントの始点をカメラ位置に設定
            p_LaserPointer.SetPosition(0, Camera.main.transform.position);
            // レーザポイントの終点をカーソル位置に設定
        }
    }

レーザポイントの終点としてカーソルオブジェクトを設定すれば完了です。
f:id:bluebirdofoz:20170907091506j:plain

シーンを再生すると、レーザポインタがカメラからカーソル位置まで伸びていることが確認できます。
f:id:bluebirdofoz:20170907091844j:plain

hololensのDevicePortalを利用する

本日は hololens の DevicePortal の利用方法についてです。
今更ですが、利用方法を簡単に説明できるページが欲しかったので。
今後も利用頻度の高いツールについては紹介ページを自作していきます。

早速ですが、DevicePortal の初期設定の手順を紹介します。
hololens を起動し、Settings を選択します。
f:id:bluebirdofoz:20170906015130j:plain

Settings 画面を適当な場所でタップし、起動します。
f:id:bluebirdofoz:20170906015140j:plain

Settings 画面が開いたら、まずは DevicePortal の機能を有効化します。
「Update & Security」をタップします。
f:id:bluebirdofoz:20170906015149j:plain

Update & Security の設定画面が開くので、左のメニューから「For developers」をタップします。
すると DeveloperMode の設定画面になるので、これを「on」に切り替えます。
f:id:bluebirdofoz:20170906015221j:plain

そのまま設定画面を下にスライドします。
摘むようなジェスチャーでドラッグ操作が可能です。
f:id:bluebirdofoz:20170906015229j:plain

DevicePortal の設定項目があるので、これを「on」に切り替えます。
f:id:bluebirdofoz:20170906015239j:plain

次に DevicePortal にアクセスするため、hololens がアクセスする Wifi の設定とIPアドレスを確認します。
Settings 画面に戻り、「Network & Internet」をタップします。
f:id:bluebirdofoz:20170906015253j:plain

Wifi の設定画面が開くので利用する Wifi のアクセスポイントを選択します。
ローカルネットワークでアクセスするため、DevicePortal にアクセスする端末と同じアクセスポイントを選択します。
f:id:bluebirdofoz:20170906015307j:plain

Wifi に接続したら「Advanced Options」を開きます。
f:id:bluebirdofoz:20170906015323j:plain

接続中のネットワーク情報が表示されるので「IPv4 address」のIPアドレスを確認します。
f:id:bluebirdofoz:20170906015333j:plain

IPアドレスを控えたら端末からWebブラウザを利用して以下のURLにアクセスします。
https://(IPアドレス)/

HTTPS のため、ブラウザによってはアクセス確認が表示されます。無視してアクセスして問題ありません。
初めて DevicePortal にアクセスする場合は、このとき、PIN の入力とユーザ名、パスワードの設定を求められます。

PIN は hololens の画面上に表示されるので、それを入力します。
ユーザ名、パスワードは任意の設定を行います。
今後、DevicePortal にアクセスする際はここで設定したユーザ名・パスワードの入力を求められます。

全ての設定が完了すると、以下の DevicePortal 画面が表示されます。
f:id:bluebirdofoz:20170906015342j:plain


途中で、昔参照したページの方が遥かに画像等が見やすい事に気付きました。。改めて紹介しておきます。
azure-recipe.kc-cloud.jp

Blenderで3Dモデルを作る(タブレット編)

本日はBlenderの練習枠です。
hololens のアプリ内でタブレットを操作出来たら UI として面白いかも?
そう思い立ったのでタブレットを作ってみました。
f:id:bluebirdofoz:20170905022106j:plain
ボタン類は後からパネルUIで追加した方が都合が良いかと考えてシンプルな形だけのものです。

簡単な形なので三面図もなく、特に新しい技術要素はありません。
ただ後々の事を考えて、テクスチャだけは画面と本体で完全に分離しました。

方法はそれぞれの面のUV展開を別々に設定します。
・本体UV
f:id:bluebirdofoz:20170905022121j:plain
・画面UV
f:id:bluebirdofoz:20170905022129j:plain

後はそれぞれのUV展開に合わせたテクスチャを二つ作成します。
テクスチャ毎にマテリアルを作成したら、適用したい面を選択した状態でマテリアルの「割り当て」をクリックするだけです。
f:id:bluebirdofoz:20170905022137j:plain

完成後のモデルをFBXに出力して Unity に取り込んだのがこちら。
f:id:bluebirdofoz:20170905022146j:plain
ちゃんとマテリアルが分かれてますね。色々利用方法が考えられそうです。

BigscreenでVR映画鑑賞をする

今日は久しぶりにVRの話題です。
Oculus rift を使って映画鑑賞をしてました。

利用したのは Bigscreen というアプリです。
f:id:bluebirdofoz:20170904032328j:plain

Bigscreen は動画再生用のアプリという訳ではなく、VR空間でPC画面を操作するアプリです。
逆に言えば、PC画面で全画面表示できるものならば何でもVR空間で鑑賞可能です。
YouTube の動画やニコニコ動画にも使えるため、動画再生用アプリよりもその面では使い勝手が良いかもしれません。

そして先日、Bigscreen のアップデートにてVR空間にシアターというVR空間が追加されました。
名前の通り映画館のVR空間でPC画面を表示できるため、まるで映画館で鑑賞しているように動画鑑賞が可能です。

個人的に拘ってるなぁと感じるのが、このシアターというVR空間。他に観客のアバターがしっかり居るんですよね。しかも気にならない程度に動いている。
アプリでは画面の光度もVR空間にしっかりフィードバックされています。暗いシーンだと周りが良く見えません。
そこでパッと明るいシーンになると、他の観客やシアターが見えるんです。

気が付けば本当に映画館に居る気分で没入していました。
解像度の問題から字幕付きの映画は文字が読みにくいなどの問題があるかも知れません。
しかし、それ以外では十分に鑑賞に耐えますし、映画鑑賞が楽しくなるアプリでした。


……で。Bigscreen も Google Earth のときと同様、以下の方法でスクリーンショットが撮れないアプリでした。
blog.cluster.mu
bluebirdofoz.hatenablog.com

必死こいて情報を探して、以下のURLで有志が配布しているキャプチャソフトを発見、利用しました。
forums.oculus.com

しかし、こちらも Home 画面など一部はキャプチャ可能になったものの、Bigscreen では機能せず。
再びキャプチャは断念することになりました。

個人的には Oculus のアップデートでキャプチャ機能を何よりも提供してほしい。
普段は別に困らないんですが、他人に体験の凄さを全く宣伝できないこのもどかしさは結構辛い。

因みに HTC Vive の方はソフトウェアで対応できてるみたいです。羨ましい。
www.vive.com