« スプラインのブーリアン | トップページ | C.O.F.F.E.E.での繰り返しはfor/whileだね。XPressoでは? »

以前作ってHDDの片隅で眠っていた「ベジェスプラインを弛ませる」XPresso

今回は「ベジェスプラインを弛ませる」XPressoで遊んでみた。
このXPressoは、ベジェスプラインのハンドルを調整してポイント間の補間部分を-Y方向に弛ませます。

もともと、大昔にShadeで作成したスクリプトだったのですが、見当たらなくなったので、C4Dへ(昔、R7だったか?R8だったか?C.O.F.F.E.E.エクスプレッションへ…その後2006年XPressoへ)作り変えました。
設定するのは、スプラインと弛み具合の数値のみなので使い勝手はあまり良くないです。

形的に垂れるだけなので、物理的動き(揺れ/衝突判定)は対応していません。

Loosens_01 Loosens_02

さて、先ほどもふれましたが、入力は「スプライン」と「弛み具合」の2入力です。
適当にスプラインを用意し、「スプラインを弛ませる」属性のsplinフィールドへドロップするか、XPresso編集ウィンドウへドロップして、スプラインの出力「オブジェクト」をsplinへ繋ぎます。
ただし、後々スプラインを変更するのであれば、一手間ありますがオブジェクトのユーザデータを使った方が良いかもしれません。

Loosens_03 Loosens_04

XPressoへドロップして連結しました。
結果は…

Loosens_05

sagの値を(-値)にすると(+Y)へ垂れ(?)ます。
閉じたスプラインには対応していません。

このXPressoの基はShadeで背景用の景観オブジェクトの電線を作る目的で作成しました。でも、Shadeの時はモデリングコマンド系だったので、電柱の位置が変わるたびに、コマンドを実行していました。
C4DのC.O.F.F.E.E.エクスプレッション/XPressoへ移行すると、電柱を移動させると電線が追従するようにできるので少し手間が省けます。

では、「弛ませる」XPressoの属性で「使用する」のチェックをはずして下さい。
適当なスプラインを用意して、適当なオブジェクトをスプラインのポイント数分追加します。ここでは「球体」にしました。

Loosens_07_2

この追加した球体にスプラインのポイントが追従するようにしましょう。
新規でヌルオブジェクトを追加し名前を「追従」にします。XPressoを追加し球体全部、スプラインをXPresso編集ウィンドウへドロップします。
スプラインの出力端子に「オブジェクト」
それぞれの球体オブジェクトノードの出力に座標/絶対位置/「絶対位置」を追加。
新規ノード/XPresso/一般/「ポイント」を1個追加します。
ポイントノードの入力端子の「ポイントの位置」を追加します。
このポイントノードを複製して5個に増やします。

Loosens_08

左の球体ノードの「絶対位置」を右ポイントノードの「ポイントの位置」に1対1で繋ぎます。
スプラインノードの「オブジェクト」をポイントノードの「オブジェクト」5個に繋ぎます。

Loosens_09

ポイントノードを上からの属性の「ポイント番号」を0~4を入力。

Loosens_10

この様に球体にスプラインが張り付きます。球体を移動するとスプラインが追従します。

Loosens_11

「弛ませる」XPressoにスプラインを適用します。

Loosens_12

「弛ませる」XPressoの属性の「使用する」にチェックを入れます。
スプラインタイプは、ベジェですか?結果は…

Loosens_13

これでスプラインは球体に追従しながら弛みます。

Loosens_14

スプラインにスイープNURBSを適用し球体を移動しました。

「ベジェスプラインを弛ませる」と言う名前なので、ベジェのみです。そのうち自動でベジェになるようにします。と言っても変更作業はあっという間、1行追加するだけなんですけどね…。気が向いたら変更します。
閉じたスプラインにも対応させたいと思います。

Loosens_06

今回のC4DファイルR9.5は、「loosens.ZIP」です。
こんな感じの「電柱模型風」で作ってみました。

|

« スプラインのブーリアン | トップページ | C.O.F.F.E.E.での繰り返しはfor/whileだね。XPressoでは? »

コメント

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