« C4D 被写界深度DOFのプラグイン | トップページ | C4D グラデーション曲線 »

C4D ビギナーへ… ブールで円柱に丸い穴を開ける+α

「円柱に丸い穴を開ける」と言えば、ブールを使う事が、まず頭に浮かぶでしょう…
特別、取り上げるネタでもありませんが…

半径100の円柱に半径50の穴をブールで開けました。

Bools_01

何の問題も無いように見えますが、レンダリングすると…

Bools_02

穴の周りに縦の筋が現れています。
この対処方法は、単純にオブジェクトの分割数を増やす事で筋を小さくする事ができます。

Bools_04

Bools_05

若干、穴の周りに小さな筋が見えますが、先ほどよりかなり改善されています。

分割数を上げるのは穴の周りだけで、オブジェクト全体の分割数を上げる必要はないと思います。

さて、穴を開けると、穴の開いた角を丸めたくなります。
ほとんどの現実のモデルには、角が落とされています。

角を落とすには「編集可能にする」を実行して、ポリゴンオブジェクトにしてから、エッジを選択して「ベベル」を適用します。

Bools_06

ポリゴン化してから、エッジを選択するのは難儀な場合がありますので、ブールの属性で「交差エッジを選択」をONにします。
この後「べベル」を適用しますので、「一体化」も忘れずにONにします。

Bools_07

「べベル」を適用します。

Bools_08

角からの距離が「内側のオフセット」で、タイプ「凸形」で分割数:4で角をラウンドさせます。

Bools_09

見るも無残な形状になるのは、一般ユーザなら誰もが知っている事です。

原因としては、「ベベル」は、ポリゴンを超えて施す事が出来ない事と、選択したエッジの周りの分割の状態、そして…選択したエッジ上の不要なポイントなどが影響しています。

打つ手が無いわけではありません。
ほんの少し手間はかかります…

ブールを2つ使います。

1つ目のブールは、「AとBの共通部分」で「一体化」はOFF
これで生成された穴の側面のみを使用します。

Bools_11

2つ目のブールは「Bを含まないA」を使用します。
ただし、穴の半径は、「ベベル」を適用する「内側のオフセット」より少し大きめの値を足した数値にします。
ここでは、「ベベル」を5で適用するので、半径を58にしました。

Bools_12

必要に応じて、高さの分割を設定してください。
分割数を多くすると手間が増えますが…

この2つのブールを合わせて見ると、下のようになります。

Bools_10

「CylinderHole_01.ZIP」

2つのブールを「編集可能にする」を適用しポリゴン化します。

Bools_13

塞がっている穴の部分を取り除き「一体化+消去」をします。

Bools_14

「CylinderHole_02.ZIP」

エッジモードにして「ブリッジ」を使い隙間の一部を連結します。

Bools_15

「ポリゴンの穴を閉じる」を使用して隙間をふさぎます。

Bools_16

Bools_17

反対側も同様に隙間を閉じてください。

次はポイントモードに切り替えて、ラウンドさせるエッジ上の余分なポイントを削除します。

Bools_18

反対側もポイントを削除し、「ポリゴンの穴を閉じる」で閉じたN-gonsの部分の「N-gonsを削除」をします。

Bools_19

Bools_20

「べベル」に悪影響を及ぼしそうなエッジを「メルト」で消去しN-gonsにします。
下の図は、消去するエッジを共有するポリゴンを選択して「メルト」を実行しましたが…
消去したいエッジを直接選択して「メルト」を実行しても結果は同じです。

Bools_21

Bools_22

反対側も同様の作業をします。

一部の面の法線が反対になっているかもしれませんので、「法線をそろえる」を実行します。

Bools_24

Bools_25

「べベル」を適用するエッジの選択です。
穴の内側を「リング選択」し「アウトライン選択」をします。

Bools_26

Bools_27

「CylinderHole_03.ZIP」

選択したエッジに「ベベル」を適用します。

Bools_28_2

Bools_30

「CylinderHole_04.ZIP」

エッジは、きれいにラウンドされました。

レンダリングします。

Bools_31

若干縦に筋が見えます。
対処するなら、先に説明した通り穴の周辺の分割を調整してください。

Bools_32

Bools_33

「CylinderHole_05.ZIP」

先ほどより、筋が目立たなくなります。
筋にならない分割のポイントは、「異常に細長い3角ポリゴンを作らない」事を心がけることです。

ここまでの作業で疑問を持たれたビギナーはいるだろうか?
ブール後の穴と側面の隙間を埋めた後、N-gonsを削除する必要があるのか?

Bools_34

Bools_35

「ベベル」の部分が盛り上がってしまいます。

Bools_36

円柱にドリル等で穴を開けて、縁がめくれた様な表現をするなら使えそうです。

では次に、N-gonsを削除した後に不要なエッジを削除しないで「ベベル」を適用すると…

Bools_37

Bools_38

一応、問題が無い様に見えます。

拡大して見ると…

Bools_39

筋の原因になる細長い3角ポリゴンが出来ています。

レンダリングしてみます。

Bools_40

拡大した部分には差ほど問題は出ていないようですが、穴の側面(下側)に筋が見えます。
この原因は、エッジ上の余分なポイントを削除しなかった為です。

以上の事から、きれいに処理するには、ある程度ポイントやポリゴン、エッジ等を整理する必要があります。

今回の方法は円柱状以外の自由曲面でも有効だと思います。
HyperNURBSも、「編集可能にする」を適用しなければいけませんけどね…
残念ながら、HyperNURBSのまま、自由に穴を開け角をラウンドさせる簡単な方法は知りません。

|

« C4D 被写界深度DOFのプラグイン | トップページ | C4D グラデーション曲線 »