デコシノニッキ

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

MRTKv2のRelease内容

MRTKv2が遂にリリースされました。(発売迫っているのかな(‘ω‘ )wktk

microsoft.github.io

2.0でのアップデート内容を整理していきます。

Package

  • Foundation
  • Extension
  • Tools
  • Examples

の4つから構成されており,この中でコアになるパッケージはFoundationです。
Toolsは,後述するDependencyWindowやScreenShotUtility,MSBuildといったMRTKの動作そのものには関係しないものが含まれています。
Extensionsには現状含まれているのはSceneTransionServiceだけみたいですが,コアの仕組みとしてはいらないけど,あると開発に便利くらいの立ち位置でしょうか。

f:id:haikage1755:20190822160320p:plain:w450

Release Note

BoundingBox

  • Improvements

    • ハンドルアセットのサイズとスケールロジックの正規化
    • ハンドルアセットのサイズが1mになった
    • デフォルト値とExampleがアップデートされた
  • New features

    • 近接によるアニメーションハンドル
    • HoloLens2シェル(Home画面のこと)の動作と一致
    • ハンドルは手が近くにあるときのみ表示されるよう構成可能になった
  • New example scene

    • BoundingBoxExample SceneがExample packageに追加された

Clipping Example

MRTK standard shaderの新しいClipping機能を使ったデモがExample packageのClippingExample sceneという名前で追加された。

CoreServices

CoreServices というstatic classはMixedRealityServiceRegistryと連携して、コアサービスのインスタンスを取得するための高速で便利なメカニズムが追加された。

Default HoloLens (1st gen) profile

HoloLens (1st gen) 開発向けにパフォーマンスを考慮して設定されたプロファイルが追加された。
設定を適応するにはActive ProfileにDefaultHoloLens1ConfigurationProfileを設定してください。

Dependency window

どのアセットがお互いに依存関係にあるかを提示するDependency Windowが追加されました。このツールで、どのアセットがプロジェクトに含まれていて使われていないかを確認することができます。

Example: Launch applications from within a Unity app

Example packageのHandInteractionExamples sceneでは、外部アプリを立ち上げることができるLaunchUriのデモがあります。
(HoloLens2からは3Dアプリ内で、2DUWPアプリを1つまで立ち上げることができるようになっています。)

Extension Service Creation Wizard

シングルトンからサービスへの移行は困難な場合があります。Extension Service Creation Wizardは、開発者が新しいサービスを簡単に作成できるようにすることで、ドキュメントとサンプルコードを補完します。

Fingertip Cursor

Fingertip Cursor(指先カーソルのこと)がHoloLens 2 shellによりマッチするようにアップデートされました。

Hand Menu Graduated from Experimental

HandConstraintHandConstraintPalmUpソルバーが公式機能として使えるようになり、ドキュメントも改善されました。
HandConstraintPalmUpには、アクティブ化する前に手の指が同一平面上にあることを強制するトグルがあります。(要は、手の指がまっすぐ揃っていないとダメという条件がつけられる)

HoloLens 2 Button

HoloLens 2 shell にマッチするように多くのビジュアル的改善がなされました。

  • ビジュアルの圧縮
  • 遠方のインタラクションのサポート
  • フォーカスハイライト
  • Shader effect

HoloLens2 スタイルの丸型ボタンが追加されました。

HoloLens 2 Shell Parity

このリリースで、MRTKが更新され、HoloLens 2 shellの動作とビジュアルの機能がよりよく反映されます。このGithub issueは変更について説明しています。

IMixedRealityRaycastProvider

Input systemがアップデートされ、IMixedRealityRaycastProviderのカスタム実装を通して、raycastをカスタマイズできるようになりました。

Input Systemのプロファイルで、使いたいraycast providerを指定します。
f:id:haikage1755:20190822112635p:plain

Improved solvers

Solverは左利き/右利きに固定される代わりに、最初に利用可能なハンド/コントローラで制御できるようになりました。Tracked Target Typeの古い値タイプは廃止されていない値に更新する必要があります。

f:id:haikage1755:20190822112805p:plain

Input animation recording

頭部の動きと手の追跡データをアニメーションファイルに保存できる記録システムがあります。記録されたデータは、Input Simulation Systemを使用して再生できます。

MRTK Standard Shader

MRTK Standard ShaderはUnityのLight weight scriptable render pipelineをサポートするようになりました。

追加の改善項目

  • Warningと"Fix Now"ボタンが、Enable Depth Buffer Sharingが有効になっていて、深度を書き込まないマテリアルに対して表示されるようになりました
  • 近接ライトには、マテリアルごとのカラーオーバーライドと、近接するシャドウを模倣するSubtractive Lightオプションがあります
  • Clipping primitevesは、ビルド時にShader順序を知る必要がなく、実行時にオン/オフが切り替えできるようになりました
  • Addaptive と transparentマテリアルが正しくクリッピングされるようになりました。Blend Clipping Width と呼ばれる非不透明またはカットアウトマテリアルの新しいプロパティにより、開発者はクリップブレンドの幅を調整できます
  • 三角形の背面の向きの照明が正しくなりました

Optimize Window

Optimize WIndowは、Unityで最高のパフォーマンスを実現するために、Mixed Reality Projectを構成するプロセスを自動化し、教えてくれるユーティリティです。

Radial Solver

垂直方向の配置が改善されました。"User Fixed Vertical Position"をオンにして、垂直方向の動きをロックし、Shell styleのtag-alongに沿った動きを実現します。ToggleFeaturePanel prefab sceneのlazy-following tag-alongの例でふるまいを確認できます。

Scene System

Scene Systemは1つ以上のシーンを含むアプリケーションをサポートします。

Service managers(experimental)

このリリースでは、service managerが追加され、Spatial Awareness Systemなどの特定のMRTK機能を個別に簡単に追加できるようになりました。
これらのService ManagerはFoundationパッケージの一部としてインポートされ、MixedRealityToolkit.SDK \ Experimental \ Featuresフォルダーにあり、開発中のものです。

Service manager prefabは、次のサービス用に提供されています。

  • BoundarySystem
  • CameraSystem
  • DiagnosticsSystem
  • InputSystem
  • SpatialAwarenessSystem
  • TeleportSystem (requires the Input System)

使用するには、目的のPrefabをheirarchy にドラッグアンドドロップし、プロファイルを選択します。

Slate

  • Improved

    • 指の近接に基づいて影を追加してslateの使いやすさを改善
    • Follow me のふるまいがHoloLens 2 shell のふるまいと一致するように、Radial Solverを改善
  • Fixed

    • Flatted bounding boxで修正された境界線の厚さの問題

SpatialObjectMeshObserver

Spatial Awareness Systemを使用する際の開発者の生産性を向上させるために、SpatialObjectMeshObserverを追加しました。このObserverは、インポートされた3Dモデルからメッシュデータを読み取り、それらを使用してHoloLens 2などのデバイスから環境データをシミュレートします。
SpatialObjectMeshObserverはデフォルトのプロファイルでは有効になっていません。この機能の使用方法については、Spatial Awareness Getting Startedを参照してください。

Take Screenshot

Editor内で高解像度のスクリーンショットをキャプチャするために、Take Screen shot Utilityのメニュー項目(Mixed Reality Toolkit > Utilities > Take Screenshot)が追加されました。スクリーンショットは、ドキュメントやメディア用の画像を簡単に合成する際に使用するために、透明な透明色でキャプチャできます。

UX controls

次のリストにある次のUXコントロールは、コードからインスタンス化および構成できるようになりました。

  • BoundingBox
  • ManipulationHandler
  • HandInteractionPanZoom
  • Interactable (basic features)

Updated architecture documentation

architecture documentationが新しいバージョンになりました。

Known Issue

Extension Service Wizard

Extension Service Wizardを使用する場合、インスペクターの生成やプロファイルの生成は実際にはオプションではありません。 これらのいずれかの選択を解除して拡張サービスを作成しようとすると、次のページでエラーが発生します。 さらに、ユーザー用に作成された拡張サービスは、実際には作成されなかったScriptableObjectプロファイルのプロパティを作成します。 これにより、プロパティ行が削除されるまでコンパイラエラーが発生します。

現在の回避策の手順:

  1. 拡張サービスウィザードのエラーメッセージを無視する
  2. 作成された* ExtensionService.csファイルを開き、存在しないプロファイルへの参照を削除する

Long paths

Windows上でビルドする場合、255文字のMAX_PATH制限があります。 Unityはこれらの制限の影響を受け、解決された出力パスが255文字より長い場合、バイナリのビルドに失敗する場合があります。

これは、Visual Studioで次のようなCS0006エラーとして現れる可能性があります。

CS0006: Metadata file 'C:\path\to\longer\file\that\is\longer\than\255\characters\mrtk.long.binary.name.dll' could not be found.

これは、Unityプロジェクトフォルダをドライブのルートに近づけることで回避できます。次に例を示します。(まじか)

C:\ src \ project

Runtime profile swapping

MRTKは、実行時のプロファイルスワッピングをサポートしています。 この機能は、future releaseで調査中です。

Text overflow in the some of the scroll view example when deployed with 16-bit depth buffer

Scroll view exampleで作成された例は,デバイスが16bit深度バッファで構成されている場合,デバイス上でテキストがはみ出ます。24bit深度を使用してこれらのサンプルシーンを構築します。(これはEnableDepthBufferSharingの設定のことですね。詳しくはこちら

Unity 2019: Could not copy the file HolographicAppRemoting.dll

Unity 2019用のWindows Mixed Realityパッケージのバージョン3.0.0には既知の問題があります。プロジェクトにこのバージョンがインストールされている場合、Microsoft Visual Studioコンパイルするときに次のエラーが発生します。

この問題を回避するには、Unityエディターの[ウィンドウ]> [パッケージマネージャー]を使用して、新しいバージョンを確認するか、バージョン3.0.2にロールバックしてください。

VR/Immersive devices: Content in some demo scenes is placed below the user

Examplesパッケージに含まれるデモシーンの一部は、HoloLensデバイス用に最適化されています(ヘッドセットのy位置は0です)。 これらのシーンは、VR /イマーシブデバイスで実行されている場合、ユーザーの下にオブジェクトを配置できます(ヘッドセットのY位置は床からの距離です)。 この問題を回避するには、階層でシーンコンテンツオブジェクトを選択し、トランスフォームの位置Yの値を1.5(1.5メートル、または優先ヘッドセットの高さ)に設定します。

[デコシノニッキ]は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。」