プロシージャル・ゴシック大聖堂
Houdiniで構築した完全プロシージャル大聖堂ジェネレーター、UE5でレンダリング
概要
このプロジェクトは、Houdiniで制作したプロシージャルなゴシック大聖堂生成ツールと、そのツールと Unreal Engine 5 を使って構築した環境の二つで構成されている。
Houdini の機能
カーブベースの入力形状 — 任意の形状(閉じていてもいなくても)を入力し、ジオメトリを構築する土台形状として使用できる。
アーチ窓 — おそらくプロジェクト全体で一番難しかった部分。大まかな考え方は for-each ループを使い、イテレーション回数に応じて 2 のべき乗個のジオメトリを生成すること。主な課題は、異なるイテレーション同士のブーリアン処理と、最初と最後のイテレーションの特殊ケースだった。この部分のために Clover-maker(クローバー生成)サブツールも作り、窓のゴシックらしさに大きく貢献してくれた。アーチ窓はユーザー入力のプライマリ/セカンダリカーブプロファイルにも対応しており、メインアーチとサブアーチの形状を定義できる。
ピナクル — アーチ窓 HDA を大幅に簡略化したバージョンでシンプルな窓形状を作り、支柱の形状をもとにベース形状を生成した。
エッジ装飾 — 縁飾りは建物の形に自動的に適応する。これはベース形状のシルエットを抽出することで実現した。その上で、任意のユーザー定義カーブプロファイルから形状を生成できる。
フェンス — こちらもユーザー入力の形状をフェンスのパターンとして使える。基本的なロジックは:ベース形状からエッジを抽出し、柱のスペースを空けるために各エッジを縮め、カーブプロファイルでスイープしてジオメトリを生成する。さらに Chain SOP を使って、パターン同士がぴったり隣り合うようにした。
Unreal 環境
自分のツールをある種の「プロダクションワークフロー」で使ってみようと思った。まずベースの地形をスカルプトし、FAB の Megascans アセット(木、岩、山)で環境を飾り付けた。それから Houdini で自分のツールを使って大聖堂のバリエーションを二つ作り、FBX として UE にそのまま読み込んだ。Houdini Engine を使って UE 内で直接ツールを動かし、リアルタイムでパラメータを調整することも試したが——Houdini Engine はとてつもなく遅くてバグだらけで、ジオメトリも Houdini での見た目とは全くの別物だった……ということで断念。
各パーツは Houdini の時点で UV 展開済みだったので、既存の壁やレンガのテクスチャをそのまま使って大聖堂をシェーディングできた。