Mixed Reality Toolkit (MRTK) コンポーネントと Unity のスクリプト可能オブジェクト

完了

MRTK-Unity は、一連のコンポーネントと機能を提供する Microsoft 主導のプロジェクトで、Unity でクロスプラットフォームの MR アプリの開発時間を短縮するために使用されます。 MRTK を使用して、シーン内の風力タービンの 3D モデルでイマーシブ対話式操作を迅速に作成します。 このプロジェクトでは特に、Microsoft.MixedReality.Toolkit.UI 名前空間内の次の MRTK オブジェクト クラスを使用します。

  • ObjectManipulator: ObjectManipulator スクリプトを使用すると、片手または両手を使用してオブジェクトを移動、拡大縮小、回転できるようになります。 このスクリプトは、HoloLens のジェスチャ入力と、イマーシブ ヘッドセットのモーション コントローラー入力の両方で動作します。

  • BoundsControl: Bounds コントロールを使用すると、オブジェクトを変換したり (回転と拡大縮小)、ユーザーが変換操作をトリガーできることを視覚的に示すキューブをオブジェクトの周りに描画したりできます。 Bounds コントロールによって提供される拡大縮小および回転ハンドルを使用して、オブジェクトの遠距離と近距離の対話式操作を実行できます。 さらに、スケーリングと素材を変更する近接効果が、拡大縮小ハンドルと回転ハンドルに提供されます。

  • NearInteractionGrabbable: コライダブルを持つ任意の GameObject に NearInteractionGrabbable コンポーネントを追加して、そのコライダブルをグラバブルの近くにすることができます。 すべての IMixedRealityNearPointer により、最も近いグラバブル オブジェクトへのポインター イベントがディスパッチされます。 さらに、装飾されたオブジェクトが近接ポインターに最も近いオブジェクトである場合、近接ポインターによりフォーカスの開始イベントと終了イベントが送信されます

  • RotationAxisConstraint: Y (上向き) 軸を中心としてのみ回転するようタービンを制約するために使用できます

    風力タービン プレハブが表示され、インスペクターで風力タービン プレハブが選択されている、Unity シーン ウィンドウのスクリーンショット。

タービン プレハブ

各デジタル ツイン タービン プレハブに対応して、Microsoft Azure から受信したデータを格納する ScriptableObject が Unity プロジェクトにあります。 ScriptableObjects は、基本的に、シーン間およびアプリケーション実行間でグローバルにデータを保持できる軽量のオブジェクトです。 風車プレハブにはこの ScriptableObject への参照が保持されており、データが更新されると、アセットに通知するイベントがトリガーされます。 これらのプレハブを調べて、含まれる MRTK コンポーネントと、Azure のデータが受信される場所をご確認ください。

  1. [Assets] > [Art] > [Prefabs] に移動して、デジタル ツイン タービンを表示します。 風車のインスペクターで、LOD グループ、先ほど説明した MRTK コンポーネント、このプレハブにアタッチされている他のスクリプトがあることがわかります。

    風力タービン スクリプト可能オブジェクトがビューとインスペクターに表示されている Unity シーン ウィンドウのスクリーンショット。

  2. タービンのシミュレートされた対応するスクリプト可能オブジェクトは、[Assets](アセット) > [Scriptable Objects](スクリプト可能オブジェクト) > [Turbine Site Data](タービン サイト データ) で確認できます。

    風力タービン スクリプト可能オブジェクトがビューに表示されている Unity シーン ウィンドウのスクリーンショット。