Ruleのワークフロー
Rule (ルール) のワークフローでは、AR (拡張現実) のレイアウトや動作を平易な言葉で簡潔に記述します。UI はシンプルかつ専用に設計されているので、初めて使用する場合でも戸惑うことなく作業を始められ、上級者向けの MARS 機能を扱う場合もオーサリングを一元的に行えます。
Rule ビューでは、想定される現実世界の環境と設定する AR コンテンツがわかりやすい言葉で示されます。例えば、"On every horizontal surface, create grass (すべての水平面に草を作成する)" や "On an image marker, show UI (画像マーカーに UI を表示する)" などです。
"On every horizontal surface, create grass" の例では、レプリケーター ("On every")、子プロキシ ("horizontal surface")、子コンテンツ ("create grass") で構成されたオブジェクトの階層を使用して、MARS 内で機能を定義しています。
Rule の使用を開始する
Rule のワークフローを使用するには、Unity のメインメニューから Window > MARS > Proxy Rule Set の順に選択して、Proxy Rule Set ウィンドウ を開きます。シーンビュー と MARS の Simulation View (シミュレーションビュー) も表示しておくことをお勧めします。
最初のルールを作成するには、Add Rule ボタンをクリックします。デフォルトでは、MARS によって "On Every Horizontal Surface (すべての水平面に)" という名前の、コンテンツが含まれていないルールが作成されます。シーンビューには平面プロキシビジュアライザーが表示され、シミュレーションビューには検出されたサーフェスごとに汎用のプロキシギズモが表示されます。
このルールにコンテンツを追加するには、いくつかの方法があります。
- ルール行の右側にマウスを合わせると、+ ボタンが表示されます。このボタンをクリックして、Add Content メニューを開きます。
- ルール行の下にマウスを合わせると、黄色のバーが表示されます。このバーをクリックして、Add Content メニューを開きます。
- ルール行の任意の場所を右クリックし、コンテキストメニューから Add Content to 'Horizontal Surface' を選択します。
- ルール行をクリックして選択し、スペースキーを押します。上記のどの方法でも、Add Content メニューが開きます。
Add Content メニューのデフォルトのオプションは以下のとおりです。
- Spawn Object: ルールに "Spawn" 行を追加します。これは、指定したプロキシ (デフォルトでは Horizontal Surface) が AR デバイスまたはシミュレーションで検出されたときに作成されるゲームオブジェクトです。
- Build Surface: ルールに "Paint" 行を追加します。これは、デバイスまたはシミュレーションによって検出されたサーフェスデータを使用してメッシュを作成し、指定のマテリアルを適用するように設定されたオブジェクトです。
これらのコンテンツオプションのいずれか (または両方) を設定すると、シミュレーションビュー内でルールに該当する場所にコンテンツが表示されます。
検出数の変更
検出されるインスタンスの最大数を変更するには、照合ドロップダウンを変更します。オプションは以下のとおりです。
- Every: プロキシの使用可能なすべてのインスタンスを検出します。
- One: プロキシのインスタンスを 1 つだけスポーンします (使用可能な一致が 1 つ存在する場合)。
- Up To: ドロップダウン横にあるフィールドで、最大検出数を具体的に設定できます。
プロキシタイプの変更
ルールで検出するプロキシの種類を変更するには、プロキシフィールドを変更します。これは、以下のいずれかの方法で行うことができます。
- プロキシフィールドのセレクターボタンをクリックしてポップアップウィンドウを開き、プリセットのプロキシから選択します。これらのオプションは、MARS Panel の Create セクションから読み込まれます。
- 使用するプロキシのプレハブがすでにある場合は、そのプレハブを Project ウィンドウからルールのプロキシフィールドにドラッグアンドドロップします。
- ルールの現在のプロキシを置き換えずに変更を加えることもできます。これを行うには、ルール行を選択し、Inspector でプロキシに変更を加えます。
アクションの追加
"Spawn" コンテンツでは、ルールのアクションがサポートされます。ルールにコンテンツを追加する場合と同じ方法のいずれかで、"Spawn" 行にアクションを追加します。
- "Spawn" 行の右側にある + ボタンにカーソルを合わせてクリックします。
- "Spawn" 行の下の黄色のバーにカーソルを合わせてクリックします。
- "Spawn" 行を右クリックし、Add Action to 'Content' を選択します。
- "Spawn" 行を選択し、スペースキーを押します。
どの方法でも Content Actions メニューが表示されるので、このメニューで追加するアクションを選択します。
追加したアクションは、"Spawn" 行の下にインデントされた行として表示されます。このアクション行を選択すると、Inspector にアクションの設定が表示されます。
"Build Surface" コンテンツではアクションはサポートされません。
Proxy Group
Proxy Group (プロキシグループ) は MARS の強力な機能であり、環境内の複数のオブジェクトについてクエリを実行し、そのオブジェクトセットに関する条件 (オブジェクト間の必須距離など) を設定できます。グループの詳細については、こちら を参照してください。
Rule のワークフローでは、グループの設定と変更を簡単に行うことができます。
プロキシをグループに変換する
1 つのプロキシをプロキシグループに変換するには、プロキシフィールドのセレクターボタンをクリックし、表示されるポップアップウィンドウで Convert to Group を選択します。
ルールのオブジェクトフィールドに "新しいグループ" と Edit Group ボタンが表示されます。このボタンをクリックすると、Rule ビューにそのグループだけが表示されます。ルールリスト一覧に戻るには、ウィンドウのツールバーの戻る矢印をクリックします。
グループには、最初にこのグループに変換したプロキシと、新しいプロキシ (デフォルトではシンプルな "Surface" プロキシ) の 2 つのオブジェクトが含まれています。これらのプロキシはどちらも、これまでと同様に調整できます。ただし、レプリケーターの動作 (Every/Up To/One での照合) はグループ内では使用できません。
関係の追加など、グループ全体の設定を調整するには、ツールバーの Group Settings ボタンをクリックします。
Landmark
Rule のワークフローでは、Landmark (ランドマーク) を設定することもできます。ランドマークは、点、辺、ポリゴンなどの空間データであり、現実世界のデータを、仮想コンテンツのアンカー設定や配置を行いやすいパーツに分解したものです。詳細については、ランドマークに関するドキュメント を参照してください。
ランドマークは、"Spawn" コンテンツ行から設定できます。これらの各行の末尾に、on ... ボタンがあります。... ボタンをクリックして、使用可能なランドマークタイプが含まれるコンテキストメニューを開きます。
例えば、Closest > Point を選択すると、ランドマークはデフォルトでメインカメラをターゲットにするように設定されます。これにより、そのプロキシのカメラに最も近い点にコンテンツがスポーンされます。ターゲットオブジェクトを変更するには、"Spawn" コンテンツ行を選択し、Inspector で Closest Landmark Settings の Target フィールドを変更します。
基礎となるオブジェクトの操作
Rule ビューには専用形式の使いやすいワークフローで MARS のシーンデータが示されますが、基礎となる MARS オブジェクトは Hierarchy で設定するシーンオブジェクトと同じです。Rule のワークフローで MARS コンテンツを作成すると、これらのオブジェクトはデフォルトで非表示になりますが (HideFlags を使用)、Hierarchy で表示を有効にすることができます。これは、より複雑なシーンや通常とは異なるシーンを設定する場合、および MARS オブジェクトの構造の仕組みを学ぶ場合にも役立ちます。ただし、非表示になっていた Hierarchy に変更を加えると、Rule ビューが不安定になったり、予期しない動作が発生したりする可能性があります。そのため、こうした Hierarchy ワークフローの変更は、元に戻せない変更として行うことをお勧めします。
ルールセットを Hierarchy のオブジェクトとして表示するには、Hierarchy で Proxy Rule Set オブジェクトを選択し、Inspector で Show In Hierarchy ボタンをクリックします。