« 落とし穴にはまった「スプラインエミッタにする」XPressoのC.O.F.F.E.E.ノードで実験 | トップページ | 以前作ってHDDの片隅で眠っていた「ベジェスプラインを弛ませる」XPresso »

スプラインのブーリアン

知ってました?
C4Dでもスプラインオブジェクトどうしのブールができる事。
自分は最近知りました(遅れてますか?)。C4D標準ではない事が残念ですが。

それは、MoGraphの「スプラインマスク」 Bool_02_2 の事なんですが…
ポリゴン系のオブジェクトのブール Bool_01_3 と同様、リアルタイムで足し算/引き算をしてくれるものです。
でもなぜ、C4D標準じゃないんだろうか?MoGraphに限定することでもないと思うが…
そんなことより「ブール」と「スプラインマスク」を別々にする必要がないと思うんですが、どう思います。もしかして知らないだけで「ブール」でもスプラインをブールできるとか…
ん?できないですね…(実際に試した自分が、少し恥ずかしい…)

では、少しだけ使ってみます。

使い方は「ブール」同様、2個のスプラインを「スプラインマスク」の子オブジェクトにして「スプラインマスク」の属性で処理の仕方を選択します。

Bool_03 Bool_04
左が「スプラインマスク」、右が「ブール」の属性。

3次元空間上のスプラインはクロスして見えても完全な交点になっているわけではないですよね。2次元ならクロスしていれば完全な交点になりますが…

Bool_05

と言う事で、軸方向から見た「見た目の交点」を交点として操作をするわけですね。

では、実際にスプラインで試して見ましょう。

Bool_06

多角形と円形スプラインがXY平面で、共にZ0.0に配置しました。
では、この2つのスプラインを「スプラインマスク」の子オブジェクトにします。

Bool_07

「スプラインマスク」の属性は「AとBを合体」なので重なっていた部分がなくなりました。
残りの属性は、「ブール」と同じなので、ここでは試しません。

では、次に試すのは、同一平面上にない場合は?
と言う事で、円形をZ0.0から移動します。Zを適当に…Z100にしますか。

Bool_08

「前面」XY平面のビューは変化なしですね。
ここで気付かれた方もいると思います。
多角形と円形スプラインのつなぎ目がZ軸に対して平行ではない事に…

Bool_09

Illustrator等から取り込んだ2次元のスプラインや、C4Dの円形、テキスト等の平面スプライン等、平面的(同一平面上)に扱うのであれば、あまり気にする事ではないですね。と言うか、わざわざずらして使う人はいないだろう…

と言いつつ更に突っ込んで試してみよう。
「スプラインマスク」を「現在の状態をオブジェクト化」または「編集可能にする」を実行。
ポイントモードで確認。

Bool_11

ここでは「スプラインマスク」を「現在の状態をオブジェクト化」にしました。
円形(曲線部分)が沢山のポイントで補間されている。
スプラインのタイプも「線形」になっている。
交点は「多角形」「円形」どっちにあるんだ?

Bool_12

どうやら「多角形」側に交点がある。
あぁそうか、A、Bの2つのスプラインのA側に交点が含まれるんだね。
試しに、「円形」「多角形」の順に変えてみよう。

Bool_13

なるほど「スプラインマスク」の内部処理は、スプラインの補完法(「円形」の補完法は「最適」、分割角度「5°」)に基いて線分補間後(タイプ:線形)ブール処理をしているみたいですね。

ところで、「スプラインマスク」とは関係ないんですが、ポイントが多いスプラインをポイント数が最小限でベジェ補間にするプラグインを知ってる人いますか?
ないなら、誰か作れないですかね。自分には無理です…
もしくはIllustrator並みのパスファインダー(「スプラインマスク」のような線形補間後ブールではなく)のプラグインとか。
あったら便利だと思うんですけど…
簡単なものなら、わざわざCAD系とかドロー系グラフィックソフトとか使わなくてすむだろうし。

|

« 落とし穴にはまった「スプラインエミッタにする」XPressoのC.O.F.F.E.E.ノードで実験 | トップページ | 以前作ってHDDの片隅で眠っていた「ベジェスプラインを弛ませる」XPresso »

コメント

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