プロシージャル モデリングのヒント

 
 
 

ICE モデリング ツリーを構築する際には、注意すべき点がいくつかあります。

トポロジ属性を設定する

[Topology]属性の設定は、実質的に、それまでに蓄積されたすべてのトポロジ操作を実行することになるため、時間がかかります。特に、Repeat や While などのループ内で設定することは避けてください。ループ内ではカスタム属性として値を保存し、実際の[Topology]属性は後で設定することをお勧めします。

ただし、操作によっては、トポロジが設定されるまで完了できないものもあります。たとえば、次のように記述します。

新規コンポーネントの属性値

[PointPosition]などの固有属性を除き、新しいコンポーネントの ICE 属性は既定値に設定されます。たとえば、ICE 以外のオペレータを使用して新しいポイントを追加するとウェイトが補間されますが、そのような補間は行われません。したがって、新しいコンポーネントを検索するには、[PreExisting]などのカスタム属性を True に設定し、トポロジを設定して、PreExisting = False でフィルタリングします。

無効なジオメトリを作成する

非接続頂点などの無効なジオメトリを作成することができます。このような頂点は、ツリー全体が評価された後に自動的にクリーンアップされますが、ツリーの実行ブランチ間にはそのまま残っています。ただし、このような無効頂点の属性を取得すると、[PointPosition]などの固有属性であっても不正な値が返されることになります。

シミュレーション トポロジ

シミュレーション領域にポリメッシュの[Topology]属性を設定することはできませんが、トポロジ値を計算し、その値を使用して、別のオブジェクトのシミュレーション ICE ツリーにカスタム属性を設定することはできます。そして、空のメッシュのモデリング領域内の ICE ツリーからこの属性を取得し、それを使用して、Self.Topology を設定することができます。

別のコンポーネント コンテキストからデータを取得する

モデリングを行う際、別のコンテキストとの間でデータの取得や設定を行わなければならない場合があります。たとえば、現在のコンテキストがポリゴン単位で、アクセスする必要があるのはエッジ単位のデータという場合などです。このようなときには、どのコンテキストでもアクセスできるコンポーネント データ配列を作成するのに[Build Array from Set]ノードが役に立ちます。次のサブツリーでは、ポリゴン単位で最も長いエッジの長さが取得されます。

[Build Array from Set]をフィルタリングされたセットとともに使用する場合は注意してください。フィルタリングされた値は、そのデータ型のデフォルト値で置き換えられます。

単一コンポーネントの属性の値を取得し、任意のコンテキストでその値にアクセスする必要がある場合は、Preset Manager の[タスク](Task) [トポロジ](Topology)タブにある[Conditionals]グループのいずれかの[Test Component Index]コンパウンドの[Per Object Single Valu]出力ポートを使用します。