AR マーカー上にオブジェクトをスポーンする

Tutorial

Beginner

+10XP

45 mins

(6)

Unity Technologies

AR マーカー上にオブジェクトをスポーンする

ここまでで、アプリケーションのモデルを選択しました。しかし、それは常に画面に表示されていました。このチュートリアルでは、AR マーカーを作成して、そのマーカーが検出されたときにのみ表示されるようにモデルを設定します。

1. 概要

ここまでで、アプリケーションのモデルを選択しました。しかし、それは常に画面に表示されていました。このチュートリアルでは、AR マーカーを作成して、そのマーカーが検出されたときにのみ表示されるようにモデルを設定します。

2. 優れた AR マーカーを構成する要素

AR マーカーは、以下の要件を満たす必要があります。

  • サイズが 300 x 300 ピクセル以上である必要があります(ただし、マーカーを正方形にする必要はありません)。
  • PNG または JPG 形式である必要があります。
  • 画像の色値はコントラストが強いものである必要があります。
  • 繰り返しのパターンを持つ画像は避けるべきです。

ノート:AR Foundation は画像の検出に色情報を使用せず、グレースケールのみを使用します。そのため、マーカーのコントラストを強くすることが重要になります。デザインの目的でマーカーに色を使用するのは何も問題ありません。

3. XR 参照画像ライブラリを作成する

_ARMarker アセットフォルダーには、指定したプレハブのテーマに合った 3 つの既製のマーカーが格納されています。これらは作業の開始に役立つサンプルに過ぎません。実際には、前のステップで説明した要件が満たされている限り、好きな画像をマーカーとして使用できます。

AR Foundation の画像認識は、参照画像ライブラリと呼ばれる特別なアセットによって管理されます。マーカーを選択したら、それを格納する参照画像ライブラリを作成します。参照画像ライブラリには、アプリケーションで追跡できるようにしたいすべての画像マーカーを格納できます。このライブラリに含まれている画像だけが検出されます。

参照画像ライブラリの詳細については、Unity マニュアル内のドキュメントを参照してください。

以下の手順に従って、使用する AR マーカーを選択し、参照画像ライブラリを作成します。

1. Project ウィンドウで、Assets > _ARMarker > Markers フォルダーに移動します。提供されたマーカーからアプリケーションで使用するものを選択します。または、独自のマーカーを作成してインポートします。

2. Project ウィンドウの Markers フォルダー内で、右クリックして「Create」>「XR」>「Reference Image Library」を選択します。

3. Markers フォルダーで、作成した ReferenceImageLibrary アセットを選択し、「Inspector」で「Add Image」を選択します。

4. 「Inspector」で、「Texture 2D」スロットの「Texture Selector」を使用して「Marker」を検索し、プロジェクトの AR マーカーとして使用したい MarkerIcon 画像を選択します。

5. iOS のみ:iOS プロジェクトを正常にビルドするには、現実世界でのマーカーのサイズ(メートル単位)を指定する必要があります。マーカーのサイズが指定したサイズと一致していなくてもマーカーは認識される場合がありますが、マーカーのサイズと入力した値に相違があると、アンカーの位置がわずかにずれる可能性があります。

4. マーカーを印刷する、またはモニター上で開く

このプロジェクトを進めていく際に、ご自分のデバイスでアプリケーションのマーカー認識機能をテストすることが頻繁にあります。プリンターにアクセスできる場合は、マーカーを紙に印刷して机の上に置いてテストできます。

紙に印刷したマーカーを使用すると、いつでもマーカーを使用でき、好きなように動かせるので、テストが少し簡単になります。

または、お使いのコンピューターで画像を開いてデバイスのカメラを向けることで、マーカー認識をテストすることもできます。

コンピューターのモニターを使用する方が便利な点もあります。何も印刷する必要がなく、いつでも画像にアクセスできるためです。ただし、モニターを使用する場合は、テストするたびに画像を開く必要があり、マーカーはコンピューターの物理的な場所に制約されます。

マーカーを印刷したい場合は、ここで印刷してください。モニターを使用したい場合は、Project ウィンドウでマーカーの画像を見つけてダブルクリックし、コンピューターのデフォルトの画像ビューアーで開いてください。

5. Tracked Image Manager を追加する

AR Tracked Image Manager は、参照画像ライブラリから画像を検索します。画像が見つかると、プレハブからオブジェクトをスポーンし、AR 空間内でマーカーの上に配置します。

ここで指定するのはプレハブであり、1 つのゲームオブジェクトではないことに注意してください。アプリケーションがマーカーによってトリガーされると、そのプレハブのインスタンス(コピー)がスポーンされ、アプリケーション内で新しいゲームオブジェクトが生成されます。この事実は後で重要になってきます。

AR Tracked Image Manager の詳細については、Unity マニュアル内のドキュメントを参照してください。

以下の手順に従って、Tracked Image Manager をシーンに追加します。

1. 「Hierarchy」で、AR Session Origin ゲームオブジェクトを選択します。

2. 「Inspector」で、「Add Component」を選択し、AR Tracked Image Manager コンポーネントを追加します。

3. Serialized Library プロパティを見つけ、ピッカー(丸)を使用して、作成した ReferenceImageLibrary アセットを選択します。

4. Project ウィンドウで、Assets > _ARMarker > Prefabs フォルダーから選択したプレハブを探し、そのプレハブを AR Tracked Image Manager コンポーネントの Tracked Image Prefab プロパティにドラッグします。

6. 自分のデバイスでマーカーをテストする

Tracked Image Manager を設定したので、ご自分のデバイスで実際のアプリケーションの機能をテストする準備が整いました。デバイスのカメラが画像を検出すると、選択したプレハブが現れ、トラッキング対象のマーカー画像の上に表示されます。

ただし、現在のシーンには、モデルのインスタンスがすでに存在しています。マーカーが認識されると自動的にシーンにプレハブがスポーンされるので、シーン内のアクティブなモデルはもう必要ありません。

以下の手順に従って、デバイスでマーカー認識とオブジェクトのスポーンをテストします。

1. 「Hierarchy」で、選んだプレハブを選択してから、「Inspector」で無効にします。

繰り返しとテストを簡単に行うため、ビルド前にはこのエディター内モデルが必要になりますが、デバイス上のアプリケーションには表示したくありません。毎回ビルドする前に、「Inspector」でこのエディター内モデルを無効にする必要があります。そうしないと、シーンに余分なモデルが表示されることになります。

2. アプリケーションを保存し、ビルドします。

3. マーカーを紙に印刷した場合は、水平な面の上に置きます。マーカーを印刷しなかった場合は、モニター上にマーカー画像を開きます。Project ウィンドウでマーカーをダブルクリックして、コンピューターのデフォルトの画像ビューアーで開きます。

4. デバイスのカメラをマーカーに向けると、マーカーの上にモデルが表示されます。

コンピューターのモニターを使用してマーカーを表示している場合は、下向きに回転したモデルが表示されることがわかります。次のステップで修正するので、心配は要りません。

7. プレハブを調整する

次に、プレハブを調整して、そのコピーがアプリケーションにとって適切な向きとスケールで表示されるようにする必要があります。

(紙に印刷したマーカーではなく)コンピューターのモニター上のマーカーをテストしている場合は、下向きに回転しないようにモデルの回転を編集する必要があります。AR Foundation は、マーカーを水平な面に平らに置くものと想定しています。しかし、コンピューターのモニターは垂直です。

モニターが前方に 90 度回転しているのを相殺するために、モデルを逆方向に 90 度回転させる必要があります。

以下の手順に従って、マーカーに対するプレハブの関係を調整します。

1. Prefab モードでモデルを開きます。Prefab モードを開くには、Project ウィンドウでプレハブアセットをダブルクリックするか、Project ウィンドウまたは「Hierarchy」で選択して、「Inspector」ウィンドウの「Open」ボタンを選択します。

2. 「Hierarchy」でゲームオブジェクトを展開し、その子ゲームオブジェクトを表示します。[使用するモデル]Mesh という名前の子ゲームオブジェクトを選択します。

3. メッシュの「Position」、「Rotation」、「Scale」を編集し、現実世界のマーカーに対して、アプリケーションでモデルが適切に表示されるようにします。水平な紙ではなく垂直なデバイスのモニターでアプリケーションをテストしている場合は、オブジェクトを x 軸で逆方向に 90 度回転させます。

重要:プレハブの親ゲームオブジェクトではなく、[使用するモデル]Mesh という子ゲームオブジェクトを編集したことを確認してください。プレハブの親ゲームオブジェクトの位置、回転、スケールに加えた編集は、シーンにプレハブがスポーンするとリセットされます。

4. 編集が完了したら、Prefab モードを終了します。Prefab モードを終了するには、Hierarchy ウィンドウのヘッダーバーの戻る矢印を選択するか、シーンビューの上部にあるパンくずリストの「Scenes」を選択します。

5. ビルドしてデバイスでテストします。

8. 他にもトライしてほしいこと

さらなるスキルの向上や、新しいコンセプトの模索、現プロジェクトについての改善などを考えているのであれば、以下の任意のアクティビティもぜひ見るようにしてみてください。各アクティビティは「簡単」、「中程度」、「困難」のいずれかとして識別されるため、どの程度の難易度が予想されるかがわかります。

これらのアクティビティは完全に任意であるため、興味がなければこのステップをスキップしてもかまいません。

ただ、今回の学習体験を最大限に生かすためにも、このアクティビティのうち少なくとも 1 つは試してみることをお勧めします。頑張ってください!

簡単:他の誰かが作ったグラフィックスやマーカーを使用する

オンラインではさまざまなマーカーを見つけることができます。マーカーや画像を検索し、ご自身のプロジェクトにインポートして、どれが AR Foundation のトラッキングに合っているかテストしてみてください。優れたマーカーを構成する要素については、もう一度ステップ 2 を参照してください。

中程度:提供された AR マーカーの 1 つに変更を加える

提供されたマーカーのうち、1 つを複製し、編集して独自のマーカーを作成してください。例えば、テクスチャの中央にあるアイコンを削除して、別のアイコンまたは画像を追加することができます。

Gimp」は「Adobe® Photoshop®」の代替として使用できるオープンソースソフトウェアで、これを使用してグラフィックスの作成、編集、エクスポートを行うことができます。お好みのテクスチャ編集ソフトウェアでの操作方法を知りたい場合は、検索エンジンで検索すれば、多くのチュートリアルが見つかるはずです。

困難:グラフィックス編集プログラムを使用して独自のマーカーを作成する

独自のマーカーをゼロから作成し、独自の体験のデザインを始めてみましょう。優れたマーカーを構成する要素については、もう一度ステップ 2 を参照してください。

9. 次のステップ

これで、マーカーをトラッキングして 3D オブジェクトを表示させるアプリケーションを実際に作成できました。次のチュートリアルでは、ユーザーが 3D モデルと対話できるようにするボタンを追加して、この機能を拡張します。

Complete this Tutorial