UnityコンポーネントのConstraintシリーズ(親子関係設定の操作をシミュレートするために親子関係を設定する必要はありません)

目次

目次

コンポーネント設定の分析

目的の制約

 親の制約

まとめ


概要

Constraint コンポーネントは、オブジェクトを拘束し、オブジェクトとターゲット オブジェクトのトランスフォームをリンクし、ターゲット オブジェクトの位置、回転、スケーリングに従い、親子関係を設定せずに親子オブジェクトと同じ効果を実現できます。 。また、オブジェクトは同時に複数のターゲット オブジェクトに関連付けられ、異なる重みを設定できます。

  • 目的: 拘束されたゲームオブジェクトを回転して、リンクされたゲームオブジェクトと向かい合うようにします。

  • Look At: コンストレイントされたゲームオブジェクトをリンクされたゲームオブジェクトに回転させます (単純化されたエイムコンストレイント)。

  • 親: リンクされたゲーム オブジェクトを使用して、制約されたゲーム オブジェクトを移動および回転します。

  • 位置: リンクされたゲームオブジェクトのように、制約されたゲームオブジェクトを移動します。

  • 回転: リンクされたゲームオブジェクトと同様に、制約されたゲームオブジェクトを回転します。

  • スケール: リンクされたゲームオブジェクトなど、制約されたゲームオブジェクトをスケールします。

Unityが公式に与えたConstraint Typeコンポーネントの解析です

コンポーネント設定の分析

すべての制約に共通の属性

アクティブ: コンポーネントをアクティブにして編集をロックします。

ゼロ: コンポーネントをリセットし、編集をロックします。

Is Active: コンポーネントをアクティブにするかどうか

Weight: 影響を受けるコンポーネントの重量値

ロック: 編集をロックするかどうか

ソース: 複数のターゲット オブジェクトを関連付けることができますが、コンポーネントの種類によって使用されるウェイト配分は異なります。

目的の制約

Unity では、エイム コンストレイントは、オブジェクトまたはボーンを特定のターゲットに追従させて照準を合わせるために使用できるコンポーネントです。これは、現実的な照準や追跡動作を作成するためにアニメーションやリギングでよく使用されます。

  • オブジェクトの回転を上に: 選択すると、ソース トランスフォームの「上」がソース トランスフォーム自体の回転に合わせて配置されます。これは、ソース変換のローカル座標系の上部が方向付け中に一定のままになることを意味します。
  • オブジェクト アップ: オブジェクト アップ: 選択すると、ソース トランスフォームの「上部」が参照オブジェクトの上部と位置合わせされます。参照オブジェクトは、Aim Constraint コンポーネントにアタッチされたオブジェクトのサブオブジェクトであり、Reference Up プロパティを設定することで指定できます。ソース変換は、方向付け中に参照オブジェクトの上部にスナップします。
  • シーン アップ: このオプションを選択すると、ソース トランスフォームの「上部」がシーンのグローバル上部と位置合わせされます。Global Top は、シーン内のワールド座標系の最上位です。
  • ワールド: このオプションを選択すると、ソース変換の「上」がワールド座標系の上部に揃えられます。これは、基準オブジェクトの変更やシーン内の回転に関係なく、ソース変換は方向付け中常にワールド座標系の上部と位置合わせされたままであることを意味します。
  • Rotation At Rest: 対象オブジェクトの重量が 0 の場合の回転
  • 回転オフセット:自動回転時のオフセット
  • 回転軸のフリーズ: オブジェクト アップ: 回転軸をフリーズします。フリーズした軸をターゲット オブジェクトに関連付けて自動的に回転させることができます。
  • ソース: 複数のターゲット オブジェクトを関連付けることができますが、使用される重みは同じです
  • アップ ベクトル: ソース変換を定義するために使用される「アップ」ベクトル。これにより、ソース トランスフォームがターゲットに面したときにソース トランスフォームの「上」にどのようにスナップするかが決まります。さまざまなアップ ベクター オプションを選択することで、必要に応じて方向付けプロセスでのソース変換の「上部」位置合わせを決定できます。これは、オリエンテーションの行動と結果に影響を与える可能性があります。
  • エイム ベクトル: ソース変換を定義するために使用される方向ベクトル。これは、ソース変換がターゲットに向かう方向を決定します。さまざまなエイム ベクトル オプションを選択するか、カスタム ベクトルを設定することにより、ターゲットに向かうソース変換の方向を制御できます。これは、オブジェクトを特定の方向に向けたり、カメラがターゲットを向くように指定したりするなど、特定の向きの動作が必要な状況で役立ちます。
  • World UP Vector: ソース変換がターゲットに面しているときに「上」方向を決定するために使用されるカスタム ベクトルを定義するために使用されます。これにより、ソース変換が向いているときに、デフォルトのワールド座標系または参照オブジェクトの上方向を使用する代わりに、上方向を手動で指定できます。World Up Vector プロパティは、X、Y、Z コンポーネントを設定することでカスタムの上方向を定義する 3 次元ベクトルです。これらのコンポーネントはプロパティ パネルで直接編集することも、スクリプトのコードを介して設定することもできます。World Up Type プロパティを Custom として選択すると、World Up Vector プロパティが有効になります。カスタム ベクトルを設定すると、ソース変換の上方向を制御して、より正確な制御と方向の効果を実現できます。[ワールド アップ タイプ] として [カスタム] が選択され、カスタム ワールド アップ ベクトルが設定されている場合、他の選択内容 (オブジェクト アップ、シーン アップ、またはワールドなど) がオーバーライドされ、指定したカスタム ベクトルが上方向として使用されることに注意してください。
  • World UP Object: ソースが方向を変換するときにローカル上方向が上方向として使用される参照オブジェクトを指定するために使用されます。World Up Type プロパティが Object Up として選択されている場合、World Up Object プロパティが有効になります。オブジェクトをワールド アップ オブジェクトとして指定すると、ソース トランスフォームが向いているときに、そのオブジェクトのローカルな上方向が上方向として使用されます。World Up Object プロパティを設定するには、Unity エディターの World Up Object プロパティ フィールドにオブジェクトをドラッグするか、コードを通じてプロパティを設定します。ソース トランスフォームがターゲットに面している場合、エイム コンストレイントはワールド アップ オブジェクトのローカルな上方向に従ってソース トランスフォームの上部を揃えます。これにより、参照オブジェクトの上部と一致する向きが可能になります。

 親の制約

Unity の親コンストレイントは、オブジェクトの位置と回転に基づいてオブジェクトの位置と回転を制御するために使用されます。これにより、オブジェクト間に階層関係を作成し、その変換を制御できるようになります。

親コンストレイントを設定すると、親の位置と回転に加えられた変更は、それに応じて子に影響します。子オブジェクトは、コンストレイントの設定に従って、親オブジェクトに対する相対的な位置と回転を維持します。親制約は、Unity で複雑なアニメーション、キャラクター リグ、コントロール オブジェクト階層を作成するのに役立ちます。これらは、親子関係を確立し、オブジェクト間の遷移を同期するための便利な方法を提供します。

  • 静止位置:対象物の重量が0のときの位置
  • Rotation At Rest: 対象オブジェクトの重量が 0 の場合の回転
  • 位置軸のフリーズ: 移動軸をフリーズします。フリーズした軸をターゲット オブジェクトに関連付けて自動的に移動できます。
  • 回転軸のフリーズ: 回転軸をフリーズします。フリーズした軸は、ターゲット オブジェクトの自動回転に関連付けることができます。
  • ソース: 複数のターゲット オブジェクトを関連付けることができ、異なる重みを設定できます。

その他は逐一紹介しないが、大まかに言えば、2つのオブジェクト間に親子関係がない場合の親子オブジェクトの操作を実現することである。

まとめ

制約: コンポーネント シリーズは、オブジェクトを別のオブジェクトのサブオブジェクトとして設定せずに多くの操作を使用できるように、別のゲーム オブジェクトに対してゲーム オブジェクトの一部の操作を行うために使用されます。

Unity では、コンストレイント (Constraint) は、オブジェクト間の関係や動作を制御するために使用されるコンポーネントです。これらにより、オブジェクト間の制約を定義して、さまざまな効果や相互作用を実現できます。

  1. Position Constraint: 1 つのオブジェクトを別のオブジェクトの位置に追従させます。位置制約コンポーネントをフォロワー オブジェクトに追加すると、その位置をターゲット オブジェクトの位置と揃えたり、ターゲット オブジェクトの位置からオフセットしたりできます。

  2. 回転コンストレイント: 1 つのオブジェクトを別のオブジェクトの回転に追従させます。Rotation Constraint コンポーネントをフォロワー オブジェクトに追加すると、その回転をターゲット オブジェクトの回転と揃えたり、オフセットしたりすることができます。

  3. スケール コンストレイント: 1 つのオブジェクトを別のオブジェクトのスケールに従わせます。スケール コンストレイント コンポーネントをフォロワー オブジェクトに追加すると、そのスケールをターゲット オブジェクトのスケールに揃えたり、比例させたりすることができます。

  4. 軸拘束: 1 つのオブジェクトを別のオブジェクトに向けます。軸コンストレイント コンポーネントを面オブジェクトに追加すると、対象オブジェクトまたは面オブジェクトが向く方向を指定できます。

  5. 距離制約: 2 つのオブジェクト間の距離を制御します。距離コンストレイント コンポーネントをオブジェクトに追加すると、そのオブジェクトとターゲット オブジェクト間の最小距離または最大距離を指定できます。

  6. 物理コンストレイント: 物理エンジンを使用して、オブジェクト間のコンストレイント関係を制御します。たとえば、物理コンストレイントを使用して、2 つのオブジェクトを接続するロープ、ジョイント、スプリングなどをシミュレートできます。

これらの制約コンポーネントを使用すると、さまざまなオブジェクト間の複雑な相互作用や関係を実現できます。制約コンポーネントは、Unity エディターで手動で追加および構成することも、実行時にスクリプトを通じて動的に追加および制御することもできます。制約は非常に強力で柔軟なツールですが、複雑さも増す可能性があります。各制約タイプのプロパティと使用法について学び、その効果とパフォーマンスへの影響を慎重に比較検討して使用してください。

おすすめ

転載: blog.csdn.net/qq_66312646/article/details/131106811