画像マーカー
このガイドでは、アプリケーションでの画像マーカーのトラッキングの概念とワークフローについて説明します。マーカーライブラリを作成し、プロキシのマーカー条件に設定を追加する方法を解説します。また、実例も紹介します。このガイドを読むと、Unity MARS アプリケーションに画像マーカーを組み込むために必要な知識が得られます。
マーカートラッキング
マーカーは、AR コンテンツの位置を検出するためにシーン内の特定の位置にアンカーを設定できる便利な方法です。Unity MARS では、AR Foundation で現在公開されているマーカートラッキング機能を使用して、マーカーを検出し、それをポーズに合わせることができるコンテンツを作成できます。
マーカーライブラリの作成
画像マーカートラッキングを開始するには、まずマーカー (画像) のコレクションが必要で、それをライブラリに保存する必要があります。MARS Session ゲームオブジェクトはこのライブラリを使用して、デバイスが走査する現実世界の環境に表示される指定されたマーカーを検出します。
ライブラリを作成するには、エディターでプロジェクト内のフォルダーを選択し、それを右クリックしてアセットの作成メニューを開きます。このメニューから、Create > MARS > Marker Library の順に選択します。
これにより、選択したプロジェクトフォルダーにライブラリアセットが作成されます。アセットの Inspector ウィンドウで、ライブラリに追加する各画像のエントリーを追加できます。各エントリーには、インポートされた画像 (エディターではテクスチャとして扱われます) への参照と、現実世界での物理的なサイズが必要です。必要に応じて、マーカー名を追加することもできます。
以下のスクリーンショットは、3 つのエントリーが含まれたライブラリの例を示しています。
Marker Library の使用
Marker Library (マーカーライブラリ) を作成したら、Unity MARS アプリケーション内で使用を開始できます。そのためには、シーン内の MARS Session ゲームオブジェクトを選択し、インスペクターを表示します。このコンポーネント内に Marker Library のエントリーがあります。先ほど作成したマーカーライブラリの参照をそこにドラッグすることで、そのセッションのアクティブなマーカーライブラリにすることができます。
Marker Condition
Unity MARS の他のすべての要素と同様に、クエリシステムでマーカーを使用できるようにする必要があります。そのためには、プロキシにアタッチする Marker Condition を作成する必要があります。このプロキシには、この条件が満たされたときに、そのマーカーの位置に作成するコンテンツが含まれています。この Marker Condition 内で、追加したマーカー条件が含まれる作成済みのプロキシにリンクする画像マーカーを選択できます。
選択したプロキシに画像マーカーを設定するには、下の図のように、プロキシに Marker Condition を追加し、MARS Session ゲームオブジェクトに追加したマーカーライブラリからロードされた使用可能な画像の 1 つをクリックする必要があります。
この例では、このプロキシの画像マーカーとして flower を使用しています。
Marker Condition で画像を選択すると、この画像マーカーが属する Texture (テクスチャ) アセット、マーカーを区別するためにアクセスできる Label (ラベル)、このマーカーを現実世界と照合する際の物理的な Size (サイズ) など、選択した画像マーカーに関する情報が表示されます。
Unity MARS には、マーカーの一連のプリセットサイズが用意されていますが、必要に応じてカスタムサイズを使用することもできます。
画像マーカーの可視化
画像マーカーを選択すると、シーンビューにすぐに表示されるので、その物理的なサイズをマーカーにアタッチした 3D オブジェクトと比較できます。
ノート: ポスターサイズの画像マーカーと、例えばキューブプリミティブ (1 m x 1 m x 1 m) がある場合、ユーザーはその中にいる可能性があるため、アプリケーションの実行時に、アタッチされたゲームオブジェクトが見えないことがあります。現実世界に対するゲームオブジェクトの物理的なサイズを常に念頭に置いて体験を設計してください。
画像マーカーのシミュレーション
Unity MARS では、合成環境で画像マーカーのシミュレーションを行うことができます。画像マーカーのシミュレーションにより、現実世界のさまざまなシナリオでのマーカーの動作を評価できるので、画像マーカーを使用する Unity MARS アプリケーションの開発時にイテレーション時間が短縮されます。
環境への合成マーカーの追加
現在開いている環境に合成マーカーを追加するには、MARS Panel の Synthetic Image Marker ボタンをクリックします。
このボタンをクリックすると、Environment Hierarchy に Synthetic Image Marker ゲームオブジェクトが作成されます。このゲームオブジェクトは、ユーザーが作成した画像マーカーとの照合のためのプレースホルダーとして機能します。
合成画像マーカーの操作
合成マーカーを環境に配置したら、他のゲームオブジェクトと同様に移動および回転できます。合成画像マーカーの設定も通常の画像マーカーと同様に行います。マーカーを選択し、現在ロードされているライブラリから使用する画像を選択します。
環境を保存するには、環境を変更するか、シミュレーション環境を再ロードします。現在の変更を保存するかどうかを確認するポップアップウィンドウが表示されます。
シミュレーション環境の変更を保存することもできます。これを行うには、他のプレハブインスタンスと同様に、リンクされた環境プレハブにプレハブのオーバーライドを適用します。
ノート: 環境内のゲームオブジェクトを変更できない場合は、Simulation ツールバーのトグルを使用して、選択モードを Environment に設定してください ()。
実例
以下のスクリーンショットは、上記のサンプルシーンです。このアクティブなマーカーライブラリ内の画像の 1 つが検出された位置を示しています。