
パリの地下墓地:600万の骨の迷宮をCityEngineで再現
光の都の地下には、世界最大級の集骨場の一つが広がっています:パリの地下墓地です。この広大な地下ネットワークは、元々石灰岩の採石場でしたが、1786年から1814年にかけて、過密な墓地から移された600万人のパリ市民の遺骨の最終安息の地に変えられました。都市衛生の解決策として始まったものが、死の迷宮となり、大衆の想像力を掴み、勇敢な都市探検家を引きつけています。💀
都市と死が出会う迷宮
地下墓地の真の謎は、数百万の頭蓋骨と大腿骨が壁を飾るだけでなく、その迷宮のような規模のデザインにあります。パリの下に300キロメートル以上蛇行するトンネルがあり、公式に公開されているのはごく一部です。長年にわたり、多くの探検家がこの暗いネットワークで迷子になり、一部は永久に。圧倒的な死の存在は視覚的にだけでなく、抑圧的な雰囲気を通じて現れ、無数の超常現象や幽霊遭遇の話が生まれています。🌫️
地下墓地の独自の特徴:- 頭蓋骨と長骨の幾何学模様で構成された壁
- パリの下に300+ km延びるトンネル
- 14°Cの一定温度と95%の湿度
訪問者が取り返しのつかないほど迷う地下ネットワーク、死の密度に囲まれて
CityEngineでのプロジェクト初期設定
CityEngineで地下墓地を再現するため、パリの地面レベルを表す平坦な地形を持つ新しいプロジェクトを作成します。座標系をメートルに設定し、地下墓地の広がりをカバーする2000x2000メートルの作業エリアを定義します。シーンインスペクターで単位をメートルに設定し、スナップシステムを有効にしてトンネルの精密設計を行います。🗺️
プロジェクトの基本設定:- 作業エリア:2000x2000メートル
- 単位:メートル(メートル)
- 座標系:Y-upで一貫性
迷宮状の道路グラフ設計
CityEngineのプロシージャル生成の核心は道路グラフです。Street Growthツールを使用して、高い角度変動(45-90°)と中程度の長さ変動のパラメータで有機的な道路パターンを作成します。ランダムに分布した複数のシードポイントを適用し、古い採石場の有機的成長を模倣した自然主義的な迷宮を生成します。交差点ノードは最小半径で閉じた角を作成します。🕸️
道路グラフのパラメータ:- Angle Variation:不規則パターン用45°-90°
- Street Length:10-50メートル変動
- Segment Curvature:滑らかな曲線用0.3
トンネル生成のためのCGAルール
CGA(Computer Generated Architecture)ルールはCityEngineの魂です。CatacombTunnel.cgaというルールを作成し、以下から始めます:
@StartRule
Tunnel -->
offset(-0.5)
comp(f) { side : Wall | top : Ceiling | bottom : Floor }
この基本ルールはトンネルの形状を押し出し、壁、天井、床に異なるテクスチャとジオメトリを適用するために面を分離します。負のオフセットでトンネルの掘削体積を作成します。🏗️
ルールの基本構造:- @StartRule:生成のエントリーポイント
- comp(f):形状を面に分解
- offset:トンネルの体積を作成
骨の壁のプロシージャル生成
象徴的な骨の壁のために、複雑なCGAルールを開発しました:
Wall -->
setupProjection(0, scope.xy, 1.5, 1.5)
texture("stone_base.jpg")
split(x) { ~1 : BonePattern }*
BonePattern -->
case geometry.area > 0.5:
split(y) { ~0.3: SkullRow | ~0.7: BoneRow }*
else:
texture("stone_dark.jpg")
このシステムは壁を規則的なパターンに分け、利用可能なエリアに基づいて頭蓋骨の行と長骨の行を交互に配置します。case条件でジオメトリコンテキストによる変動を可能にします。💀
骨格システムのコンポーネント:- SkullRow:整理された頭蓋骨の行
- BoneRow:大腿骨と脛骨の行
- Stone sections:自然な石のエリア
照明と大気システム
抑圧的な雰囲気のために照明が重要です。CityEngineで、古い人工照明をシミュレートする戦略的なポイントライトを設定します:
LightFixture -->
s('0.2, '0.2, '0.5)
t(0, 0, 2.5)
i("light_point_01.obj")
set(material.light.emissive, 0.8)
set(material.light.color, [1.0, 0.8, 0.6])
これらのライトは主要トンネル沿いに20-30メートルごとにプロシージャルに分布し、深い闇と交互の薄明かりゾーンを作成します。暖色温度で歴史的な油灯を再現します。💡
照明のパラメータ:- 色:暖色#ffcc99で松明
- 強度:薄暗い効果用0.5-0.8
- 分布:20-30メートルごと
制御された変動とランダム性
明らかな繰り返しを避けるため、ノイズ関数とコンテキスト条件を使ったプロシージャル変動を実装します:
SkullRow -->
case rand(0.0, 1.0) < 0.7:
split(x) { ~0.25: Skull | ~0.1: Gap }*
else:
split(x) { ~0.2: Skull | ~0.15: Gap }*
Skull -->
case rand(0.0, 1.0) < 0.3:
i("skull_broken.obj")
else:
i("skull_intact.obj")
このシステムは一貫性のあるユニークなパターンを作成し、骨の密度と保存状態の変動で歴史的事実を反映します。🎲
変動要素:- 骨の密度:60-80%カバレッジ
- 保存状態:完全、浸食、破損
- パターン:規則的、群集、分散
ゲームエンジンへのエクスポート
地下墓地生成後、CityEngine Exporterを使って標準フォーマットにエクスポートします。Unity用にLODグループ付きFBXでエクスポート。Unreal Engine用にDatasmith形式で素材とシーン組織を保持します。CGAルールはリアルタイムレンダリング最適化された静的ジオメトリにコンパイルされます。📤
エクスポートオプション:- FBX:Unityほかエンジン用
- glTF:ウェブおよびモバイルアプリ用
- OBJ:汎用バックアップ形式
生成モデルのアプリケーション
CityEngineで生成した地下墓地モデルは、ホラーゲームの環境からリスクなしでこの歴史的サイトを探検できるVR教育ツールまで、多様なアプリケーションがあります。パラメトリックな性質で異なる目的に無限の変動を生成し、常にオリジナルの迷宮的で抑圧的な本質を保持します。🎮
プロシージャル文化遺産の未来
CityEngineでのパリ地下墓地の再現は、デジタル保存の最先端を表します。ジオメトリだけでなく構築の基盤ルールを捉えることで、進化・適応可能な生きるモデルを作成します。このアプローチは危険またはアクセス不能な歴史的サイトへのアクセスを民主化し、学生、研究者、アーティストが安全に体験し、後世に遺産を保存します。✨