ICE ノードを接続する

 
 
 

通常、ICE ノードを接続するには、一方のノードの右側にある出力ポートをクリックして別のノードにドラッグしてから、入力ポートを選択します。反対に、入力ポートから出力ポートにドラッグして、2 つのノードを接続することもできます。データは出力ポートから入力ポートへ接続に沿って移動し、チェインの次のノードによって処理されます。

ポートが接続されると、対応するパラメータの値がその接続によって設定されます。パラメータの値をノードのプロパティ エディタで設定することはできなくなります。さらに、そのコントロール(チェックボックス、スライダなど)が表示されなくなります。接続を削除すると、コントロールはプロパティ エディタに再び表示されるようになります。

2 つの特定のポートを接続できるかどうかは、次のような特別な要素によって決まります。

ある 2 つのポートを接続できない場合、これらの要素のうち 1 つまたは複数が互換性を持たないことが原因であると考えられます。

[Divide by Scalar]など、一部のノードの入力ポートの数は固定されています。ただし、その他のノードでは接続の数に制限はありません。たとえば、[Multiply]では、いくつの値を掛け合わせてもかまいません。「複数のポートを管理する」を参照してください。

重要:入力ポートに接続すると、その値の既存のアニメーションは失われます。

ポートを表示および非表示にする

ノードは、次の 3 種類のいずれかの状態で表示されます。

  • 展開: すべての出力ポートと入力ポートを表示します。この表示状態は、ノードの接続を頻繁に作成および調整する場合に便利です。

  • 集約: ポートをまったく表示しません。この表示状態は、ツリーでの作業を終え、ビューを単純化する場合に便利です。

  • 接続のみ表示: 部分的に展開され、部分的に集約された状態で、すべての出力ポートとすべての接続された入力ポートを表示します。この表示状態は、すべての入力接続の作成を終えたけれど、引き続きその接続状態を確認する場合に便利です。

接続されているポートが非表示の場合、マウス ポインタを接続線の上に移動すると、そのポートの情報を表示できます。

     

展開

集約

接続のみ表示

ノードの表示状態を変更するには

  • ノードの右上隅にあるアイコンをクリックすると、3 つの状態を切り替えることができます。

選択したノードの表示状態を変更するには

  1. ノードをいくつか選択します。

  2. [表示](Show)メニューから次の項目のいずれかを選択します。

    • 選択の展開

    • 選択のみ接続を表示

    • 選択の集約

すべてのノードの表示状態を変更するには

  • [表示](Show)メニューから次の項目のいずれかを選択します。

    • 全展開

    • 接続のみ表示

    • すべて集約

新しく追加したノードのデフォルトの表示状態を設定するには

  • [表示](Show)メニューから次の項目のいずれかを選択します。

    • ノードを作成して展開

    • ノードを作成して接続のみ表示

    • ノードを作成して集約

ポート レイアウト グループ

一部のノードでは、入力ポートはポート レイアウト グループにまとめられています。これらのグループは三角形と太字のテキストで示されています。ノードが展開されている場合、三角形をクリックすることによってこれらのレイアウト グループを集約または展開できます。

展開した状態(A)と集約した状態(B)のポート レイアウト グループ。

オペレータを接続する

ノードが既にツリーに存在する場合、出力ポートのアイコンを別のノードにドラッグすることによって、その出力ポートを接続することができます。または、(コンパウンドでなく)ベース ノードであれば、ノードを Preset Manager からポートまたは接続にドラッグして、新しいノードを追加すると同時に接続することもできます。

既存のノードを接続するには

  1. ノードの右側にある出力ポートをクリックしてから、別のノードにドラッグします。ドラッグしている間、接続を表す矢印が表示されます。ワークスペースの端に接続をドラッグすると、自動的にビューがスクロールされます。

  2. 次のいずれかの操作を実行します。

    • ポートのリストが完全に展開されていない(つまり、一部の入力ポートが表示されていない)場合は、マウス ボタンを離すと、その接続に有効なすべての入力ポートを示すポップアップ メニューが表示されます。メニューからポートを選択し、そのポートに接続します。既に接続されているポートは、メニューに黒丸付きで表示されます。既に接続されているポートを選択すると、古い接続が新しい接続で置き換えられます。[Shift]キーを押すと、複数のポートを選択する間、メニューを開いたままにしておくことができます。

    • ポートのリストが完全に展開されている場合は、特定の入力ポート上でマウス ボタンを離して接続します。マウス ポインタを有効なポートの上に置くと、ポートが白でハイライトされます。

    同一の出力を必要な数だけの入力に接続できます。

ノードを追加して入力に接続するには

  • Preset Manager から接続先のノードに、(コンパウンドではなく)ベース ノードをドラッグします。マウス ボタンを離すと、新しいノードの輪郭線にプラス記号ではなく矢印が表示されます。

    • 目的の入力ポートが表示されている場合は、新しいノードをその上にドラッグします。ポートがハイライトされたら、マウス ボタンを離します。

    • 目的の入力ポートが表示されていない場合は、間違って不要なポートをハイライトしていないことを確認してから、ノード上でマウス ボタンを離します。有効な入力ポートが 1 つしかない場合は、自動的にそのポートが接続されます。それ以外の場合は、ポップアップされるメニューから必要なポートを選択します。既に接続されているポートは黒丸付きで表示されますが、接続済みのポートを再度選択して既存の接続を置き換えることもできます。

2 つのノード間に別のノードを挿入するには

  • Preset Manager から接続を表す線の上に、(コンパウンドではなく)ベース ノードをドラッグします。カーブの一部がハイライトされた時点でマウス ボタンを離すと、新しいノードの輪郭線にプラス記号ではなく矢印が表示されます。

    新しいノードの入力と出力は、最初に利用できる有効なポートに応じて接続されます。目的のノードがない場合は、再接続します。

    この方法でノードを挿入すると、[Multiply by Scalar]ノードを追加して振幅をより細かく制御する場合など、数多くの状況で役に立ちます。

ポートの接続を解除する

  1. マウス ポインタを入力ポートの近くにある線の上に移動します。線が白でハイライトされます。

  2. 線をクリックして、ポインタがハサミの形になるまでポートから離れるようにドラッグします。続けて、マウス ボタンを離します。

最初の接続を解除せずに新しいノードを接続して、接続を置き換えることもできます。

複数のポートを管理する

[Execute]、[Add]、[Multiply]などの一部のノードでは、接続できる入力の数に制限はありません。これらのノードには、「New(ポート名)」という特別な仮想ポートがあります。

追加のノードを接続するには

  • 目的の新しい仮想ポートに接続します。指定したポート タイプの新しいインスタンスが作成され、接続されます。

ポートを追加するには

  • 目的のポートを右クリックし(「New」という名前のポートまたは既存のポート)、[前にポートを挿入](Add Before)または[後にポートを挿入](Add After)を選択します。

ポートを削除するには

  • 目的のポートを右クリックし、[ポートの削除](Delete Port)を選択します。

データ タイプ

データ タイプは、ブール、整数、スカラ、ベクトルなど、ポートが渡したり受け取ったりすることができる値の種類を定義します。

データ タイプ間に互換性がない場合は、2 つのポートを接続することはできません。ただし、[Conversion]カテゴリ([ツール])のノードを使用すれば、複数のデータ タイプ間で変換を実行できます。場合によっては、ポートを接続しようとしたときに変換ノードが自動的に追加されることもあります。たとえば、スカラ出力を整数入力に接続すると、[Round]ノードが挿入されます。

さまざまなポート タイプと各関連データ タイプについて、次の表で説明します。

 

タイプ

説明

 

多様型

さまざまなデータ タイプの入力に使用します。「多様型ポート」を参照してください。

 

ブール

ブール値。True または False。

 

整数値

小数部分のない正または負の数値。たとえば、7、–2、0。

 

スカラ

小数値として表される実数。たとえば、3.14。内部的には、これは単精度浮動小数値です。

 

カラー

RGBA チャンネルを示す 4 つのスカラ値で表されるカラー値。

 

2D ベクトル

スカラ値で表される 2 次元ベクトル[x, y]。たとえば、UV 座標。

 

3D ベクトル

エントリがスカラである 3 次元ベクトル[x, y, z]。たとえば、位置、速度、フォースなど。

 

4D ベクトル

スカラ値で表される 4 次元ベクトル[w, x, y, z]。

 

クォータニオン

クォータニオン[x, y, z, w]。クォータニオンは通常、向きを表すために使用します。クォータニオンは簡単にブレンドおよび補間でき、アニメートされた回転を処理する際のジンバルロック問題の回避に役立ちます。

 

回転

軸ベクトル[x, y, z]および角度(単位: 度)によって表される回転。

 

3x3 マトリクス

実数で表される 3x3 マトリクス。3x3 マトリクスは多くの場合、回転およびスケーリングを表すために使用します。

 

4x4 マトリクス

実数で表される 4x4 マトリクス。4x4 マトリクスは多くの場合、変換(スケーリング、回転、移動)を表すために使用します。

 

シェイプ

プリミティブ ジオメトリ シェイプ。または、シーン内のオブジェクトのシェイプへのリファレンス。このデータ タイプは、パーティクルのシェイプを決定するために使用されます。

 

ジオメトリ

シーン内のジオメトリ オブジェクトへのリファレンス。たとえば、ポリゴン メッシュ、NURBS カーブ、NURBS サーフェイス、ポイント クラウドなど。ジオメトリのサーフェイスをサンプリングして、パーティクル放出のためのサーフェイスの場所を生成できます。

 

サーフェイスの場所

ジオメトリ オブジェクトのサーフェイス上の場所。ロケータがオブジェクトのサーフェイスに固定され、オブジェクトが変形またはデフォームした場合も、ロケータはオブジェクトと共に移動し、同じ相対的な位置にあり続けます。

 

文字列

文字列。文字列は、ファイル パスなどを保存するためにカスタム ノードで使用できます。

 

トポロジ

ポリゴンメッシュオブジェクトのトポロジー。これは ICE モデリングに使用されます。

 

実行

従来の意味でのデータ タイプとは異なります。[Set Data]の出力などの[Execution]ポートを[Execute]またはルート ノードに接続し、ツリーでの実行の流れを制御します。

 

リファレンス

このタイプも、従来の意味でのデータ タイプとは異なります。シーン内のオブジェクト、パラメータ、属性へのリファレンスであり、文字列として表現されます。「リファレンスを連結する」で説明されているとおり、リファレンスは連結することができます。

多様型ポート

多様型ポートでは、複数の異なるデータ タイプを受け取ることができます。たとえば、[Add]ノードを使用すると、複数の整数、複数のスカラ、複数のベクトルなどをまとめて追加することができます。

値を多様型ポートに接続すると、そのポート タイプは解決済みになります。同じノードおよび接続されたノードにある他の入力ポートと出力ポートも解決済みになり、特定のデータ タイプしか受け取らなくなる可能性があります。これは、たとえばベクトルに整数を追加できないという事実を反映しています。

   

何も接続されていない状態では、[Add]ノードのポートは未解決です(黒)。

ノードを[Value1]に接続し、その後[Value2]に接続すると、結果は解決済みになります。この場合、ポートは 3D ベクトルの黄色になります。

ポートのタイプが解決済みになった後でも、接続を別のデータ タイプで置き換えることによって変更できます。ただし、これはポートがツリー内の他の接続によって解決されていない場合のみ機能します。

接続されているノードによってデータ タイプが強制されなくなると、ポートの色は元に戻りません。これは、別の場所に接続すると変化する場合もありますが、データ タイプが解決済みの状態になっていることを示します。その意味では、多様型であるといえます。この動作は、ツリーに追加するコンパウンドにも当てはまります。ポートの色が特定の接続のみを受け取ることを示していても、実際にはどのような接続でも実行できます。

ポートのタイプが未解決の場合、値をプロパティ エディタで設定することはできません。解決されると、プロパティ エディタに適切なコントロールが表示されるようになります。データ タイプによって、使用するコントロールは異なります。たとえば、ブールにはチェックボックス、スカラにはスライダ、などです。

   

接続する前の[Add]ノードのプロパティ エディタは空です。

接続後、[Value2]のコントロールが表示されます。[Value1]は接続によって設定されているので、コントロールはありません。

多様型ポートは複数のデータ タイプを受け取りますが、すべてのタイプの接続を受け取るとは限りません。たとえば、[Pass Through]ノードのポートはあらゆるタイプの値を受け取りますが、一方[Multiply by Scalar]ノードでブール値を使用することはできません。

コンテキスト

2 つのポートを接続できるようにするには、それぞれのコンテキストに互換性が必要です。コンテキストは、基本的にデータの所有者(オブジェクト自体、またはそのポイント、ポリゴン、エッジ、ポリノードなど)です。たとえば、オブジェクト全体に対する 1 つの値が存在する場合、ポイントごとに新しい値を設定することはできません。一方、コンテキストがポイントごとに存在する場合、それぞれが独自の値を持つため、1 つのポイントに値を設定しても、他のポイントの値には影響しません。

コンテキストは次の 2 つの要素によって決まります。

  • データに関連付けられているエレメントのタイプ: オブジェクトまたは特定のコンポーネント タイプ。

  • コンポーネントが属するオブジェクト。

データのコンテキストは、多様型ノードのデータ タイプと同様、ノード接続全体で継承されます。

エレメントタイプのコンテキスト

ツリー内のデータのコンテキストの一部は、関連付けられているエレメントのタイプ(ポイント、エッジ、ポリゴン、オブジェクトなど)によって決まります。たとえば、ポリゴン法線にはポイント位置を追加することはできません。どちらの値も 3D ベクトルですが、典型的なメッシュでは、ポイントよりポリゴンの方が少なく、どのポイント位置をどのポリゴン法線に追加するか決定する適切な方法はありません。つまり、それぞれが異なるコンテキストに属しているといえます。

次の表は、コンテキストを定義するさまざまなエレメント タイプを示しています。

コンテキスト

説明

シングルトン

1 つの値のみを含むデータ セット。

例: オブジェクトの位置、ボーンの長さ、メッシュのボリュームなど。

詳細については、「シングルトン コンテキスト」を参照してください。

ポイント

ジオメトリ オブジェクト(ポイント クラウド、ポリゴン メッシュ、NURBS サーフェイス、カーブ、ラティスなど)の各ポイントに 1 つの値を含むデータ セット。

例: ポイント位置、エンベロープ ウェイトの割り当てなど。

ライン

各エッジ、サブカーブ、サーフェイス境界に 1 つの値を含むデータ セット。

例: エッジの長さなど。

フェイス

各ポリゴンまたはサブサーフェイスに 1 つの値を含むデータ セット。

例: ポリゴン法線、ポリゴン エリアなど。

サンプル

ジオメトリの各テクスチャ サンプルに 1 つの値を含むデータ セット。サンプルは通常、ポリゴン メッシュ上のポリゴン ノードですが、NURBS サーフェイスやカーブにもサンプルがある場合があります。

オブジェクト コンテキスト

コンポーネント データのタイプによってコンテキストが決まるように、コンポーネントが属するオブジェクトによってもコンテキストが決まります。たとえば、あるオブジェクトのポイント位置を別のオブジェクトのポイント位置に追加することはできません。ポイント位置のどの特定のペアを追加すべきか決定する適切な方法はなく、通常は 2 つのオブジェクトが同数のポイントを持っていることすら考えにくいものです。ただし、例外もあります。オブジェクトが複製されているケースです。この場合、「コンテキストを切り替える」で説明されているとおり、[Switch Context]ノードを使用できます。

オブジェクトのコンポーネントではなくオブジェクトに属するデータは別のコンテキストです。ほとんどの場合、このデータは、次に説明するシングルトン コンテキストに属します。

シングルトン コンテキスト

シングルトン コンテキストに属する 1 つの値のみを含むデータ セットです。シングルトン データは、関連付けられているオブジェクトに関わらず、常に他のシングルトン データと互換性があります。

また、シングルトン データは通常、他のデータ コンテキストとも互換性があります。たとえば、オブジェクトの位置(シングルトン コンテキスト)をそのポイント位置(ポイント コンテキスト)に追加できます。オブジェクトの位置を別のオブジェクトのポイント位置に追加することも可能です。

ノードバインド コンテキスト

データ セットがシーン内のオブジェクトのエレメントにバインドされていない場合があります。たとえば、[Generate Sample Set]ノードは、ジオメトリ オブジェクトのサーフェイスにランダム ポイント ロケータのセットを生成します。次の図では、各ポイント ロケータのポイント クラウドにポイントが追加されています。

[Generate Sample Set]ノードから[Add Point]ノードに渡されるポイント ロケータのセットのサイズは、シーン内のあらゆる種類のエレメントの数と必ずしも一致しません。セットのサイズは、実際には[Generate Sample Set]ノードの[Rate]パラメータによって制御されています。このような場合、このデータのコンテキストは[Generate Sample Set]が所有していることになります。

通常、ノードバインド コンテキスト同士では互換性がありません。たとえば、同じジオメトリに 2 セットのロケーションを生成すると、それぞれが異なるノードにバインドされ、結合できなくなります。

構造

データ タイプとコンテキストに加えて、ポートの互換性を決定する要因としてストラクチャが挙げられます。ストラクチャの種類には、シングルと配列(順序集合)の 2 つがあります。

  • シングル ストラクチャは、データ セットの各エレメントに 1 つの値を持ちます。たとえば、各ポイント位置は単一の 3D ベクトルです。

  • 配列ストラクチャは、データ セットの各メンバにゼロ、1 つ、または複数の値を持ちます。配列の値の数は、データ セットのメンバごとに異なります。たとえば、ポリゴン メッシュの隣接するポイントは、各ポイントの接続に応じて異なる数の値を持つ配列になります。

配列の操作の詳細については、「ICE Tree で配列を操作する」を参照してください。