#Houdini 18.5 建築:Rayで階下にジオメトリがあるかを判定する方法

Rebuild Factoryzの礒です。
今回は建築にちょっと絡んだ話をします。
自動生成を意識した建造物をモデリングしていく際に、1階に部屋がないのにその上に2階、3階ができてしまう例が出てくると思います。
そこでRayというノードの衝突判定を利用します。


やりたいこと

1階部分がないところに2階ができてしまうパターンをあえて再現。
1階に何もない場合2階は何も生成しないようにします。

1階

1階については、あまりコメントするところはないですね。
最初に16個の点を生成して真ん中だけグループ化し、それ以外の場所にBoxをコピーしただけです。

2階

2階も表示した状態がこれです。
16個の点を単純にY軸方向に移動させてBoxをコピーしました。

Ray

そこでRayノードの登場です。
RayとBlastの2つを組み合わせて使います。

さっそく先ほどのノードネットワークに組み込みます。
RayのInput1に点を入力、Input2には1階ジオメトリを入力します。

Rayで階下の状況を見るには、Direction fromをVectorに設定し、Ray DirectionのY軸を-1と入力します。

そしてCreate Point Groupにチェックを入れて、rayHitGroupというグループを生成します。

Blastノードの使い方がわかる方はすぐに思いついてそうですが、BlastでGroupをrayHitGroupに設定し、Delete Non Selectedにチェックを入れます。
これでRayで衝突判定があった部分だけが残ります。

これで階下に何もない場合、その上にジオメトリを生成しない仕組みを作ることができました。

この仕組みを利用することで建造物の自動生成時に、不自然な建築にならないようにすることができます。

終わり

では今回はこれで終わります。

投稿者: Rebuild Factoryz 礒

Rebuild Factoryzの礒です。 現在は3DCGのモデリングやレンダリング、そしてUnityでのVR環境構築の仕事をしております。 アスペルガー症候群とADHD、双極性障害、解離性障害(記憶障害)を持っています。障害を持っているとは思っていなかった少年時代はいじめ問題に悩まされて生きてきました。今は障害を持ちながら、適度に社会と交流しながら生活していければ良いなと思っています。普通の人とは違う価値観をブログ等で発信していけたら幸いです。 趣味は3DCGモデリングと読書、そしてブログです。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。