【Blender】道路のデコボコを直す【Project Plateau】
「SNOW DANCE」のミュージックビデオを3DCGで再構築した際に、代官山の街をProject Plateauのデータを利用して再現しました。
しかし、案外道路データがデコボコで、当初は困りました。
工夫して、少しでも凸凹をならして、3DCGアニメの素材として使えるようにした方法をシェアします。
道路の形状データの問題
Project Plateauには交通網=道路のデータもあります。建物や地形のデータと同様に、Blenderに取り込むことができます。
交通網データも、平面ではなく立体的なモデルで坂道も表現しているのですが、二つ問題があります。
- 道路のデコボコ
- 地形データとの重なり
道路のデコボコ
交通網データには誤差があるのか、滑らかではなくデコボコ、ガタガタしている箇所が多くあります。
路面ではなく別の地点の高度がデータに採用されているようです。結構ひどい感じの通りもあります。
例えば、目黒川沿いの道はこんな感じです。

道路の目黒川に接する側が、川に向かって落ち込んでしまっているように見えます。
きっと、道路の川サイドの高さとして、川の高さを使ってしまっているのでしょう。
ちなみに、橋が川に落ちているのは仕様通り。別途、橋のデータが用意されているらしいです。
地形データとの重なり
地形データには、道路のエリアの情報も含まれているので、交通網データと両方を使うと情報が重複します。面が二重に存在すると、3DCGに悪影響が出てしまいます。
目黒川付近を、地形データ、交通網データ、建物データを有効にしてみるとこんな感じになります。
※見にくかったので、道路と地形が重複しないように、道路データを少し持ち上げました。

道路が凹んだところに地形が露出してしまって、災害の後みたいになってますね。
地形データに道路をマッピングして解決
考えた結果…、
誤りが大きい道路の高さ情報は捨てて、上から見た輪郭情報だけを活用し、地形データを道路部分と道路じゃない部分に分割しました。
その結果が、こんな感じです。

まだガタガタはありますが、当初よりはだいぶマシですよね。
※橋は別途考える。
対策方法
道路データと、地形データへの対策方法を簡単にシェアします。
データを削減して処理を軽くしておく
事前準備として、使用する範囲だけにデータを絞ったり、「デシメート」モディファイアでデータを削減しておくとよいです。
道路データを加工用の”100mの壁”に変える
まず、道路データのオブジェクト情報のZを0mに変更して、高さ情報を捨ててペッタンコにしましょう。
次に、ペッタンコにした道路データに対して「ソリッド化」モディファイアーを使い、高さを100mに指定します。
これで、ペッタンコだった道路データが、そびえたつ”100mの道路の壁”になります。
地形から道路と重なる部分を削除する
地形データを複製してから、「ブーリアン」モディファイアーを適用します。
”100mの道路の壁”と重なる地形データを「差分」で削ります。ソルバーオプションの「穴を許容」を有効にしておかないと、正しく処理されないことがあるようです。
正しく処理されていることを確認したら、モディファイアを「適用」して、おきましょう。
道路と重なる部分の地形を道路として使う
道路の領域と重なる地形データを作成するために、複製しておいた地形データに「ブーリアン」モディファイアーを適用します。
「ブーリアン」モディファイアーの設定は「交差」にします。
こちらも、正しく処理されていることを確認したら、モディファイアを「適用」して、おきましょう。
まとめ

Blenderの道路データの対策についてシェアしました。
- Plateauの道路データはデコボコがある
- 地形データとの重複もきになる
- 道路データを100mの壁にする
- 100mの壁で地形データを「ブーリアン」加工する
上の画像は、道路データありの渋谷駅周辺CGです。建物はパステルカラーにランダムで塗ってます。
似てるけど、何かが違う不思議な世界ですね。
コメント