はじめに
この記事は 「PY - PARTY TECH STUDIO Advent Calendar 2025」の17日目の記事です。
CGをやっていると、日常にあるものを見て
『これ、CGでどうやって作ろう…』
と考えてしまうのは、あるあるだと思います。
ということで今回は、
Houdiniでファスナーをプロシージャルに作ってみた という内容になります。
今回作ったもの
今回作ったものは、Houdiniでプロシージャルに作成したファスナーです。
- レールに沿って歯が並ぶ構造
- カーブ形状にも追従できる
- パラメータ操作で「開く / 閉じる」が可能
リアルさを極限まで追求するというよりは、 仕組みとして気持ちのいいファスナーを目指しました。

日常にあるものを分解してみる
日常にあるものをCGで作ろうとすると、 まず「よく見る」ことから始まります。
ファスナーを改めて観察してみます。
スライダー
ファスナーを開閉するときに、エレメントをかみ合わせる役目で、取っ手の部分。
エレメント
スライダーを動かしてかみ合わせる部分。
またファスナーの機能も、財布や鞄のファスナーのように両端が完全に離れないもの、スライダーが2つついているものなどたくさんあります。今回は前者の止製品と呼ばれるタイプのファスナーを作りました。
Houdiniでの作り方(ざっくり)
基本的な流れとしては、
ベースとなるカーブで開閉の具合や形状をコントロールし、それに対して各オブジェクトを沿わせる形になっています。
ベース部分
ベースとなるカーブをlineやcurveノード等で用意します。
curveuを利用して開閉の状態のためのアトリビュートを作ります。
そのアトリビュートをpscaleアトリビュートに利用することで、
その後に2点から構成されるlineをコピーし、そのlineのそれぞれの点をファスナーの左右部分として扱えるようにします。
エレメント部分
エレメントは交互にかみ合うような配置にする必要があります。
そのため、どちらか一方のlineの点を接線方向にずらす処理をしています。
ずらす処理の後、各pointにエレメントのオブジェクトをコピーしています。
スライダー部分
冒頭で作成したlineに沿うように、curveuの値を利用した点を用意し、その点にオブジェクトをコピーします。
あとはテープ部分をsweepノード等を利用して作成し、mergeして完成です!
まとめ
日常にあるものをCGで再現してみると、 普段は意識しない構造や名称を知るきっかけになったりと楽しいですね。
Advent Calendarイベントの自分の中での締めとして、 ファスナーを"締め"る制作ができてよかったです。
今年もいろいろ作りましたが、 来年もまた『これ、CGで作れそうだな』と思える日常を大事にしていきたいと思います。
ここまで読んでいただき、ありがとうございました。





