戯言日記

ホロレンジャーの戦いの記録

追っかけ Insider Preview Build v16286, 16291

風邪引いている間に一気に更新がきてました

v16291については特に更新はないので、16286について書きます。今回はUnityで出ていたバグが直ったみたいです。

Build 16288

  • Unityで毎フレーム、"Failed to get rendering parameters for main camera - view transforms may get out of sync - 0x8000000e"のエラーが出る問題を修正。
  • UnityのPlay状態でクラッシュする問題を修正。
  • Windows DefenderがUnityビルドに干渉し、Sharing Violationで失敗しうる問題を修正。
  • Visual Studio Graphics DiagnosticsがWindows Mixed Realityで動作しているImmersiveアプリをデバッグできるようになりました。Windows Mixed Realityでは、GPUの使用はサポートされていないので注意してください。

Immersive headset ドライバの更新 16289

Immersive headset ドライバの改善 16289

  • 目立った小刻みにコントローラが震える問題の修正。現在の体験は大幅に改善されています。
  • コントローラファームウェアの更新でループしたり完了までに長い時間がかかる問題の修正

追っかけ Insider Preview Build v16286

Windows Insider flight and driver notes

今回は(コントローラはまだ関係ないですが)ヘッドセットドライバが更新されました。

このドライバの更新を受け取るためには、immersive headset がPCに接続された状態でWindows Updateします。このヘッドセットドライバにより、ファームウェアのアップデートがモーションコントローラにプッシュされ、 Windows Mixed Reality モーションコントローラが大幅に改善されます。

Bluetoothでモーションコントローラを使用するには、Windows 10 build 16281以降、及びヘッドセットドライババージョン16286を使用していることを確認してください。Bluetoothをサポートするようにコントローラをアップデートするには、コントローラファームウェアのアップデートの詳細な手順に従ってください。また、Bluetoothのベストプラクティスを参照してください。

ヘッドセットドライバ 16286の改善

  • 電源状態遷移の改善
  • テレメトリの改善
  • モーションコントローラのバッテリー寿命とステータスレポートの改善
  • モーションコントローラのアナログトリガーのデッドゾーン調整
  • 安定性の向上

ヘッドセットドライバ 16286の既知の問題

  • コントローラファームウェアのアップデートでループしたり、時間がかかったりすることがある。回避策: ユーザーはCliff Houseにいるときにコントローラの設定/電源を設定することでループを終了させたり、回避することができる
  • モーションコントローラが小刻みに振動する
  • モーションコントローラがCliff House内で点滅したり消えたりすることがある。回避策:HMDを抜き差しする


文にもありますが、更新する際はヘッドセットをPCに接続した状態で更新する必要があるようです。
バグの回避策はパワープレイですね…

Unity2017.2 b11 XR抜粋

unity3d.com

10からの変更

既知の問題

f:id:haikage1755:20170912234242p:plain:w300

  • GestureRecognizerイベントのheadPoseのデータが誤っている(変更なし)
  • HoloLensでのVuforia Augmented Reality Supportが高遅延
  • [SPS] RTにレンダリング時に Occulusion メッシュが表示される(変更なし)
  • [VR Oculus Compositor Splash] Particle SystemがVRを有効にしたときビルドでは動作しない(変更なし)

変更

f:id:haikage1755:20170912234947p:plain:w300

  • Camera.streoMirrorModeが廃止

修正

変更なし

2.0の機能と不具合の修正と変更点

改善

f:id:haikage1755:20170912235137p:plain:w300

  • Oculus Spatializerが1.17へアップデート

修正

f:id:haikage1755:20170912235234p:plain:w300

  • HoloLensでアプリが初期化に失敗するのを修正 (941004)
  • コントローラが床付近にあると報告する結果になる座標系の問題を修正 (946538, 944111)
  • 異なるサイズのレンダーテクスチャ間でblitting(ビットマップなどを転送)した時にSingle-Passステレオのビューポートが誤っている問題を修正 (945940)
  • WindowsMRのコントローラのInputTracking APIsを修正 (942799)
  • pointerとgrip dataのスワッピングだけでなく、gripが無効になるのを修正 (921316)

【翻訳】Performance recommendations for immersive headset apps

ハードウェアターゲット

Windows Mixed Reality Ultra PCは、discrete graphicsと追加の要件を備えたデスクトップとラップトップによって構成され、90Hzでの体験をサポートします。

Windows Mixed Reality PCは、内蔵graphicsと追加の要件を備えたデスクトップとラップトップによって構成され、60Hzでの体験をサポートします。

あなたの体験だけに合わせてWindows Mixed Reality Ultra PCをターゲットにすると、確かにより多くのパワーが得られますが、対象ユーザーを制限することにもなります。逆にWindows Mixed Reality PCを対象とする場合は、より多くのユーザーを対象としますが、ハイエンドのWindows Mixed Reality Ultra PCを使用しているユーザーには、独自のパフォーマンス価値を提供することはできません。したがって、VR体験のためのハイブリッドなアプローチが両者にとってのベストかもしれません。

試験目的で購入できるWindows Mixed Reality PCs と Windows Mixed Reality Ultra PCs のリストがまもなく公開予定です。

パフォーマンス

目標フレームレート

Windows Mixed Reality immersiveヘッドセットでのVR体験の目標フレームレートは、サポートするWindows Mixed Reality互換PCによって60Hzまたは90Hzになります。
現在使用しているPCでは、holographic frame duration(HolographicFrame Class (Windows.Graphics.Holographic) - UWP app developer | Microsoft Docs)を確認するか、Unityでデバイスのリフレッシュレート(Unity - Scripting API: XR.XRDevice.refreshRate)をチェックすることで、目標のフレームレートを判断できます。

CPU予算

近日公開。

コンテンツのガイダンス

Unityアプリケーションのパフォーマンスを最適化する

メインストリームでは2段階のプロセスでパフォーマンスを向上します。まず、アプリの全体的なパフォーマンスを可能な限り向上させることをお勧めします。次に、フレームレートを高く維持しつつも、できるだけ高いビューポート、及びクオリティを実現するために、定義済みのバケット間でビューポートやクオリティ設定を見つけることをお勧めします。我々は、Github上のUnityパッケージ(MixedRealityToolkit-Unity/External/Unitypackages at Dev_Unity_2017.2.0 · Microsoft/MixedRealityToolkit-Unity · GitHub)を介して、これら両タスクを支援するツールを提供しています。(注意: このパッケージには2つのバージョンがあります。使用しているバージョンに対応するものをご利用ください。) このパッケージには、現在のフレームレートのビジュアライザと、適応的なクオリティとビューポートマネージャが含まれています。ビジュアライザには、いくつかの数字を表示します。フレーム間の時間間隔、レンダリングに費やされた時間、現在の推定フレームレート、(互換性の仕様に基づいた)現在使用しているPCのターゲットフレームレート、現在のビューポートスケールファクタと現在のUnityのクオリティレベルです。ビジュアライザには、ビューポートのスケーリングやクオリティ設定を変更することができる入力バインディングがあり、フレームレートやビジュアルクオリティを満たす値を見つけるのを補助します。適応的なクオリティとビューポートマネージャは、アプリケーションのパフォーマンスに基づいてビューポートのスケールとクオリティ設定を更新します。

まず、提供しているリンクからFPSViewportQualityBundle.unitypackageをダウンロードしてください。プロジェクトで、Assets> Import Package> Custom Packageを選択します。
f:id:haikage1755:20170906185547p:plain
次に、Asset package を全てインポートします。
f:id:haikage1755:20170906185849p:plain
f:id:haikage1755:20170906185900p:plain
MixedRealityToolkit> Utilities> Prefabs> PerformanceにあるFPSCanvas prefabを見つけてください。プレハブをSceneのメインカメラの上にドロップすると目の前のcanvas上に情報が全て表示されます。'm'キーで表示のオン/オフを切り替えることができます。パフォーマンスの最適化を開始するには、まずUnity内で開発者設定ではない状態でビルドします。Visual StudioでターゲットをMaster、x64に設定し、デバッグなしで最小仕様のコンピュータ上で実行します。ゲームが始まると、即座にビューポートスケールとクオリティ値が変更できます。デフォルトのキーは '- viewport scale decrease by 0.05, 0.05 is minimum value; ',' - viewport scale increase by 0.05, 1.0 is the maximum value; ',' - decrease quality 1 step; '.' - increase quality 1 step.'です。

このツールを使用して、アプリの全体的なパフォーマンスを向上させるには、次の手順を実行します。

  • 最初に、実際のフレームレートとターゲットフレームレートとの比較を見てください。以下のような全体的な経験を通して、最大の変更が必要な場所を確認します。
    • フレームレートがシーン内でターゲットより一貫して低い場合には、ビューポートの倍率を低くしてみてください。もしこれによってフレームレートが向上されるならば、GPUの問題の可能性があり、シェーダの改善、ポリゴン数の削減、持続的なスクリーンスペースエフェクトの単純化が問題解決に役立つでしょう。逆にビューポートを小さくしてもFPSが改善されない場合は、CPUが問題の可能性があり、スクリプト、アニメーション、フィジクスの単純化が役立ちます。
    • ゲーム内のイベントでフレームレートが低下した場合、パーティクルや一時的なスクリーンスペースエフェクトといったものがフレームレートを低下させている可能性があります。パーティクルの数を減らしたり、スクリーンスペースエフェクトを単純化することで、同じエフェクトを提供しながら適切なフレームレートの改善を得られるでしょう。
  • アプリケーションでパフォーマンス問題の原因となっている可能性のものを特定したら、それらをデバッグするための良いツールはUnityプロファイラです。
    • 一度に1つのオブジェクトを切り替えて全体のレンダリング時間を比較することで、そのシーンで処理時間の多くを占めているシェーダーを見つけることができます。レンダリング時間が長いオブジェクトが見つかった場合、Mixed Reality Toolkitにあるいくつかの高速シェーダとシェーダを交換することができます。また、複雑なオブジェクトをより少ない三角形のメッシュで単純化すれば、速度が向上します。
  • また、Unityはシェーダをコンパイルし、操作の呼び出し回数を表示することができ、相対速度を比較するのに役立ちます。これを確認するには、プロジェクトメニューのシェーダに移動し、インスペクタのメニューで[compile and show code]ボタンをクリックします。Visual Studioのウィンドウには、次のような統計情報が表示されます。

f:id:haikage1755:20170906195236p:plain

アプリ全体のパフォーマンスを向上させたら、同じツールを使用してアプリの適応的なクオリティとビューポートの調整を設定することができます。

Scene内でFPS Canvasを使用すると、適応的なクオリティとビューポートマネージャも取得できます。それを使用するには、ビューポートの倍率とクオリティ設定値を持つクオリティバケットのセットを事前に定義する必要があります。このセットは最も低いクオリティ設定(実行が最も速い)から最も高い設定(多くのCPUとGPUを消費する)までの順で並べる必要があります。バケットのセットは、AdaptiveQualityViewport.csの配列フィールドとしてハードコーディングされています。次のようなコードがあるはずです。

f:id:haikage1755:20170906200835p:plain

デフォルトでは、適応型クオリティマネージャは実行されていません。パブリックフィールドのAdaptiveQualityEnabledをtrueに設定することでオンにすることができます。Unityインスペクタから切り替えることもできます。デフォルトでは、クオリティマネージャは最低クオリティのバケットから開始します。マネージャが動作していなくても、AdaptiveQualityEnabledが有効になっている場合、クオリティとビューポートの設定が最低クオリティのバケットから自動的に設定されます。この動作は、startQvBucketフィールドを設定することで変更できます。Unityインスペクタから変更することもできます。選択する値は、qvBucketList配列の有効なインデックスでなければならないことに注意してください。適応マネージャが実行されると、1フレームのレンダリングに要した時間が分析されます。レンダリング時間がディスプレイのリフレッシュレートの許容フレーム時間に非常に近い(> 95%)か、またはそれ以上の場合、マネージャはクオリティとビューポートの設定を次に低いクオリティバケットに切り替えます。レンダリング時間がフレーム間で許容されるフレーム時間の75%よりも一貫して小さい場合、マネージャは次に高いクオリティのバケットに切り替えます。クオリティの切り替えの閾値は、スクリプトまたはUnityインスペクタで更新できます。

Windows Mixed Reality PCに関する考慮事項

Windows Mixed Reality PC (非Ultra PC)でパフォーマンス目標を達成するには、Unityのクオリティ設定を下げたり、デバイスのビューポートを減らす必要があります。これらの変更は視覚忠実度へ影響しますが、フレームレートが低いとユーザーに酔いを引き起こす可能性がありますので、ゲームを実行する要件として目標フレームレートを向上することを強くお勧めします。ゲームの視覚的な忠実度の低下がスペックの低いマシンで大きすぎると判断した場合は、スペックの低いユーザーにゲームを購入させないようにします。

スクリーンとQuadプレーンの読み込み

近日公開。

デフォルトのレンダリングターゲットサイズ

Windows Mixed Reality immersive headsetは中心視野内の画素密度を高くし、周辺部の画素密度を下げるために提示された画像を歪ませるレンズを内蔵しています。最高の視覚忠実度を得るために、我々はレンダリングターゲットのピクセル密度をレンズ領域の高密度のレンズエリアの中心に合わせて設定しています。このピクセル密度はレンダリングターゲット全体で一定であるため、ヘッドセットディスプレイよりも高い解像度になります。対照的に、他のVRプラットフォームではディスプレイのレンダリングサイズがデフォルトになることもあります。レンズのイメージの中央に正しいピクセル密度を得るためにはこのサイズを大きくする必要があります。つまりもしデフォルト設定を維持すると、アプリが他のVRプラットフォームと比較してより多くのピクセルを描画するかもしれません。これはパフォ-マンスを低下させますが視覚的忠実度は高くなります。他のプラットフォームで高いピクセル密度を達成するためにレンダリングスケールを増やす必要があることが判明した場合。おそらく追加の視覚忠実度を得ることができず、パフォーマンスが低下するためこのプラットフォームではそのロジックを削除する必要があります。

ダイナミック解像度スケーリング

ビューポートスケーリング(ダイナミック解像度スケーリング)は、イメージをデバイスが表示できるレンダリングターゲットより小さくレンダリングし、それらのピクセルからサンプリングして最終イメージを表示する方法です。これは視覚的忠実度と引き換えに速さを得ます。Windows Mixed Realityデバイスは、プラットフォームレベルでのビューポートスケーリングをサポートします。つまり、ビューポートを小さく設定すると(Unity:UnityEngine.XR.XRSettings.renderViewportScale = .7)、Unityはレンダリングターゲットの部分をより小さくレンダリングするようプラットフォームに通知し、プラットフォームはその表示をより小さなレンダリングターゲットの部分から表示を合成します。

MSAA

近日公開。

Windows Mixed Reality PCとUltra PCの検出

近日公開。

パフォーマンスツール

Unityパフォーマンスプロファイラ

Unityプロファイラは各Update関数でどれくらいの処理時間を要しているかを示すので、特にCPUがバインドされている場合は特に便利です。最も正確なパフォーマンス測定値は展開されたUWPアプリケーションのプロファイリングから得ることができます。ビルドされtUWPアプリをプロファイリングするには、開発者ビルドのチェックボックスが有効な状態でInternetClient capabilityを有効にしてビルドしてください。InternetClient capabilityを有効にするには、Edit > Project Settings > Playerを開き、Publisher Settingsを選択し、Capabilitiesの下にあるInternetClientをチェックしてください。パフォーマンスを改善する必要があるSceneが既に分かっている場合は、再生モードを使用して素早く反復することができ、UWPソリューションに比例した改善が見られる可能性があります。ボトルネックGPUにある場合でも、Unity Profilerから開始して、重要なプロセスを実行できます。例えば、Unity階層の全てのオブジェクトをオフにし、レンダリングに特に時間がかかるものを見つけるまで、それらを選択的にオンにすることによって、どのオブジェクトが最もレンダリングの問題を引き起こしているかを特定します。発見したら、オブジェクトを単純化するかまたはシェーダーのパフォーマンスを改善することができます。Mixed Reality Toolkitには、優れた高速なシェーダがいくつか用意されています。

Windows Device Portal

Windowsバイス・ポータルは、ネットワークまたはUSB接続を介してリモートでデバイスを設定し、管理することができます。また、Windowsバイスのリアルタイムパフォーマンスのトラブルシューティングや表示に役立つ高度な診断ツールも提供しています。

Intel Power Gadget

Intel® Power Gadgetはインテル®Core™プロセッサー(第2世代から第6世代のインテル®Core™プロセッサー)をサポートするソフトウェアベースの電力使用量監視ツールです(インテル®Atomプロセッサーはサポートしていない)。プロセッサー内のエネルギーカウンターを使用して、ワット数でのリアルタイムプロセッサーパッケージの電力情報をモニターおよび推定するアプリケーション、ドライバー、およびライブラリーが含まれています。

追っかけ Insider Preview Build v16281

9/1の更新からリリースノートがやっときました。
WinMRのほうは遅延があるみたいですね。。

今回の変更・改善点は特になく既知の問題の報告のみになります。

Windows Insider flight and driver notes

既知の問題

  • モーションコントローラを持っている時、ビームカーソルが小刻みに震える(13425753)
  • オンスクリーンキーボードが、使用困難な程小さいサイズで開く(13405440)
  • ImmersiveモードでCortanaを呼び出そうとすると、モーションコントローラがImmersive内でフリーズする(13427368)


依然モーションコントローラがフリーズする、振動するなど動作が安定しないようです。
一般販売までまだ一か月ほどあるので今後の安定化に期待です。

Unity2017.2 b10 XR抜粋

Unity - What's new in Unity beta Release 2017.2.0b10

9からの変更

既知の問題

f:id:haikage1755:20170905084350p:plain:w300
(特に変更なし)

機能

f:id:haikage1755:20170905082723j:plain:w300
(特に変更なし)

2.0の機能と不具合の修正と変更点

改善

f:id:haikage1755:20170905082845j:plain:w300

  • Vuforiaのアップデート

修正

f:id:haikage1755:20170905083625p:plain:w300

  • Camera.main.ScreenToWorldPoint がMRアプリで無効な結果を返すのを修正
  • WinMRで複数のHolographic cameraを使った時にクラッシュするのを修正
  • iOSのVuforia VRサポート修正。ビルド中にリンクや、非VRモードに戻るのを失敗することがなくなりました
  • エディタ内でXR Assemblyの参照に失敗する問題修正
  • WinMRのDesktopモードでキーボード、マウス、コントローラがエディタ内で動作するようになりました
  • Google VR NDKのアップデート
  • Vuforiaがエディタ内の初回コンパイルでエラーを投げなくなりました

【翻訳】Motion controllers

【参照】
https://developer.microsoft.com/en-us/windows/mixed-reality/Motion_controllers.html

モーションコントローラはMixed Reality内でユーザーが行動するためのハードウェアアクセサリです。モーションコントローラのジェスチャーに対しての利点は、空間内で精確な位置を持ち、デジタルオブジェクトとのきめ細かいインタラクションができるという点です。Windows Mixed Reality Immersive headsetのために、モーションコントローラはユーザーらが自身の世界で行動するための主要な手段になります。

バイスサポート

f:id:haikage1755:20170903173321p:plain

ハードウェアの詳細

youtu.be

Windows Mixed Reality モーションコントローラは、Immersive headset のセンサーを利用して、視覚内の動きを精確かつ応答性良くトラッキングします。つまり、空間内の壁にハードウェアを取り付ける必要はありません。これらモーションコントローラは、Windows Mixed reality immersive headsetsと同じセットアップの簡易性と携帯性を提供します。当社のデバイスパートナーは、これらコントローラを製品化し、小売店で販売する予定です。

f:id:haikage1755:20170903174517p:plain
特徴

セットアップ

開始前に

必要なもの
  • 2つのモーションコントローラセット
  • 単3電池4本
  • Bluetooth 4.0が利用可能なPC
モーションコントローラサポートのためのWindows、Unityのアップデート

1. ツールのインストール(https://developer.microsoft.com/en-us/windows/mixed-reality/install_the_tools)

2. Windows Insider flight と ドライバのページにて現在のソフトウェアの既知の問題とリリースノートの確認

現在のWindowsのバージョンの確認

1. 設定を開く
2. システムを選択する
3. バージョン情報の選択
4. OS BuildWindows Insider flight and driver notesにて指定されているモーションコントローラサポート対応のBuildと一致しているかを確認する
5. システムのバージョンとBuildが異なっている場合、Updateの確認に進んでください

ドライバのバージョンの確認

1. Windowsのスタートメニューを右クリックし、バイスマネージャを選択する
2. Mixed Reality Devicesの直下にあるヘッドセットを右クリックし、プロパティを選択してください
3. ドライバタブをクリックし、ドライバのバージョンWindows Insider flight and driver notesにて指定されているモーションコントローラサポート対応のBuildと一致しているかを確認してください。
4. ヘッドセットのバージョンが指定のものと異なっている場合、ドライバの更新を選択し、ドライバソフトウェアの最新版を自動検索をクリックしてください。

コントローラのペアリング

1. 単三電池を二つコントローラの背面から入れてください。バッテリーカバーは一時的に外したままにしておきます。
2. 内臓のBluetoothの代わりにUSB Bluetoothアダプタを利用する場合は、続行する前にBluetoothのベストプラクティスを確認してください(https://developer.microsoft.com/en-us/windows/mixed-reality/Motion_controllers.html#bluetooth_best_practices)。
3. コントローラのWindowsボタンを押し続けるとコントローラの電源が入るので、ブザーが鳴ったら放してください。
4. LEDが点滅するまでペアリングボタンを押し続けてください。バッテリーカバーを取り付け直してください。
5. 設定->Bluetoothとその他のデバイス->Bluetoothまたはその他のデバイスを追加する->Bluetoothを開き、"Motion controller-Left"または"Motion controller-Right"が現れるまで待ってください。ペアを選択してください。接続されるとコントローラが振動します。
6. 2つ目のコントローラも同様に1-4のステップを実行してください。

コントローラファームウェアの更新

  • PCにImmersive headsetが接続されており、新しいコントローラファームウェアが利用可能な場合、ファームウェアは自動的に次に電源が入ったときにモーションコントローラへプッシュされます。コントローラファームウェアの更新は円状の動きのLEDの発光パターンで示され、1-2分かかります。
  • ファームウェアのアップデートが完了すると、コントローラは再起動、再接続されます。
  • 重要 現在のドライバのバージョンでは、ファームウェアの更新完了後、よりよい体験のためペアリングを解除し再度モーションコントローラをペアリングしてください。

1. 設定->バイス->Bluetooth->Bluetoothとその他のデバイス
2. 以前にペアリングしたコントローラを削除する
f:id:haikage1755:20170903183246p:plain
3. LEDが点滅し始めるまでペアリングボタンを長押しし、ペアリングのキャッシュを削除する。ペアリングモードになったら、各Windowsボタンを長押しして電源を切ってください。(もしくはそのままにしておくと60秒以内にペアリングがタイムアウトします)。これにより、コントローラ上のペアリング情報が削除され、クリーンアップデートに役立ちます。
4. 次に、コントローラを再びペアリングしてください。
5. 両方のコントローラを接続する必要があります。
f:id:haikage1755:20170903195819p:plain

  • コントローラが動作しているかを確認

1. Mixed Reality Portalを立ち上げ、Cliff Houseに入ってください
2. コントローラを動かし、トラッキングが動作するか、ボタンのテスト、テレポーテーションが動作するかを確認してください。

トラブルシューティング

よくある問題

コントローラがずっと再起動で停止している(LEDサイクル後に鳴動)またはコントローラの電源が全く入らない。
1. ファクトリーイメージを取得するためデバイスリカバリを実行します
2. USB経由でデバイスを接続し、ファームウェアの更新が適切に行われるようにします

コントローラファームウェアが正常に更新されたが、コントローラがWindows Mixed Reality homeで正常に動作しない

  • ファームウェアアップデートの後、ペアリングの解除とペアリングを実行する

USB経由でコントローラが動作しない

Bluetoothベストプラクティス

モーションコントローラは、多くの市販の機器に搭載されているものと同じBLuetooth技術を使用しています。モーションコントローラは、最新のPCに搭載されているBluetoothで動作するように設計されています。
もしPCがBluetoothを搭載していない場合、USB Bluetooth 4.0 Low Energy Micro Adapterを購入することを推奨します。
モーションコントローラは、他のBluetootキーボード、マウス、ゲームコントローラと同時に動作することが望ましいですが、キーボード、マウス、ゲームコントローラのモデルに依存します。

USB 2.0ポートに接続されいるUSB Bluetooth Adapterが利用可能か確認していください
 USB Bluetooth Adapterが物理的にHMD USB コネクタ、フラッシュドライバ、ハードドライブ、またはキーボード/マウス用のワイヤレスUSBレシーバから離れてたところに挿し込んでください。

  • もし開いていればBluetooth 設定を閉じてください。バッググラウンドで開いたままにしておくと、Bluetoothプロトコルが余計に多数呼び出されます。
  • Bluetoothヘッドフォンとスピーカの削除、ペアリング解除をし、電源を落としてください。これはWindows Mixed Realityではサポートされていません。Windows Mixed Reality headset のヘッドフォンジャックまたは、内臓のスピーカーによって最高のオーディオ体験が得られます。
  • まだ問題がありますか?Mixed Reality->Input カテゴリからフィードバックハブを提出してください。

もし、コンピュータが既にBluetoothを内蔵しているも、
モーションコントローラにまだ問題があれば、内臓Bluetoothから外付けBluetooth Adapterに置き換えることを検討してください。注意点: デバイスマネージャにて既存の内臓Bluetoothを無効化し、以前に接続したBluetoothバイスを全てペアリング解除/再ペアリングする必要があります。

BluetoothとUSBの切り替え

我々はBluetooth経由でコントローラを使用することを推奨しています。しかしながら、致命的なバグを解決するためにUSBを使う必要がある場合は、以下の手順に従ってUSBからBluetoothまたはBluetoothからUSBへ切り替えてください。

USBからBluetoothへの切り替え

1. USBバッテリーカバーを取り外し、バッテリーを入れてください
2. Bluetooth経由でコントローラをペアリングしてください

BluetoothからUSBへの切り替え

BluetoothとUSBデバイスの両方としてコントローラが列挙されるのを回避するためには、USB経由で接続する前にBluetoothペアリング情報を削除する必要があります。
1.設定->デバイス->Bluetoothとその他のデバイスを開き両方のモーションコントローラを削除します
2. 各コントローラのバッテリーを入れ、Windowosボタンを2秒間押し続けます。
3. LEDが点滅するんでペアリングボタンを押し続けます。
4. ペアリングモードになったら、各コントローラの電源をオフにするためにボタンを長押ししてください。これいよってコントローラからぺリング情報が削除されます。
5. バッテリーを取り出し、USBバッテリーカバーと置き換えます。

バイスリカバリ

もし正常にコントローラが動かず、デバイスの更新ができない場合、工場出荷時の状態に戻すことができます。デバイスを回復するためには、
1. コントローラを抜き、電源をオフにしてください
2. バッテリーカバーを開けてください
3. バッテリーを入れてください
4. ペアリングボタンを長押ししてください
5. ペアリングボタンを長押ししている間、Windows募案を5秒間長押しして電源を入れてください。
6. ボタンを離し、コントローラの電源が入るのをお待ちください。これには最大15秒かかり、デバイスリカバリ中は何も表示されません。ボタンを離した時デバイスの電源がすぐ入る場合は、リカバリボタンのシーケンスが登録されておらず再試行する必要があります。
7. 古いコントローラの関連付けをBluetooth設定から削除します。その後PCと再びコントローラをペアリングしてください。
8. ホストとHMDと接続した後は、デバイスは最新の利用可能なファームウェアに更新します。
9. ファームウェアが更新された後に、正常に動作させるためにペアリングの解除とペアリングを再び行う必要があります。

ライトと提示

f:id:haikage1755:20170903212353p:plain

モーションコントローラのフィードバック/バグの報告

"Mixed Reality"->"Input"カテゴリから(https://developer.microsoft.com/en-us/windows/mixed-reality/give_us_feedback)のFeedBack Hubへ送ってください

Gazing と pointing

Gaze and commitpoint and commitの2つの主要なインタラクションがあります。

  • Gaze and commitでは、gazeを用いてオブジェクトをターゲティングし、選択します
  • Point and commitでは、pointing可能なモーションコントローラでターゲティングし、選択します

モーションコントローラをサポートするアプリは、ユーザーが入力デバイスを選択できるようにgaze-drivenとpointing-drivenインタラクションの両方を有効にする必要があります。

Grip pose vs pointing pose

Windows Mixed Reality は、様々なフォームファクタでモーションコントローラをサポートします。各コントローラの設計は、ユーザーの手の位置と、コントローラをレンダリングする時にアプリケーションがポインティングする時に使用する自然な"前"方向と異なります。
コントローラをよりよく表現するために、各インタラクションソースを利用できます。

  • grip pose: HoloLensによって検出された手のひら、またはモーションコントローラを把持する
  • Immserive headsetでは、このポーズはユーザーの手、または剣や銃といったユーザーの手によって掴まれたオブジェクトを描画するのに最適です。
  • grip position: コントローラを自然に握ったときの掌の中心、左右からグリップの中心位置に合わせる
  • grip orientation's Right axis:完全に5指を開き平らな状態で、掌の法線方向のレイ
  • grip orientation's Forward axis: 部分的に手を閉じたとき、親指ではない指によって形成されたチューブを通した"前方"を指すレイ
  • grip orientation's Up axis: 右と前方方向よって定義される上方向の軸
  • pointer pose:前方をポインティングするコントローラの先端を表します
  • コントローラモデル自体をレンダリングしており、またUIをポインティングするときにraycastするのに最適なです。

Interactions: Low-level spatial input

中核となる手とモーションコントローラのインタラクションは、Select, Menu, Grasp, Touchpad, Thumbstick, そして Homeです。

  • Select はプレスとそれに続くリリースからなるhologramをアクティブにする主要なインタラクションです。モーションコントローラでは、コントローラのトリガーを用いて選択が実行できます。選択を実行する他の方法は、ボイスコマンドで”選択”と言うことです。同じ選択インタラクションをどのアプリ内でも使用することができます。選択は、マウスクリックと同じものであり、一度学習すると全てのアプリに適用されるユニバーサルアクションです。
  • Menu はオブジェクトに作用する2番目インタラクションで、コンテキストメニューをプルアップする、またはほかの2次的なアクションを使う等のために使用されます。モーションコントローラでは、コントローラのメニューボタンで実行することができます。
  • Grasp は自身の手でオブジェクトを直接的に操作する方法です。モーションコントローラでは、しっかりと握りしめることで把持行動出来ます。モーションコントローラは、Grabボタン、Palmトリガ、または他のセンサを用いて把持を検出することができます。
  • Touchpadを使用すると、モーションコントローラのタッチパッドの表面に沿って2次元でアクションを調整し、タッチパッドをクリックすることでアクションを実行ることができます。タッチパッドは、押された状態、タッチされた状態、及び正規化されたXY座標を提供します。XとYの範囲は円形タッチパッドの範囲で-1から1で、中心は(0,0)です。Xでは左が-1で右が1です。Yでは下が-1で上が1です。
  • Thumbstickは、モーションコントローラの親指スティックを円形範囲内で動かすことで、2次元でアクションを調整し、クリックダウンでアクションを実行します。親指スティックはまた、押された状態と正規化されたXY座標を提供します。XとYの範囲は円形タッチパッドの範囲で-1から1で、中心は(0,0)です。Xでは左が-1で右が1です。Yでは下が-1で上が1です。
  • Homeはスタートメニューに戻るための特別なシステムアクションです。これはキーボードおWindowsキー、またはXboxコントローラのXboxボタンを押すのと同じです。モーションコントローラのWindowsボタンを押すとホームに戻ることができます。また「Hey Cortana, Go Home」ということで、いつでもスタートに戻ることができます。システムによって処理されるため、アプリケーションは、ホームアクションに反応できません。

Composite gestures: High-level spatial input

ハンドジェスチャとモーションコントローラの両方を追跡して共通の高レベルコンポジットジェスチャを検出することができます。これにより、ユーザーが手やコントローラを使用して終了するかどうかにかかわらず、アプリが高水準のタップ、ホールド、操作およびナビゲーションジェスチャーを検出できるようになります。

[研究者になりたかった青二才の戯言日記]は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。」