夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

HoloLensの移動環境モードを試す。

本日は実験枠です。

昨日HoloLensの移動環境モードを有効にしました。今回は実践編です。

〇移動環境モードとは?

 Microsoft HoloLensでは周囲の空間をスキャンするSpatial Awarenessと6Dofの加速度センサーを使用してSLAMを実現しています。

 これによって非常に正確な自己位置推定を行っていますが、反面いくつかの環境上での問題もあります。

 そのうちの一つに乗り物など揺れが生じる環境内ではうまくトラッキングができないという問題があります。

 今回はこのような問題で従来使用することが難しいとされていた船舶上での使用を可能とするためのモードが提供されました。

〇移動環境モードを有効にする。

移動環境モードはデバイスポータルから有効にできます。

redhologerbera.hatenablog.com

〇電車内で移動環境モードを試す。

今回は環境として電車を選びました。

筆者は以前にも山手線で実験を行っていたため比較もできました。

youtu.be

移動環境モード適応前の状態では次のようになります。

youtu.be

移動環境モード適応前では発車、停車時の加減速でホログラムが飛び、TrackingLostをしていることがわかります。

また、ホログラム安定時でも移動しようとする際にホログラムが小刻みに揺れ動いたり、不安定であることがわかります。

しかし移動環境モード適応後はホログラムの不安定さは見られなくなりました。

 移動環境モード適応中は静的環境下での動作に支障が出る可能性がありますが、HoloLensの活動範囲を広げることができるという意味でとても素晴らしい機能です。

 現在デバイスポータル経由での有効無効ですが、デバイスの設定画面などで設定できるとより使いやすいと感じます。

HoloLens 2の移動環境モードを試す。(insiderBuild)

本日はHoloLensのOSビルド(20348.1405)で追加される新しい機能、移動環境モード(Moving Platform Mode)を試します。

現在この機能はインサイダービルドであり、通常提供されているOSでは使用できません。

〇移動環境モードとは?

 Microsoft HoloLensでは周囲の空間をスキャンするSpatial Awarenessと6Dofの加速度センサーを使用してSLAMを実現しています。

 これによって非常に正確な自己位置推定を行っていますが、反面いくつかの環境上での問題もあります。

 そのうちの一つに乗り物など揺れが生じる環境内ではうまくトラッキングができないという問題があります。

 今回はこのような問題で従来使用することが難しいとされていた船舶上での使用を可能とするためのモードが提供されました。

〇InsiderBuild 20348.1405

indeiderBuildはHoloLensにかかわらずWindowsPCすべてで使用することができる一般リリース前のOSビルドを先行的に入手することができるプログラムです。

 基本的にWindowsに追加される新機能の先行フィードバックを得ることやバグや病弱性などの不具合の発見を行うことを想定しています。

 HoloLensの場合通常のWindowsPCと提供されているOSが違いHoloLens用のWindowsが提供されているためその新機能もまたHoloLens専用の機能となっています。

〇船舶モードの使用

移動環境モード(MPM)はOSビルド20348.1405が導入されている場合デバイスポータル経由で有効化します。

①デバイスポータルを開きます。

f:id:Holomoto-Sumire:20210921080517p:plain

②サイドバーから[System]を選択します。

HoloLensのOSが対応している場合は[Moving Platform Mode]が表示されます。

f:id:Holomoto-Sumire:20210921081003p:plain

チェックボックスにチェックを入れ[Moving Platform Mode]を有効にします。

f:id:Holomoto-Sumire:20210921081203p:plain

有効にした場合、静止環境ではトラッキング性能が低下することがあるようです。

最後にデバイスを再起動することで有効になります。

〇ドキュメント

docs.microsoft.com

Unity ArtEngineを試す。 導入

本日はUnityのツール[Unity ArtEngine]を試します。

〇Unity ArtEngineとは?

[Unity ArtEngine]はUnityが提供するアーティストやグラフィックエンジニアのためのツールです。

ArtEngineはUnityによって提供されているUnityStationのYoutube動画で概要に関して解説がされています。

www.youtube.com

以下は筆者のまとめです。    近年のハードウェア側の進化に合わせて3DCGはより高質に、リアルになっていきましたが、それに合わせてグラフィックエンジニアの作業工数や時間は膨大になっているという問題があります。

 UnityArtEngineではディープラーニングを用いて、膨大なパラメータで素材を編集する従来のプロシージャルなツールではなく素材に合わせ手法を変化させ最適な処理を行うツールとして生まれました。

〇ArtEngineのライセンス

通常のUnityEngineの拡張機能やPackageなどではなく全く別のツールとして提供されています。

また、通常のUnityEngineでは[Personal]のライセンスを用いることで非商用の個人の利用であれば無料で使用することができます。

 しかし、この[Unity ArtEngine]はUnityEngineとは別のライセンス契約が必要で、無料で使用するプランはありません。

 ただし30日間の無料トライアルが行えるため今回は試しで導入します。

〇導入

①Unity ArtEngineのサイトを開きます。

unity.com

②[無料で試す]を選択します。

f:id:Holomoto-Sumire:20210920170103p:plain

③購入画面へ飛びます。ここでは30日無料となっています。

f:id:Holomoto-Sumire:20210920170132p:plain

※契約の自動更新が有効になっている場合自動で有料プランが適応されるようなので、30日の無料期間が終わる前に継続かキャンセルを選択する必要があります。

④ページ下部の[購入を続ける]を選択します。

f:id:Holomoto-Sumire:20210920170412p:plain

⑤必要に応じてUnityへサインインします。

f:id:Holomoto-Sumire:20210920170611p:plain

⑥最後に購入画面で確認を行うことでライセンスの購入が行えます。

⑦完了するとUnityのアカウントのメールアドレスにメールが届きます。

筆者環境ではなぜか文字化けメールが来ました。(iPhoneで見たら正常に表示されました。)

f:id:Holomoto-Sumire:20210920170832p:plain

⑧Unityのマイページを開きます。

UnityArtEngineのシートが付与されていることが確認できます。

f:id:Holomoto-Sumire:20210920171227p:plain

⑨シートの歯車マークからマネージ画面へ飛びサブスクリプション画面を開きます。

ここで自動更新を設定できます。デフォルトでオンになっているようなのでオフにしました。

f:id:Holomoto-Sumire:20210920171348p:plain

⑩メールに記載されていたUnityArtEngineのダウンロードサイトを開きます。

1.6Gbの容量が必要です。

⑪ダウンロードしたインストーラーを実行します。

f:id:Holomoto-Sumire:20210920175101p:plain

インストールが完了するとArtEngineが起動します。

⑫サインインを選択します。

f:id:Holomoto-Sumire:20210920175523p:plain

⑬[New license Activation]で新規のライセンスをアクティブにします。

f:id:Holomoto-Sumire:20210920175705p:plain

⑭正常に完了するとArtEngineが起動します。

f:id:Holomoto-Sumire:20210920175821p:plain

f:id:Holomoto-Sumire:20210920175856p:plain

次は実際にテクスチャを作っていきます。

Varjo XR-3のプロジェクトを作成する。その③ HandTrackingを使用する。

本日はVarjo XR-3の開発Tips枠です。

〇Varjo XR-3とは?

Varjo XR-3はVarjo社が開発、販売するハイエンドのXRデバイスです。

VRだけでなくHoloLens同様のMRも一台で体験できるデバイスで、ビデオシースルー式のディスプレイを持ちます。

特徴として非常に精度の高い解像度で、肉眼レベルとも呼ばれるほどの描画を可能としています。

varjo.jp

 使用するために求められるPCのスペックが以上に高い代わりにUnityのハイエンドレンダーパイプライン[HDRP]を用いての開発が行えます。

www.elsa-jp.co.jp

 ちなみにこのVarjoを動かすための最小GPUスペックはNvidia Goforce RTX3080以上となっています。

 詳細のスペックに関しては日本での代理店であるELSAジャパンのページに記載があります。

〇VarjoXR-3のHandTracking

 Varjo XR-3には[SteamVR]を用いることでVIVEのコントローラーを使用することができますが、HoloLens 2同様専用コントローラーが付属しておらず、HandTrackingを用いて操作を行います。  

 Varjoでは[UltraLeap(旧LeapMotion)]が内蔵されており、Unity上での開発ではこれを用いて開発を行います。

 Varjo用のHandTrackingとしてLeapMotionのSDKをもととしたPluginが以下のGithubから提供されています。

github.com

githubリポジトリからプロジェクトをダウンロードします。

②Assets内の[Plugin]をUnityプロジェクトのAssets直下にインポートします。

f:id:Holomoto-Sumire:20210918224718p:plain

Pluginのインポートが完了するとLeapMotionおよびMRTKのダイアログが出現します。

f:id:Holomoto-Sumire:20210918225149p:plain

エラーがなければ×でダイアログを削除します。

以上でHandTrackingのプラグインの導入が完了しました。

〇MRTKの設定

MRTKでLeapMotionを使用するための設定を行います。

①上部ワールドメニューから[MixedReality]→[Toolkit]→[Utilitys]→[LeapMotion]→[Integration LeapMotion Untiy Model]を選択します。

f:id:Holomoto-Sumire:20210918225342p:plain

この操作によってMRTK側でLeapMotionの機能が使用できるようになります。

以上で設定が完了しました。

Varjoを接続してUnityを実行することでHandTrackingを行うことができます。

youtu.be

Varjo XR-3のプロジェクトを作成する。その② MRTKの導入

本日は最先端のXRデバイスVarjo XR-3の開発に関するTipsです。

〇Varjo XR-3とは?

Varjo XR-3はVarjo社が開発、販売するハイエンドのXRデバイスです。

VRだけでなくHoloLens同様のMRも一台で体験できるデバイスで、ビデオシースルー式のディスプレイを持ちます。

varjo.jp

特徴として非常に精度の高い解像度で、肉眼レベルとも呼ばれるほどの描画を可能としています。

 使用するために求められるPCのスペックが以上に高い代わりにUnityのハイエンドレンダーパイプライン[HDRP]を用いての開発が行えます。

 ちなみにこのVarjoを動かすための最小GPUスペックはNvidia Goforce RTX3080以上となっています。

 詳細のスペックに関しては日本での代理店であるELSAジャパンのページに記載があります。

www.elsa-jp.co.jp

〇Varjoのプロジェクトを作成する。

先日Varjoを使用したUnityでのプロジェクトを作成しました。

現在VarjoはUnity2019.4以降をサポートしており、OpenXRおよびUnity XRSDKに対応しています。

redhologerbera.hatenablog.com

また、HandTrackingを使用することができ、これにはUltraLeap(旧LeapMotion)が内蔵されており、SDKもLeapMotionのものを使用します。

ここでMixedRealityToolkit(MRTK)を使用します。

MRTKはLeapMotion、UnityXRSDK、OpenXRのすべてをサポートしています。

①MixedRealityToolkitの導入

[MixedRealityFeatureTool]を使用してMixedRealityTolkitをプロジェクトに導入します。

f:id:Holomoto-Sumire:20210916205307p:plain

[MixedRealityFeatureTool]の使い方に関しては過去の記事を参考にしてください。

redhologerbera.hatenablog.com

②Unityを起動するとMixedRealityToolkitが導入されていることがわかります。

f:id:Holomoto-Sumire:20210916211020p:plain

③上部ワールドメニューから[MixedReality]→[Toolkit]→[Add to Scene And Configure...]を選択します。

f:id:Holomoto-Sumire:20210916211112p:plain

この作業によってMRTKのコンポーネントがシーンに追加されます。

f:id:Holomoto-Sumire:20210916211253p:plain

〇MRTKの構成

次にMRTKの構成を設定し、Varjoで稼働できるようにします。

①シーン上の[MixedRealityToolkit]オブジェクトのインスペクタからMRTKの構成を[ObsoluteXRSDKConfigurationProfile]に設定します。

f:id:Holomoto-Sumire:20210916211411p:plain

以上でVarjoで動かすことができるようになりました。

次回ハンドトラッキングの対応を行います。

XRMTG2021年9月に登壇しました。

本日はイベント参加枠です。

〇XRMTGとは?

XRMTGは関西のXRコミュニティ[大阪駆動開発]を中心に北海道のXRコミュニティ[DoMCN]や福岡のコミュニティなどが合同で月一回第三水曜日に行われるイベントです。

XRMTGは少人数で緩くxRに関する知見を共有するイベントで2時間ほどで毎回4名ほどが登壇しています。

 筆者も準レギュラー並みの頻度で登壇させていただいています。

〇今月のHoloニュース(山地さん)

山地さんは毎回XRMTGのイベントの最初で今月のxRに関するニュースを共有していただいています。

今回は次のような内容が共有されました。

・HoloLens 2×Dynamics365で広がる職域拡大

 バンダイナムコによる3Dプリンターでの試作品の出力をDynamics365とHoloLensを用いてハンディキャップを持つスタッフを支援する取り組みです。

・HoloLens Insiderビルドで追加される新しい機能

船舶向けに動く環境下での使用をより安定させたモードがOSの先行ビルドで提供されているようです。

筆者のデバイスもInsiderビルドのものなのでぜひ取り入れたいです。

docs.microsoft.com

・MagicLeap Oneで消火体験コンテンツ

 HoloLensに並ぶMixedRealityデバイスMagicLeapOneでの消化体験コンテンツがリリースされたようです。

・NrealLight向けのSTYLYが提供

STYLYはアーティストを含め様々な人がvirtualな世界を共有するプラットフォームです。

[STYLY for Nreal]がリリースされたようです。

styly.cc

〇VRChatアバターフィギュア化計画(森山弘樹さん)

お二人目です。森山さんはVTuberやVRChatアバターをそのままの姿で3Dプリンターで出力するサービスの「クイックフィギュア事業」を行っているようです。

映像用のアバターを無改造で3D出力するために独自開発したボクセルポリゴン変換によって自動的にボクセル変換し、3Dのレンダリングテクニックを持って立体データを作り出して出力しているようです。

 未来のイベントでvirtual空間のシンボルとなるオブジェクトをそのまま出力してお見上げとして持ち帰ることができるようです。

〇VarjoXR-3で新しいMixedRealityを

筆者の登壇です。

普段であればHoloLens関連の知見を共有しているのですが、今回は新しいXRデバイスVarjoXR-3に関する開発知見の共有を行いました。

 本ブログでは昨日から共有していますが、MRTKで開発することができたのでその知見を共有しました。

 明日以降の記事で詳しい開発手順は共有いたします。

 

redhologerbera.hatenablog.com

Microsoft Meshのデータ構造をのぞいてみた

四人目は宮浦さんです。

[MicrosoftMesh]はMicrosoftより提供されている複数人共有のHoloLensを使用したサービスです。

今回はMeshのデータがどこで管理されているのかを調べたようです。結果OneDriveで管理されているようです。

Apps/MeshApps(Preview)いかで管理されアイテムなどを増やしたければMy Contentいかに配置することでJsonで管理されているようです。

次回は10月20日水曜日に行われます。

Varjo XR-3のプロジェクトを作成する。その① MRTKで使用する準備

本日はMRTKの実験枠です。

肉眼レベルで描画ができる業務用XRデバイスVario XR-3でMRTKを使用しました。

〇Varjo XR-3とは?

Varjo XR-3はVarjo社が開発、販売するハイエンドのXRデバイスです。

VRだけでなくHoloLens同様のMRも一台で体験できるデバイスで、ビデオシースルー式のディスプレイを持ちます。

varjo.jp

特徴として非常に精度の高い解像度で、肉眼レベルとも呼ばれるほどの描画を可能としています。

使用するために求められるPCのスペックが以上に高い代わりにUnityのハイエンドレンダーパイプライン[HDRP]を用いての開発が行えます。

〇Varjoのプロジェクトを作成する。

VarjoのプロジェクトをUnityで作成するためにはUnity2019以上が推奨されています。今回はUnity2020.3.18f1を用います。

①新規でプロジェクトを作成します。ここではテンプレートからHDRPを選択しています。

f:id:Holomoto-Sumire:20210914205447p:plain

②Unity上部のワールドメニューから[Window]→[PacageManager]を開きます。

f:id:Holomoto-Sumire:20210914210042p:plain

③上部の[+]アイコンから[Add Package from git Url...]を選択します。

f:id:Holomoto-Sumire:20210914210056p:plain

④[https://github.com/varjocom/VarjoUnityXRPlugin.git]を入力します。

f:id:Holomoto-Sumire:20210914210427p:plain

これでVarjoのパッケージがインポートされます。

⑤[Sample]をインポートします。

f:id:Holomoto-Sumire:20210914210615p:plain

以上でVarjoXRPluginの導入が完了しました。

⑥[Project Settings]を開き[XR Plugin Management]を開きます。[Varjo]にチェックを入れます。

f:id:Holomoto-Sumire:20210914211306p:plain

⑦上部ワールドメニューから[GameObject]→[XR]→[Convert MainCamera To XR Rig]を選択します。

f:id:Holomoto-Sumire:20210914212721p:plain

この作業によりMainCameraがXR Rigへ切り替わります。

f:id:Holomoto-Sumire:20210914212823p:plain

以上でVarjoの設定が完了します。ヘッドセットをつないでエディタを実行することでVarjoのディスプレイでUnityのデバッグ作業が可能になります。