建築でコンピュータ、する?
2024年9月20日(金) 08:13 JST
2011/03/07 更新
アルゴリズムあるいはアルゴリズミックデザインといった言葉を建築分野で目にすることが多くなってきました。アルゴリズムとは一言でいえば”問題を解決するための解法”のことで、構造の最適化やゾーニングの設計等、建築分野でも部分的に試行されはじめています。街並みに関してもアルゴリズミックに生成しようとする試みが見られるようになりました。
現在いくつかの街並生成ソフトウェアが公開されており、都市景観の非常にリアルな三次元モデルを得ることができます。しかし、これらのソフトウェアはソースコード非公開であったり、ソースコードが公開されていても解説が乏しかったりと、実質的にブラックボックスであるといえます。内部でどのようなアルゴリズムが用いられているかを知ることは困難です。
そこでこの研究では、アルゴリズミックに街並みを生成するソフトウェアを独自開発することにしました。出来合いのパッケージ・ソフトウエアに依存していては、街並み生成のアルゴリズムの本質を十分に考察できないと思われるからです。他人のコードを読むのは面倒だし自分らで作ろう、これぐらいできないはずがない、と。この研究は、街並み生成に使用できる様々なアルゴリズムを考案し、都市の形成に影響を及ぼしそうな多様な諸条件をアルゴリズムに適用することで、都市の景観をどこまでリアルにシミュレートできるのかを目的とします。
この研究は2009年秋に開始しました。当研究室でも最も若い研究です。研究を開始するにあたって、手掛かりなく闇雲に取り組んでもなかなか成果は得られないのがこの世の常ですから、まずは既存のソフトウェアにならうことにしました。既存のソフトウエアは街並みの生成を「区割と地割」、「建築の配置」の二つのフェーズにわけて実行するものが多いので、それらの考え方を当研究でも採用しています。
着手して間がない研究ですが、それなりに見られる街並み3Dモデルが生成できているので、現時点での成果を紹介します。この研究は2010年度も引き続き実施しますので、試行錯誤はまだまだ続きます。街並み生成の手順や採用するアルゴリズムに関してバリエーションを増やし組み合わせを工夫するなどして、面白い成果が出せればと思います。試行錯誤の変遷もわかるように工夫して更新を重ねたいと思います。
・区割と地割
まず、都市の幹線道路に相当する線分を任意に設定します。その線分によって分けられる領域を区画とし、適当な大きさになるまで分割を行います。線分に与えた"道幅"によって区画をセットバックし、道の領域を確保します。次に、建物配置用の地割を行います。区割の過程で面積、形状から区画の性格を判断し、土地の利用に適した建物用敷地になるよう分割を行っています。
・建築の配置
得られた敷地に建物を配置します。矩形の敷地には、敷地境界のセットバック線を柱状化し、建物を配置しています。変形の敷地には、ちょっと工夫をしています。敷地を構成する境界線から最大長の辺を取得し、その最大辺に直交する仮想のグリッドを敷きます。そのグリッドの各点について、敷地内に収まっているかどうか判断させます。これら点群を元に、全頂点角が直角かつ敷地内に収まる面積最大の多角形を得ます。この図形に高さを与えることで、実在しそうな矩形の組み合わせによる建物形状を生成しています。
こうして得た三次元モデルにテクスチャを与えることで上のような建築が作成されます。建築物をあまり細かくモデリングしてしまうと街全体のポリゴンが増えすぎてしまい、満足に表示できなくなってしまいます。テクスチャはこういう時に便利ですね。上図はほぼ柱状体といったシンプルなモデルにテクスチャを貼ったものですが、わりと建物らしく見えます。テクスチャが違和感なくはられるように、建築の高さにあわせてテクスチャの論理高さを自動的に求めるようなGDLスクリプトを組み込んであります。
上のような街並みのイメージを得ることができます。鳥瞰ではやや鰻の寝床のような細長い敷地が目立ちますが、アイレベルのパースでは随分それっぽい街並みになっています。ウォークスルーの動画(こちらです)で見るとなかなか迫力があります。現在都市的、地理的制約に関しては実装されていません。梅雨が来る前にまた更新出来れば、と思ってます。お楽しみに。
これまでの研究では,街道や幹線道路をもとにして、領域分割と建物配置を行なうことで景観を生成してきました。初期条件として与えている街道や幹線道路によって生成される景観が左右されますが、現実の都市においても道路の計画は初期に行なわれる行為の一つであり、これはもっともらしい対応関係といえると思います。これからの研究では、現実に存在する緩やかな変化をもった街道や幹線道路の生成について考えていきます。
増訂大日本国郡輿地路程全図(左) | 鹿嶋香取○○日光参詣順路之圖(右) |
さて、上に掲載した日本の古地図をみてわかるように、街道はいくつかの集落を経由しながらある2地点を接続しています。街道と集落の発生順序については「にわとりとたまご」のような関係があるとも考えられますが、本研究では、自然集落が発生した後、それらが道で接続され、交易を繰り返し発達していくといったモデルとして都市の発生と発展を考察していきます。ここでは都市や集落を「ノード」、幹線道路や街道を「ブランチ」と呼ぶことにします。以下のステップを踏み、研究を行なっていきます。
許容高度差
また同程度の標高とみなす、その閾値を「許容高度差」としました。
この例では、許容高度差を3.0とすると、Aの平地度は6、Bの平地度は3となります。
このように平地度の計算を行なった後、各セルの平地度を全体における最大値によって除すことで相対化し、グレースケールに変換することで平地度を可視化します。「白い箇所ほど平坦である」ことになります。
この平地度計算のアルゴリズムを用いて、実地を例に集落発生位置の予測を行ないました。
武蔵野台地において、許容高度差が小さい場合、発生時期の早い集落が多く計算された領域内部におさまり、許容高度差を大きくした場合、その内部に発生時期の遅い新田集落が多く領域内部におさまりました。これには、開墾のしやすい場所から集落が発生していった日本の歴史との関係をうかがうことができます。例えば条里制(645)における巨大矩形農地の確保と、これに対しての江戸の鍬下年季(1645)などの未開発地開墾奨励などが挙げられるでしょう。
得られた画像を全体的にながめると予想が大きく外れてしまっているように見えますが、部分部分で観察すると、これまで発生した集落は、その近辺においては平地度の高い箇所に該当していることがわかります。平地度の視覚化の際に全体を最大値で除すのではなく、近傍の最大値で除すなど、もう少し、予想領域の見せ方を改良することで満足した結果が得ることができそうです。
今後は今回得られた集落発生予想アルゴリズムに改良を加えるとともに、領域周縁にノードを配置し、それらをブランチで結ぶことで、より具体的な都市平面をつくっていこうと考えています。街道の生成まで至れば、それを3次元モデル化できます。早くみなさまにアルゴリズムによって生成した街並みをお見せできればと思っています。
前回更新分の方法では、どこまで見渡せるかという程度を平地度としていました(例えば高低差がなければ地平線がみえるように) 。この方法では集落の発生予想領域がいささか広くなりすぎてしまうこと、地形の遷移を見つけ出すための閾値の設定が難しいことが問題になっていました。 そのため以下のように平地度の定義及び計算手順を変更しました。
この方法によって、集落発生予想領域は以下のように算出できました。
赤丸が実際の集落位置です。時代ごとの測量技術の差もあって、一部修正を行ないましたが現状の地図と一致しない部分もあります。
集落群のつくる模様を比較して頂けると対応がわかりやすいと思います。前回用いたアルゴリズムと比較して、予測領域が限定的になりました。
集落の発生位置予測プログラムによって集落を発生させ、これを用いて街道の生成を行ないました。
まず、手順1を行なうと以下のようになります。小道のネットワークが非常に煩雑です。
これに対して手順2.~4.を行なうと、このように使用優先度の高い道が浮かび上がります。 なお使用回数が非常に少なかったものは出力していません。 この中でも特に、生成した街道のうち太く示された街道として成長する可能性が高いと判断された道の近しいところに、実際の街道が存在することがわかります。
ここまで地形データとわずかな数値入力によってここまで、集落の発生位置の予測や、街道の生成を行なうことが出来ています。
引き続きこれに改良を加え、次は集落の衰退と発展について考えていこうと思っています。