皆様、こんにちは!
以前、こんなエントリを書いたのですが、あまり MR ネタを書く時間がなかったところに、Mixed Reality Tool Kit V2 の正式リリースのお知らせがありました。 多くの bug fix の他、新しい要素も入っているとのことなので、早速これについて、(誰もやってくれないのでw)公式ページを和訳しつつ、コメントを書きたいと思ってます。
https://twitter.com/MxdRealityDev/status/1164348365317931008
What is the Mixed Reality Toolkit ?
一言で言うと、これ、Microsoft が提供する MRアプリ開発のための Unity 用のツールキットです。HoloLens 1もほとんどの場合皆さんこれを使って開発してます。もちろん、自分で同じような機能を作り込むこともできるし、DirectX で作ってしまうこともできます(その方がパフォーマンスやサイズなどで最適化できる場合もあります)が、このツールキットを使えば、既にコンポーネントや機能がたくさんあるので、直ぐに開発に利用できるというものです。MR アプリ開発に必須ですね。
機能としては、以下の通りです。
HoloLens、Windows Mixed Reality、および OpenVR での Unity 開発の基本的な構成要素を提供
- エディタ内シミュレーションを介して迅速なプロトタイピングを有効にし、変更をすぐに確認できる
- 開発者がコアコンポーネントを交換できるようにする拡張可能なフレームワークとして設計
下記の幅広いプラットフォームをサポート
- Microsoft HoloLens
- Microsoft HoloLens 2
- Windows Mixed Realityヘッドセット
- OpenVRヘッドセット(HTC Vive / Oculus Rift)
Getting Started with MRTK
前提条件
こちらも公式サイトからの訳ですが、Mixed Reality Toolkitを開始するには、次のものが必要です。
・Unity 2018.4.x、2019.1.x または 2019.2.x
MRTKは、Unity 2018 で IL2CPP と .NET スクリプティングバックエンドの両方をサポートします。
WinMR、HoloLens 1、または HoloLens 2 用のUWPアプリを構築する場合に必要。OpenVR 用に構築する場合、必要なし。
個人的には、ようやく Visual Studio 2019 が推奨になったことが嬉しいです。いままでこの MRTK のためだけに 2017 を入れていたので、その意味でも良いですよね。
入門用チュートリアル
MRTK または MR 開発を初めて使用する場合は、MRTK v2 を使用した入門チュートリアルを確認することをお勧めしますということですが、Azure のサービスとの連携まで含めこれが結構長いです。でも初めての場合にはぜひやった方が良いです。この後の投稿で、これについても触れていきます。
Unity プロジェクトへの MRTK 追加
最新のMRTK Unityパッケージを入手しましょう。
1. MRTKリリースページに移動します。
2. Assets のところで、ダウンロードを行います。
Microsoft.MixedRealityToolkit.Unity.Foundation.unitypackage
Microsoft.MixedRealityToolkit.Unity.Extensions.unitypackage
Microsoft.MixedRealityToolkit.Unity.Tools.unitypackage
Microsoft.MixedRealityToolkit.Unity.Examples.unitypackage
追加の配信メカニズムについては、MRTK のダウンロードのページを参照してください。
この後は基本的に、Unity エディタ上の作業になります。
Unity プロジェクトのターゲットプラットフォームへの切り替え
Unity プロジェクトに MRTK パッケージをインポートする次のステップでは、インポートした時点でプロジェクトで選択されているプラットフォーム専用の変更をプロジェクトに適用します。
次の手順を実行する前に、正しいプラットフォームを選択してください。たとえば、HoloLens アプリケーションを作成する場合は、ユニバーサルWindows プラットフォーム (UWP) に切り替えます。
・メニューを開く:ファイル > ビルド設定
・プラットフォームリストでユニバーサルWindowsプラットフォームを選択
・[プラットフォームの切り替え]ボタンをクリック
Unity プロジェクトに MRTK パッケージをインポート
- 新しいUnityプロジェクトを作成するか、既存のプロジェクトを開きます。プロジェクトを作成するときは、テンプレートタイプとして「3D」を選択してください。
- ダウンロードしたMicrosoft.MixedRealityToolkit.Unity.Foundation.unitypackageをインポートします。「Asset-> Import Package-> Custom Package」に進み、.unitypackageファイルを選択し、インポートするすべての項目がチェックされていることを確認してから「Import」を選択します。
- 上記と同じ手順に従って、Microsoft.MixedRealityToolkit.Unity.Examples.unitypackageをインポートします。サンプルパッケージはオプションであり、現在のMRTK機能の有用なデモシーンが含まれています。
- 基本パッケージと同じ手順に従って、Microsoft.MixedRealityToolkit.Unity.Tools.unitypackageをインポートします。これらのツールパッケージはオプションであり、MRTK開発者のエクスペリエンスを向上させるExtensionServiceCreatorなどの便利なツールが含まれています。
- 基本パッケージと同じ手順に従って、Microsoft.MixedRealityToolkit.Unity.Extensions.unitypackageをインポートします。拡張パッケージは、MRTKの便利なオプションコンポーネントのセットを提供します。
Foundationパッケージをインポートすると、次のようなセットアッププロンプトが表示される場合があります。
MRTK は、以下を実行することで Mixed Reality ソリューションを構築するためのプロジェクトをセットアップしようとしています。
・現在のプラットフォームで XR 設定を有効にします(XR チェックボックスを有効にします)。
・Force Text Serialization
・Visible Meta Files
・ソース管理を使用する Unity プロジェクトに推奨)。
これらのオプションを受け入れることは完全にオプションですが、推奨されます。
一部のプレハブおよびアセットにはTextMesh Proが必要です。つまり、TextMesh Proパッケージをインストールし、プロジェクト内のアセットが必要です(ウィンドウ-> TextMeshPro-> TMP必須リソースのインポート)。 TMP Essentialsリソースをインポートしたら、Unityを再起動して変更を確認する必要があります。
エディターで HandInteractionExamples シーンを開いて実行
ハンドインタラクションのサンプルシーンは、MRTK のさまざまな UX コントロールとインタラクションを示しているため、始めるのに最適な場所です。はじめに、MRTK をインポートし、サンプルシーンを開いて、エディターでシーンを探索します。
- 新しい Unity プロジェクトを作成し、上記の手順に従って FoundationとExamples の両方のユニティパッケージをインポートします。
- Assets \ MixedRealityToolkit.Examples \ Demos \ HandTracking \ Scenes \ HandInteractionExamplesの下のHandInteractionExamplesシーンを開きます。
- 「TMP Essentials」のインポートを求めるプロンプトが表示されます。
当該 プロンプトが表示された場合は、「Import TMP essentials」ボタンを選択します。 「TMP Essentials」とは、Text Mesh Pro プラグインを指し、MRTK の例の一部はテキストレンダリングを改善するために使用します。 (詳細については、Unity のテキストを参照してください)
4. TMPダイアログを閉じます。この後、シーンをリロードする必要があります。これを行うには、プロジェクトタブでシーンをダブルクリックします。
5. 再生ボタンを押します。
In-Editor Hand Input Simulation を使用してシーンをテストする
エディター内の入力シミュレーションを使用すると、手や目などの特定のタイプの入力に対して仮想オブジェクトの動作をテストできます。
シーン内を移動する方法:
・W / A / S / Dキーを使用して、カメラを前/左/後/右に移動します。
・右マウスを押したままにして、カメラを回転させます。
手入力をシミュレートする方法:
・スペースバーを長押しして、右手を有効にします。
・スペースバーを押しながら、マウスを動かして手を動かします。
・中央のマウススクロールを使用して、手の深さを調整します。
・左マウスをクリックして、ジェスチャーを切り替えます。
シーンの探索をお楽しみください!
UI操作の詳細については、ハンドインタラクションサンプルガイドをご覧ください。また、入力シミュレーションのドキュメントを読んで、MRTK でのエディター内の手入力シミュレーションの詳細を確認してください。
おめでとうございます!最初のMRTKシーンを使用しました。今、あなた自身の経験を作成することに...。
MRTK を新しいシーンまたは新しいプロジェクトに追加する
- 新しい Unity プロジェクトを作成するか、現在のプロジェクトで新しいシーンを開始します。
- 上記の手順に従って、MRTK パッケージをインポートしたことを確認してください(サンプルは必須ではありませんが、Foundation と Examples の両方をお勧めします)。
- メニューバーからMixed Reality Toolkit-> Add to Scene and Configureを選択します 。
4. 次のようなプロンプトが表示されます。
「OK」をクリックします。
5.その後、MRTK構成プロファイルを選択するよう求められます。 「DefaultMixedRealityToolkitConfigurationProfile」をダブルクリックします。
注:HoloLens 2 を開始する場合は、代わりに「DefaultHoloLens2ConfigurationProfile」を選択する必要があります。 DefaultMixedRealityToolkitConfigurationProfile とDefaultHoloLens2ConfigurationProfile の違いの詳細については、プロファイルを参照してください。
その後、シーン階層に以下が表示されます。
次のものが含まれます。
・Mixed Reality Toolkit - フレームワーク全体の中央構成エントリポイントを提供するツールキット自体。
・MixedRealityPlayspace - ヘッドセットの親オブジェクト。これにより、ヘッドセット/コントローラーおよびその他の必要なシステムがシーンで正しく管理されます。
・メインカメラはプレイスペースの子として移動されます。これにより、プレイスペースが SDK と連動してカメラを管理できるようになります。
注:シーンでの作業中は、メインカメラ(またはプレイスペース)をシーンの原点(0,0,0)から移動しないでください。これは、MRTK とアクティブな SDK によって制御されます。プレーヤーの開始点を移動する必要がある場合は、カメラではなくシーンのコンテンツを移動してください!
6. プレイボタンを押し、スペースバーを押して手のシミュレーションをテストします。
これで、デバイスにビルドしてデプロイする準備ができました! MRTK のビルドとデプロイの手順に従います。
次のステップ
推奨される次の手順を次に示します。
・PressableButton をシーンに追加します(PressableButtonPlated プレハブを使用して開始することをお勧めします)。
・シーンにキューブを追加し、ManipulationHandler コンポーネントを使用してキューブを移動可能にします。
・UI および相互作用のビルディングブロックで MRTK で使用可能な UX コントロールについて学習します。
・エディタで手入力をシミュレートする方法については、入力シミュレーションガイドをお読みください。
・Mixed Reality 構成ガイドで MRTK 構成プロファイルの使用方法を学習します。