シーンノードの導入

導入

ノードは、Cinema 4Dのユーザーにとっては新しいものではありません。XPressoシステムや、もちろんマテリアルシステムは、いくつかのバージョンでCinema 4Dの一部になっています。ノードシステムは個々の機能をノードとして利用できるようにし、特定の情報を交換するためにほかのノードと接続できるグラフィックエレメントとして表示されます。複数のノードを接続すると、プログラミング言語のように、計算や特定の機能を実行できます。特に技術指向のユーザーにとって、繰り返しのタスクのためにカスタムアセットが作成できるという利点があります(カスタム機能とツールを作成できます)。ノードは、Cinema 4Dの通常のコマンドやオブジェクトで一部しか、あるいはまったくアクセスできない機能へのアクセスも可能にします。プログラミングコマンドを使ったり、プログラミングコードを知っている必要はありません。

この概念を使って、Cinema 4Dにジオメトリを作成できます。例えばカスタムデフォーマや、クローンのための完全に新規の分配分布機能を作成できます。これが、Cinema 4Dのメインウインドウメニューでアクセスできる新規ノードエディタで実行できることです。新しいノードは、エディタの上部にある対応するボタンを使って選択し、追加することができます。

「シーンルート」ノードは既に存在しており、ノードを介して生成されたオブジェクトと、開いているプロジェクトとの間の接続ポイントを表します。ここで接続されたジオメトリは、ビューポートに表示されるだけでなく、従来の「オブジェクトマネージャ」に相当する「シーンマネージャ」にも表示され、ノードオブジェクトを階層的にグループ化したり、名前を変更したり、可視性をコントロールしたりすることができます。

.

ジオメトリの生成あるいは作成

シーンノードツールは生成できる共通プリミティブも提供します。例がここにあります。

プリミティブノードを使って、立方体を生成します。このノード出力はシーンルートといっても、最初に独自のマトリクスを追加して、立方体を自分の好みに合わせて位置、角度、スケールを設定できるようにしています。

マトリクスOpノード出力は立方体の位置情報を含み、シーンに送られます。立方体は、対応する角度でビューポートの定義した位置に表示されます。また、「プリミティブ」ノード自体が、位置、角度、スケールのマトリクス設定を行うこともできます。

ますます多くのすべての道がローマに通じるように、立方体の形状もジオメトリノードとして呼び出されるため、詳細をさらに得ることができます。ジオメトリOpノードと異なり、このノードには他のプリミティブへの切り替えの可能性はなく、シングルジオメトリ出力だけを提供し、基本的にはポイント、エッジ、ポリゴンに関する情報だけを含んでいます。自由に定義できる表示カラーや、ビューポートで非表示にできるオプションのような他の典型的なオブジェクト情報は、ここでは利用できません。ただし、ジオメトリからオブジェクトを作成するために、ジオメトリOpノードを介してこの情報を追加できます。

ポイントとエッジを使って自分で作成すると、ジオメトリを最大限にコントロールできます。例えば、自身のポイント順を使ったり、数学的計算を実行して、抽象的な形状を作成することができます。

このためには、文字ノードのビルドあるいはインデックス配列を使って、配列を値で埋める必要があります。配列を、異なる連続した番号の値を持つリストと想像します。これは、ポリゴンオブジェクトのポイントやポリゴンを、リストとして表示できる構造マネージャで、すでによく知っているはずです。

ポリゴントポロジーセット代入ノードを使って、使用するポリゴンに属するポイントの番号を設定します。この一連の数字には、例えばポリゴンを三角ポリゴンとして作成するか四角ポリゴンとして作成するかという情報は含まれていないので、連続したエッジを持つ各ポリゴンのポイント数を含む配列を追加する必要があります。この情報は、ノードで境界という名前が付いています。最終的に、ポリゴンが持っている境界の数に関する情報はなくなります。通常これは1つの境界だけですが、穴があるN-Gonももちろん生成されます。このケースでは、N-Gonの外形の境界と開口部の境界が定義されます。この情報は、ノードでグループという名前が付いています。ポリゴントポロジーセット代入ノードと、グループについての情報はトポロジーと呼ばれ、ジオメトリプロパティセット代入ノードを介してジオメトリを作るために合成されます。そのために、すべてのポイントの位置が設定されていることが必要です。このためには、以下の図に示すように、配列がビルドノードを介して再度定義されていることが必要です。

スプラインも同様に描かれます。

モデリング機能

モデリング機能

押し出し、面内に押し出し、ベベルのような一般的なモデリング機能も利用でき、選択範囲でジオメトリ上の特定のエレメントに限定することができます。

ここで、選択されたポイントやポリゴンのインデックスをモデリングコマンドに渡すことで、配列も役立ちます。エッジはその終了ポイントだけで定義されるため、エッジの選択には特別なタイプの配列が必要です。

しかし、テキストノードからの文字列からインデックス配列ノードを使って、両方のケースでポイントあるいはポリゴンのインデックスを定義できます。アクティブな選択ノードを使って、保存した選択範囲を出力したり(選択範囲を設定ノードを介して)、ジオメトリの入力インデックスを直接選択します。

次に、追加したモデリングノードは、自動的にこのアクティブな選択範囲に限定されます。代わりに、インデックスをモデリングノードに直接渡すことができます。以下の画像で、選択範囲を扱う一般的に使われる変化をすべて見ることができます。

緑のマークがついたノードはポイントインデックスのリストを使い、アクティブエッジ選択範囲を作成し、次にそれを押し出します。

黄色のマークがついたノードは、削除ノードを使って次に削除されるポリゴンのインデックスを含んでいます。赤いノードも、選択範囲を設定ノードを介して固有の名前で保存されたインデックスのリストを使います。以下の選択を取得ノードはその名前の選択範囲を読み、ポリゴンベベルノードに渡して、キャップサーフェイスをピラミッド形状に押し出します。

マルチオブジェクトを作成し、管理する

複数のノードオブジェクトを作成した場合、それらを「シーンルート」ノードに接続することもできます。これは入力数が可変です。そのためには、ノードの「入力の追加」と「ポートを削除」ボタンを使うだけです。また、「プリミティブ」や「ヌル」などのノードでは、階層的なオブジェクトグループを作成するために、「子」の入力数を可変にすることができます。

この方法で、オブジェクトの階層も作成されます。

オブジェクトを複製したい場合は、例えばMoGraphクローナーオブジェクトと同じように使える、分布Opノードを使います。リンクしたオブジェクトは定義した位置でコピーされ、シーンに直接送られます。カラーOpノードを使って、このコピーにそれぞれ色を付けます。以下の画像の例では、ランダムに色を生成するために、ハッシュ値ノードが使われています。

もっとコントロールが必要な場合は、例えばオブジェクトでマトリクスOpノードに接続できるマトリクスを出力するために、分布Opノードを使って自分で計算した位置にジオメトリをアレンジできます。

この例で、オブジェクトを分布からどのように削除するかを見ることもできます。ここで、クローンのインデックス番号を2でモジュロ(剰余)演算クローンのインデックス番号に2の値を持つ数学的な余はして、0から1の間の結果を出したものだけを渡すためだけに使われます。この値はフィルタOpノードでブール値として解釈され、自動的に他のオブジェクトそれぞれで削除されます。結果は、典型的な蜂の巣ハニカムまたはレンガのパターンになります。

勿論、作成したコピーの位置や形状は修正できます。さまざまなエフェクタを利用して実行できます。エフェクタOpノードは、膨張、テーパー、ねじりツイスト、屈曲のような広い範囲の一般的な変形を提供します。エフェクタグループノードを介して、カスタムアルゴリズムを作成することもできます。フィールドOpノードで選択できる分離フィールドを使って、変形nの効果を空間的に制限できます。

ヒント:学習の目的で、アセットをグループに変換コマンドを使って、いくつかのアセット(ジェネレータカテゴリで緑にマーク)をグループに変換できます。このグループは開くことができ、ベイシック基本ノードがどのように設定され、リンクされているか(例:芝生またはステップノード)を見ることができます。