新しいコンストレイント エディタを使用して、シーン内の複数のオブジェクトの動作と関係をコントロールします。プログラミングの専門知識がなくても、複雑でダイナミックなアニメーションやインタラクションをデザインできます。位置、方向、エイム、または親コンストレイントを作成し、シーングラフまたは対応するモジュールからコンストレイント エディタに、コンストレイントするノードをドラッグ アンド ドロップします。
ビデオのキャプション : メイン メニューにあるコンストレイント エディタにより、直感的なドラッグ アンド ドロップ機能を使用して、位置、方向、エイム、および親コンストレイントを作成することができます。この機能により確実に正確な操作を行えるようになるため、非常にリアルで応答性の高いアニメーションや動きを作成することができます。プラス記号のアイコン、[作成]メニュー、または右クリックで表示されるコンテキスト メニューを使用して、位置、方向、エイム、または親コンストレイントを作成することができます。
コンストレイントはターゲット ノードとコンストレイントされたノードで構成され、シーングラフやその他のモジュールからオブジェクトをドラッグすることで簡単に割り当てることができます。
エイム コンストレイントには、カメラ エディタと同様のアップ ベクトル ノードもあります。
実際、カメラ エディタで作成されたエイムまたはエイムとアップが含まれるカメラは、エイム コンストレイントとして表示されるようになり、コンストレイント エディタ内で直接簡単に調整できるようになりました。
使用可能なコンストレイント タイプについて詳しく見てみましょう。
位置コンストレイントは、オブジェクトが 1 つまたは複数のターゲット オブジェクトの位置に追従するようにします。一緒に移動したり、互いに動的にトラッキングしたりする必要があるオブジェクトに最適です。
方向コンストレイントは、オブジェクトの回転をロックして、オブジェクトとターゲットの方向が揃うようにします。これは、歯車機構のパーツ間の回転を同期する場合に特に便利です。
エイム コンストレイントを使用すると、オブジェクトが常にターゲットの方向を向くようにすることができます。これはカメラ、ヘッドライト、トラッキング システムなどに最適です。アップ ベクトルを定義してオブジェクトの方向を固定し、不要な反転を防ぐこともできます。
親コンストレイントを使用すると、他のオブジェクトから移動、回転、およびスケールを継承できるため、シーングラフの階層を変更せずに親子関係を作成することができます。これにより、完全な柔軟性を備えた階層的動作が可能になります。
コンストレイントは複数のターゲット ノードを使用でき、各ターゲットにウェイト付けすることができます。これにより、各ターゲットがコンストレインされたオブジェクトに与える影響を制御することができ、モーションのブレンドや加重平均の作成に役立ちます。
複数のコンストレイントされたノードを単一のターゲットに割り当てて、1 つのオブジェクトにより多数の他のオブジェクトの動作を制御することもできます。
エディタではオフセットを維持して、コンストレインされたオブジェクトのターゲットに対する相対位置が保持されるようにすることもできます。または、オフセットを無効にして直接継承することもできます。
スケーリング係数を使用すると、トランスフォームを反転または増大することもできます。これは歯車の回転システムのように、同期しながらミラー化されているモーションに最適です。
さらに、トランスフォーム エディタを使用してオブジェクト制限を設定することもできます。この機能を使用すると、X、Y、Z 軸に沿った移動、回転、またはスケールをすばやく効率的に制限できるため、制御性と精度が向上し、複雑な設定を管理しやすくなります。
コンストレイントの追加情報については、以下を参照してください。
コンストレイント エディタは次の項目で構成されています。
メニュー バーでは、評価シーケンスの書き出し、コンストレイントの作成、編集、選択を行うツールを検索することができます。
ツールバーでは、使用頻度の高いツールにすばやくアクセスできます。
基本的な検索とフィルタリングでは、特定のコンテンツをすばやく見つけることができます。
Constraint Lister を利用すると、コンテンツを視覚的に整理し、コンストレイント コンテンツを操作できます。ノードを展開したり折りたたんだりして、特定の項目をすばやく見つけられます。Constraint Lister ドロップダウンで基本検索とフィルタを使用し、さらに検索を絞り込むことができます。また、右クリックでコンテキスト メニューを使用し、ツールにすばやく簡単にアクセスできます。
アトリビュート パネルでは、コンストレイントのアクティブ化/非アクティブ化、説明の追加、ビューポートでのコンストレイントの表示/非表示、ウェイトの設定などを行うことができます。これらの詳細については、 アトリビュート を参照してください。

コンストレイントの動作および設定方法については、[ファイル] > [サンプルを開く]でサンプル シーン ファイルを確認し、constraint_example.vpb を開き、[アニメーション] > [タイムライン]を選択してアニメーション タイムラインを表示し、
を押します。
コンストレイントを作成する
を使用し、作成するコンストレイントのタイプを選択します。コンストレイントが作成されると、Constraint Lister に追加され、調整可能なアトリビュートが右側のパネルに読み込まれます。シーングラフまたは他のエディタのノードをターゲット ノードおよびコンストレイント対象ノードにドラッグして、コンストレイント関係を作成します。
をクリックし、作成するコンストレイントのタイプを選択します。
Constraint Lister で、新しいコンストレイントを展開します。
シーングラフまたはその他のエディタから 1 つまたは複数のノードを[ターゲット ノード]ノードにドラッグして、ターゲット オブジェクトを作成します。別のノードを[コンストレイント対象ノード]ノード上にドラッグして、コンストレイントされたオブジェクトを作成します。

ここで、ターゲット オブジェクト(赤いレバー)を移動すると、コンストレイントされたオブジェクトも同様に移動されます。

(オプション) Constraint Lister で、ターゲット ノードとコンストレイントされたノードの親を選択して、設定を変更します。アクティブまたは非アクティブに設定でき、名前を変更し、説明を追加できます。コンストレイント ハンドルの表示の有無と、そのサイズを決定します。ドラッグしたオブジェクト ノードを選択して、ウェイト付けを変更します。
コンストレイントを選択する
コンストレイント ハンドルは[Shift]+ LMB を使用してビューポート内で選択できますが、選択するには表示可能で十分な大きさである必要があります。コンストレイント ノードを右クリックして、コンテキスト メニューから[以下のオブジェクトを選択] > [シーングラフ]を選択することもできます。コンストレイント ハンドルを選択すると、そのターゲットが選択され、ビューポートで黄色でハイライト表示されます。シーングラフとコンストレイント エディタ(開いている場合)で、それらのノードが選択され、青色でハイライト表示されます。
ツールバーで、[トランスフォーム]と[バウンディング]が有効になっていることを確認します。
コンストレイント エディタで親ノードを展開し、コンストレイント ノードを選択します。この例では、Arrows フォルダが展開され、Orientation Constraint ノードが選択されています。

[コンストレイントを表示]がオンになっていることを確認し、[スケール]を 300 などの大きな値に増やして、コンストレイント ハンドルを簡単に確認して選択できるようにします。
| スケール = 100 | スケール = 300 |
|---|---|
![]() |
![]() |
ここで、[Shift]+で拘束ハンドルを選択するか、コンストレイント ノードを右クリックして[以下のオブジェクトを選択] > [シーングラフ]を選択します。
コンストレイントを保存する
コンストレインを作成し、[ファイル] > [保存]または[名前を付けて保存]を使用してシーンを .vpb として保存すると、コンストレイントはジオメトリ アセットに保持され、シーンにリロードしたときに期待どおりに動作します。
クリッピング プレーンをコンストレイントする
コンストレイントされた移動可能なクリッピング プレーンを設定するには、World-to-Local アプローチを使用します。これによりワールド トランスフォームが計算されますが、コンストレイントはクリッピング プレーンにローカルに適用されます。これにより、クリッピング プレーンが親のコンストレイントを使用して別のノードにコンストレイントされ、移動できるようになります。
コンストレイント エディタでコンストレイントを作成後に展開して、[コンストレイントされたノード]ノードを表示します。
シーングラフで、クリッピング プレーンをコンストレイント エディタのコンストレイントされたノードにドラッグ アンド ドロップします。
コンストレイント エディタでクリッピング プレーンを選択してから、[トランスフォームの適用]アトリビュート セクションで、[ターゲットから]を[ワールド]に、[コンストレイント対象]を[オブジェクト]に設定します。
![[アトリビュート]パネルの[トランスフォームの適用]セクション](../../../../images/Constraints_ApplyTransf.png)
コンストレイントの作成および削除を元に戻す
UI では、コンストレイントの作成および削除を元に戻すことはできません。ただし、Python を使用すると、vrConstraintService でコンストレイントの作成および削除を元に戻すことができます。
評価シーケンスを書き出す
評価シーケンスの書き出しを使用して、シーンに適用されているすべてのコンストレイントを単一のコンストレイント ファイルに書き出すことができます。たとえば、コンストレイントのセット内のコンストレイントの共有、並べ替え、および有効/無効化を行う場合にこのファイルを使用します。このファイルは他のユーザと共有できます。
設定の制限
トランスフォーム エディタに照準コンストレイントに関する[移動の制限]、[回転の制限]、[スケールの制限]を追加し、カメラの移動の制限に関する[カメラ エディタ] > [カメラ設定] > [ビュー]セクションに[移動の制限]および[回転の制限]を追加しました。これらを使用すると、ターゲットの移動、回転、およびスケーリングに制限を設定し、そのトランスフォームを範囲セットに制限することができます。これらはコンストレイントと一緒に使用できますが、ターゲット ノードまたはコンストレイント ノードを制限する上で必須ではありません。X、Y、Z 軸に沿った移動、回転、スケーリングを[移動元/移動先]の制限で定義することで、これらをすばやく制限できます。赤は X、緑は Y、青は Z です。
シーングラフで制限があるノード(
)を特定するには、展開列を使用します。

アイコンをダブルクリックすると、トランスフォーム エディタが開き、ノードが選択されて、制限セクションが表示されます。

シーングラフで、制限するノードを選択します。
クイック アクセス バーで[トランスフォーム]を選択し、トランスフォーム エディタを開きます。
トランスフォーム エディタでノードを選択した状態で、[アトリビュート]の[基本]タブで、トランスフォームを制限するセクションを展開します。たとえば、[移動]セクションを展開します。
制限セクションの前にあるボックスをクリックして有効にし、セクションを展開して制限を設定します。
