プロシージャルで街を作る~建造物と道路のプロシージャル生成(1)
ゲーム開発や映像制作で必要なのは、キャラクタとテクスチャ、そして植物だけではない。舞台が都市の作品であれば街自体も作り込まなくてはならない。シナリオが一方通行のリニア・ストーリー展開であれば、描かれる街並みやその舞台となる建物だけ手作業で作ってもいいが、例えば航空機を扱ったフライト・ゲームや、神の視点でプレイするリアルタイム・ストラテジー・(RTS)ゲームなどでは、背景物として大局的な街並みが必要になることが多い。
この、「街の3Dグラフィックスのプロシージャル生成」というのも、近年では注目されてきている技術なのだ。
この分野の研究を精力的に行っているのはスイス・チューリッヒ工科大学のYoav I H Parish氏とPascal Muller氏だ。
2人が最初に開発したのは、水と陸の領域を与えると、内蔵されたロジック・ルールに則ってプロシージャルに陸地に道を敷き、テクスチャマップ付きの建造物までを建ててくれるというシステムで、これはSIGGRAPH 2001にて「Procedural Modeling of Cities」として発表されている。
まず、データとして必要なのは陸地マップと水域マップで、陸地マップはハイトマップの構造を取る。そしてプロシージャル街生成に重要な種となる人口密度マップも用意する。
システムはこの人口密度の高い土地を高速道路で結び、そこから派生道路を敷いていく。道路は最初はグラフベースで生成する。ここでいうグラフとはグラフ理論のグラフでノードとノードを線で結ぶ線画的なデータ構造のこと。これには連載第82回のプロシージャル植物生成の所で紹介したL-SYSTEMの拡張版を用いている。道はただ闇雲に線を延ばすのではなく、行き止まりがないようにしたり、土地の高低をなるべく上り下りしないようにしたり、またパリのような同心円状に敷くルールも選べるようにして道を敷く。
道が線のままでは仕方がないのでこれを"幅"を持った道へと変換し、実質的に道が土地を占有するような処理を行う。道を敷き終わったら今度は土地の区画を生成する。この区画生成にはあらかじめ設定しておいたその地域ごとの建造物の最大高パラメータをベースにして決められる。つまり高い建物が建つ地域ほど区画単位が大きくなり、そうでない場所は区画単位が小さくなる。(続く)
(トライゼット西川善司)