ICE のコンポーネントを指定および修正する

 
 
 

ICE オペレータ以外でインタラクティブにモデリングする場合は、ビューポートで選択することによって対象のコンポーネントを指定します。ICE を使って手続き型でモデリングする場合も、何らかの方法でコンポーネントを指定する必要があります。これはコンポーネントのインデックスを使用して行われます。コンポーネントは、それらのインデックスを明示的にリストすることによって指定するか、希望のインデックス値を手続き型で計算することができます。[Delete Vertex]などのトポロジ ノードの多くでは、コンポーネント インデックスを、1 つの整数、整数の配列、または(おそらくフィルタされた)整数の集合として指定できます。

エクスプリシット インデックスを指定する

ICE トポロジ ノードのスライダを使って 1 つのコンポーネントを指定できます。または、配列を接続することによって複数のコンポーネントを指定できます。Build Array(配列の作成)またはString to Array(配列する文字列)などのさまざまな配列ノードで配列を作成することができます。

エクスプリシット インデックスは ICE モデリングを学習するときには便利ですが、コンパウンドの開発およびデバッグを行う際にはとても制限的なものです。さまざまな条件に基づいてインデックスを手続き型で計算する方がより強力です。

インデックスを手続き型で計算する

インデックスを手続き型で計算する 1 つの方法として、1 つ以上の条件を満たさないインデックスをフィルタで除外する方法があります。Test Polygon Inside Null(ヌルの内側のポリゴンのテスト)コンパウンドは、Preset Manager の[タスク](Tasks) [トポロジ](Topology)グループの[条件付き](Conditionals)グループにあります。または、結果がブール値である計算を使って独自のテストを作成することができます。

コンポーネント インデックスをテストするコンパウンドを使用する

[条件付き](Conditionals)グループにも、Test Edge Index(エッジインデックスのテスト)Test Polygon Index(ポリゴンインデックスのテスト)Test PolyNode Index(ポリノード インデックスのテスト)Test Vertex Index(頂点インデックスのテスト)という、さまざまな方法で各コンポーネント タイプのインデックスを指定するためのコンパウンドが含まれています。

これらのノードは、コンポーネントの指定がいずれの方法でも可能なコンパウンドを作成するときに特に便利です。

コンポーネント タイプを変更する

コンポーネント タイプを切り替えることが必要になる場合があります。たとえば、ポリゴンでテストを行った結果、関連付けられているエッジを修正する必要が発生した場合などです。このような場合には、[PolygonToEdges]属性を使用することができます。この属性は、ポリゴンごとの整数配列で、そのポリゴンが持つエッジのインデックスを格納しています。すべてのポリゴン メッシュ コンポーネント(頂点、エッジ、ポリゴン、ノード(ポリノード))間で変換ができるように、他にも同様の属性が用意されています。

以下の例は、フィルタされたポリゴンのセットから、フィルタされたエッジ インデックスのセットを作成する方法を示しています。

この例は、頂点インデックスの配列から、フィルタされたポリゴン インデックスのセットを作成する方法を示しています。

コンポーネントを修正する

Preset Manager の[ツール]タブの[Topology]カテゴリ内のノードは、指定されたコンポーネントを修正します。これは、ICE 以外の対応するトポロジ オペレータと同じ操作を実行します。トポロジを取得し(または、Self.Topologyの入力を接続しないままにし)、トポロジ ノードに接続して、トポロジを設定します。

[タスク](Tasks) [Topology]グループの[Modifiers]グループ内のコンパウンドを使用することもできます。これらには、コンポーネントを指定するための組み込みのオプションがあります。また、ICETree ルートに次々と直接的に接続されるようにする、実行タイプの出力もあります。

ループの処理

ループを処理するときに役立つコンパウンドもいくつかあります。オープン メッシュのループは一方向(特定のエッジから 1 つまたは他の境界)であることに注意してください。

  1. ヌルを取得します。このヌルは、近接によってエッジを指定するために使用します。
  2. Get Closest Edge Index from Null(ヌルから最も近いエッジ インデックスの取得)をルートに接続し、ヌルの名前に接続します。これは、最も近いエッジのインデックスを、後からツリーで取得できるようにカスタム パラメータ値として格納します。
  3. Get Edge Loop(エッジ ループの取得)を接続し、そのオプションを設定します。これは、ループ内の、エッジ、ポリゴン、頂点についてその他のカスタム属性を格納します。
  4. 最後にGet Edge is on Edge Loop(エッジ ループで エッジ を取得)Get Polygon is on Edge Loop(エッジ ループでポリゴン を取得)Get Vertex is on Edge Loop(エッジ ループで頂点 を取得)を使用してコンポーネントを取得し、モディファイアとともに使用します。