制約マネージャー

制約マネージャーでは、変換に制約コンポーネントのセットを適用できます。 TransformConstraintGame オブジェクトに関連付けられている型のコンポーネントを考慮することができます。 既定では、制約マネージャーは、game オブジェクトにアタッチされているすべての 制約コンポーネント を自動的に収集し、処理された変換に適用します。 ただし、適用される制約の一覧を手動で構成し、アタッチされた制約のサブセットのみを適用できるようにすることもできます。

現在、次の MRTK UX 要素は、制約マネージャーをサポートしています。

インスペクターのプロパティとフィールド

制約マネージャーは、次の2つのモードで操作できます。

  • 自動制約の選択
  • 手動による制約の選択

自動制約の選択

Auto Selection

制約マネージャーの既定のモードである [自動制約の選択] では、接続されているすべての制約コンポーネントの一覧に加えて、 [ボタンの移動 ] と [制約の追加] ボタンが表示されます。

Game オブジェクトに制約を追加

このボタンを使用すると、制約マネージャーインスペクターから制約コンポーネントを直接追加できます。 プロジェクト内のすべての制約の種類は、ここに表示されます。 詳細については、「 変換の制約 」を参照してください。

コンポーネントにアクセス

オブジェクトで見つかったすべての制約は、 [コンポーネントに戻る ] ボタンと共にここに表示されます。 このボタンをクリックすると、選択した制約コンポーネントにインスペクターがスクロールされ、構成できるようになります。

手動による制約の選択

Manual Selection

制約マネージャーが手動モードに設定されている場合は、制約リストにリンクされている制約のみが処理され、変換に適用されます。 表示される一覧には、ユーザーが選択した制約だけでなく、エントリを削除または追加するための ボタン やオプションが表示されます。 手動モードを初めて有効にすると、制約マネージャーによって、アタッチされた制約コンポーネントを選択するための開始点として、使用可能なすべてのコンポーネントが一覧に挿入されます。

エントリの削除

これにより、手動で選択した一覧からエントリが削除されます。 このオプションでは、game オブジェクトから制約コンポーネントが削除されないことに注意してください。 このコンポーネントを参照する他のコンポーネントが誤って中断されないように、制約コンポーネントは常に手動で削除する必要があります。

エントリの追加

[エントリの追加] を選択すると、手動の一覧に含まれていない使用可能なすべての制約コンポーネントが一覧表示されます。 コンポーネントが手動制約選択に追加されるエントリのいずれかをクリックします。

新しい制約の追加

このオプションを選択すると、選択した種類のコンポーネントが game オブジェクトに追加され、新しく作成された制約コンポーネントが手動制約リストに追加されます。

変換の制約

制約は、何らかの方法で操作を制限するために使用できます。 たとえば、アプリケーションによってはローテーションが必要になる場合がありますが、オブジェクトの上下を維持する必要がある場合もあります。 この場合、 RotationAxisConstraint オブジェクトにを追加し、y 軸の回転に回転を制限するために使用できます。 MRTK にはいくつかの制約が用意されていますが、そのすべてについて以下に説明します。

また、新しい制約を定義し、それらを使用して、一部のアプリケーションで必要になる可能性のある一意の操作動作を作成することもできます。 これを行うには、から継承し、 TransformConstraint 抽象プロパティと抽象メソッドを実装するスクリプトを作成し ConstraintType ApplyConstraint ます。 オブジェクトに新しい制約を追加すると、定義された方法で操作が制限されます。 この新しい制約は、制約マネージャーの 自動選択 または手動モードでの [ エントリの追加 ] ドロップダウンでも表示されます。

MRTK によって提供されるすべての制約は、次のプロパティを共有します。

手の種類

制約を1つのきき、2つの操作、または両方の種類の操作に使用するかどうかを指定します。 このプロパティはフラグであるため、両方のオプションを選択できます。

  • 1 つのきき: 制約は、選択されている場合、1つのきき操作中に使用されます。
  • 2 つのきき: 制約を選択した場合、2つのきき操作中に使用されます。

近接型

制約をほぼ、遠く、または両方の種類の操作に使用するかどうかを指定します。 このプロパティはフラグであるため、両方のオプションを選択できます。

  • Near: 制約は、選択されている場合、ほぼ操作中に使用されます。
  • Far: 制約は、選択した場合に、遠くの操作中に使用されます。

FaceUserConstraint

Constraint Face User

この制約がオブジェクトに関連付けられている場合、オブジェクトが常にユーザーにさらされるように、ローテーションが制限されます。 これは、スレートまたはパネルに役立ちます。 のプロパティは次のとおりです FaceUserConstraint

フェイスアウト

True の場合、オブジェクトはユーザーから離れています。

FixedDistanceConstraint

Constraint Fixed distances

この制約は、操作されたオブジェクトと操作開始時の別のオブジェクト変換との距離を修正します。 これは、操作されたオブジェクトからヘッド変換までの距離を修正するなどの動作に役立ちます。 のプロパティは次のとおりです FixedDistanceConstraint

制約変換

これは、操作されたオブジェクトが固定の距離を持つもう1つの変換です。 既定値は、カメラの変換です。

FixedRotationToUserConstraint

Fixed Rotation

この制約により、操作中のユーザーと操作されたオブジェクトの間の相対的な回転が修正されます。 これは、操作の開始時に操作されたオブジェクトがユーザーに対して常に同じ顔を示すため、スレートまたはパネルに役立ちます。 には、固有のプロパティはあり FixedRotationToUserConstraint ません。

FixedRotationToWorldConstraint

Fixed rotation to the world

この制約は、操作されているオブジェクトのグローバルな回転を修正します。 これは、操作によって回転を同様する必要がない場合に役立ちます。 には、固有のプロパティはあり FixedRotationToWorldConstraint ません。

MaintainApparentSizeConstraint

Maintain Apparent size

この制約がオブジェクトに関連付けられている場合、オブジェクトがユーザーからどれだけ離れているかにかかわらず、ユーザーに対して同じ見かけサイズが維持されます (つまり、ユーザーのビューのフィールドと同じ比率が使用されます)。 これを使用すると、操作中もスレートまたはテキストパネルを読み取り可能な状態に保つことができます。 には、固有のプロパティはあり MaintainApparentSizeConstraint ません。

Move軸制約

Constraint Move Axis

この制約は、操作されたオブジェクトを移動できる軸に沿って修正するために使用できます。 これは、平面の表面または線に沿ってオブジェクトを操作する場合に便利です。 のプロパティは次のとおりです MoveAxisConstraint

移動に関する制約

移動を妨げる軸を指定します。 既定では、これらの軸はローカルではなくグローバルになりますが、次のように変更できます。 このプロパティはフラグであるため、任意の数のオプションを選択できます。

  • X 軸: 選択した場合、x 軸に沿った移動は制限されます。
  • Y 軸: y 軸に沿った移動は、選択されている場合は制約されます。
  • Z 軸: z 軸に沿った移動は、選択されている場合は制約されます。

制約にローカルスペースを使用する

True の場合、操作対象のオブジェクトのローカル変換軸の相対位置を制限します。 既定では false です。

RotationAxisConstraint

Constraint Rotation Axis

この制約は、操作されたオブジェクトを回転できる軸を修正するために使用できます。 これは、操作されたオブジェクトを垂直にしたまま、y 軸の回転を許可する場合に便利です。たとえば、のようになります。 のプロパティは次のとおりです RotationAxisConstraint

回転時の制約

回転を回避する軸を指定します。 既定では、これらの軸はローカルではなくグローバルになりますが、これは以下で変更できます。 このプロパティはフラグなので、任意の数のオプションを選択できます。

  • Y 軸: 選択した場合、Y 軸を中心に回転が制限されます。
  • Z 軸: Z 軸に関する回転は、選択されている場合は制約されます。
  • X 軸: x 軸に関する回転は、選択されている場合は制約されます。

制約にローカル空間を使用する

true の場合、操作されたオブジェクトのローカル変換軸を相対的に制約します。 既定では false です。

MinMaxScaleConstraint

Min Max Constatint

この制約により、操作されたオブジェクトのスケールに対して最小値と最大値を設定できます。 これは、ユーザーがオブジェクトのスケーリングを小さすぎたり大きすぎたりするのを防ぐのに便利です。 のプロパティ MinMaxScaleConstraint は次のとおりです。

最小スケール

操作中の最小スケール値。

スケールの最大値

操作中の最大スケール値。

初期状態に対する相対

true の場合、上記の値はオブジェクトの初期スケールに対する相対値として解釈されます。 それ以外の場合は、絶対スケール値として解釈されます。