« C4D XPressoの「光線の衝突」ノードで遊んでみる。 | トップページ | C.O.F.F.E.E.で「指定したポリゴンの隣接ポリゴン」にアクセス »

C4D XPresso「値を記憶」ノードで遊んでみる。

「値を記憶」ノードで、オブジェクトの現在の座標を次のフレームで別のオブジェクトに適用します。これを、複数個繋げると蛇のように繋がって動かすことができます。

まず、球体オブジェクトを複数個用意します。

Memory_01

一番上の球体を頭にして、残りをゾロゾロ着いて来るようにします。
動きは、「スプライン」オブジェクトと「スプラインに沿う」タグを使って与えます。

Memory_02

球体に取り付けた「スプラインに沿う」エクスプレッションに「パススプライン」と「スプライン上の位置」0フレームに0%、最後のフレームに100%を設定。

XPresso編集ウィンドウを開き、「球体」「球体.1」を追加します。
新規ノード/XPresso/一般/「値を記録」も追加します。

Memory_03

Memory_04

今回の「値を記憶」ノードの属性は、位置を記憶するのでベクトルに。
「値を記憶する回数」は適当な数値を入れてください。ここでは5(過去5フレームまで記憶)を入れました。
「古さ」は記憶した数値をどのくらい前の数値を使うのか?ここでは一番古い4を入れました。

球体の出力に「絶対位置」、球体.1の入力にも「絶対位置」を追加します。
後は次のように、連結します。

Memory_05

キーフレームが設定されているので、再生ボタンを押してアニメーションを再生します。
球体.1が球体に追従しているのが確認できます。

それでは、2個目以降も同じように作っていきます。
「球体.1」の出力に「絶対位置」を追加します。
「値を記憶」ノードと「球体.1」をコピーし下方に貼り付けます。

Memory_06

「球体.1」の出力「絶対位置」と下の「値を記憶」の入力に連結します。

Memory_07

「球体.2」を複製した「球体.1」へドロップします。
これを繰り返し最後まで作ります。

Memory_08

これを再生して確認してください。
ここで説明は終わります。

今回のC4Dファイル9.5は、「memory.ZIP」です。

「衝突判定」ノードを使用して、地面に軌跡を描きますが、これは一つの方法であって、この軌跡の描き方がベストと言うわけではありません。
確認再生の負荷を軽減するため軌跡部分だけを細分割しています。
この軌跡のポリゴン分割は、最初粗めの分割ポリゴンで、アニメーションを0フレームから最後のフレームまでコマ送りし、「軌跡」ポリゴン選択範囲タグで選択されたポリゴンの内側一列を再分割しました。これを数回繰り返し軌跡のエッジを細かくしていきました。
この方法だと汎用性がなくなりますが、確認再生の負荷が少なくなります。
確認再生の負荷を無視するのであれば、最初から細かい分割ポリゴンでするのも問題はありません。ただし別の問題も出てきますが…

このファイルの「値の記憶」ノードの0フレーム初期化はしていないので、確認再生後のレンダリングに不具合(確認再生中の値が残っています)が発生します。
シーンが変化しなくなるまでアニメーションツールバーの「タイムマーカーを最初のフレームへ移動」ボタンを連打してください。

|

« C4D XPressoの「光線の衝突」ノードで遊んでみる。 | トップページ | C.O.F.F.E.E.で「指定したポリゴンの隣接ポリゴン」にアクセス »

コメント

この記事へのコメントは終了しました。