読者です 読者をやめる 読者になる 読者になる

Blender の都市生成アドオン「SceneCity」

SceneCity

Blender の都市自動生成アドオン「SceneCity」(旧名称「Suicidator City Generator」)を購入してみたので情報をまとめておく。2015年10月末時点のバージョン0.8について。

以前「Suicidator City Generator」という名称だった時は無償版も配布していたが、開発が進んだらしく2014年末の v0.7 から改名および完全有料化して、無償版はなくなった。

価格は80ドル、Paypal経由で購入。別途 Java が必要な上、Blender v2.75よりも古いバージョンでは動かないので注意(なお、v0.5.7 の時代に落としていた無償版は Blender v2.73 でも動いた)。

購入すると、SceneCity、SceneTerrain、SceneSkies というアドオン3つがダウンロードされる。ダウンロードしたZIPファイルを解凍すると、中に「README」テキストと、さらにZIPファイルが3つある。これらはそれぞれ「SceneCity」「SceneTerrain」「SceneSkies」の各ファイルだが、これについては解凍しなくてよい。

[File]>[User Preferences]の[Add-on]タブにて、[Install from File...]ボタンをクリック。先のZIPファイルを選択してインストール、チェックを付けて有効化、設定を保存。これを各アドオンに対して繰り返す。

手動でインストールするならZIPを解凍し、「scenecity」「sceneskies」「sceneterrain」フォルダをすべてアドオンのフォルダに移動させればよい。アドオンのフォルダは例えば Win7 なら「C:\Users\ユーザー名\AppData\Roaming\Blender Foundation\Blender\2.XX\scripts\addons」などの場所にある。あとは[User Preferences]の[Add-on]タブにてチェックを付けて有効化、設定を保存する。

なお、もしそれぞれの過去バージョンがインストールされている場合、新バージョンを入れる前にアンインストールしておくこと。削除方法はアドオン名の左にある三角をクリックし、[Remove]ボタン。

マニュアルはオンラインで。というか動画マニュアルしかない。


使ってみる

ビル群を生成したらエクスポートして LightWave で作業するつもりなので、まずは最低限の使い方がわかればよい。Blender はインストールしてあるだけで基本操作すらおぼつかないため、それも併記しておく。

Blender を起動、3D View ウィンドウにあるデフォルトのキューブを【Delete】キーで消去。

画面右の Properties ウィンドウにある、ボタンの並び(ヘッダ)のうち、球と円柱がライトで照らされている[Scene]ボタンを選択。そして右端のスクロールバーを下げると、「Scene City」という文字列の入った項目が並んでいる。このあたりのパネルで操作する。

手順としては、まず道路を作り、それに基いて街並みを作り、地形を作るという流れになっている。

最初に[Scene City roads]の項目(パネル)で[Generate roads]を押してみる。すると適当に道路が生成される。気に入らなければ再度押すと、現在のものが削除されて新たに生成される。

そして[Scene City buildings]パネルの[Generate buildings]というボタンを押す。先の道路配置を基にして、適当にビル群が生成される。

3D Viewウィンドウでぐるぐる視点を動かして見てみる。視点のズームイン・ズームアウトはマウスホイールを回転。回転はマウスホイールを押しながらドラッグ。平行移動はShiftを押しながらマウスホイールをドラッグ。

ペンタブレットを使う場合は、[File]>[User Preferences]>[Input]を開いて左側にある[Emulate 3 Button Mouse]を有効にして保存する。【Alt+Ctrl+上下ドラッグ】でズームイン・ズームアウト、【Alt+ドラッグ】で視点の回転、【Alt+Shift+ドラッグ】で平行移動となる。

なお、【Ctl+Alt+Q】でビューが4分割される。

最後に地形を作るべく、[Scene Terrain shape presets]パネルで[Generate terrain]ボタンを押す。地形ができる。

……はずなのだが、なぜかエラーが出て使えなかった。以下エラー文。よく分からないので、とりあえず地形生成は放棄。

Traceback (most recent call last):
File "...\AppData\Roaming\Blender Foundation\Blender\2.76\scripts\addons\sceneterrain\_int_.py", line 145, in execute
 shade_smooth = context.scene.SceneTerrain_shade_smooth,
File "...\AppData\Roaming\Blender Foundation\Blender\2.76\scripts\sceneterrain\terrain.py", line 441, in genererTerrain
 objectTerrain = bpy.data.objects['SceneTerrain']
KeyError: 'bpy_prop_collection[key]: key "SceneTerrain" not found'

location:<unknown location>:-1

追記:その後、「sceneskies」「sceneterrain」のバージョンを0.8.1にしたらきちんと地形が生成された。パネルのUIは少し変わったが、[Procedural]でパラメータを決めて[Generate terrain]ボタンを押せばよい。

作成したビル群を別ファイル形式で出力

[Export]から別形式で出力してみる。上の欄に出力先のフォルダパスが出て、その下の欄に保存名が出る。右のボタンで決定とキャンセル。

残念だが、どうやらLWO出力アドオン(1 / 2)はどちらもポリゴン数が多いと機能しない模様。仕方がないのでOBJで出力する。mtlファイルも一緒に出力されるため、そのまま LightWave で読み込むとマテリアル設定をサーフェイス設定として取り込めるので、それをLWO形式で保存。

注意点だが、Blender 上では道路とビル群が別レイヤーに分かれているが、出力すると同一レイヤーになってしまう。ビル群だけ欲しいときは、あらかじめ Blender 上で道路を消しておく必要がある。

Blender でレイヤー内のオブジェクトを丸ごと消すには、画面下部のレイヤ操作ボタンで該当レイヤーを選択、(カーソルを3D Viewウィンドウ上に移動して)【A】で全選択して【Delete】キーで削除。

また、[Outliner]ウインドウからでも、ツリーを辿って削除したいオブジェクトの上にカーソルを載せ、マウス右クリックして【Delete】で削除できる。ただし、上部ツリーから複数まとめて削除はできないようでいまいち使えない。

Blender で複数オブジェクトを一括選択するには、【A】で全選択/選択解除。【b+マウスの左ボタンでドラッグ】で矩形選択。【Ctrl+マウスの左ボタンでドラッグ】すると、投げなわ選択。【Shift】を押しながらだと選択解除になる。

以下、各パネル設定の詳細。

[Scene City roads]パネル

[City size (nb of 10m blocks on each side)]

値を変えると、道路(とそれを基にする街)が構築される領域の面積が変わる。

「10m*10mのブロックがいくつ並ぶ面積か」の値なので、1と入力すれば10*10*1なので100m^2、10と入力すれば10*10*10なので1000m^2 (1km^2)の領域内に道路が生成される。領域が正方形になるとは限らない。初期値だと40なので、4000m^2の領域となる。

当然ながら面積は長さの2乗に比例して増えるので、処理にかかる負荷も同じく増大するので注意。

[Random seed]

正確に同じ結果を得たいときに利用する。全く同じパラメータで同じseed値(0以外)であれば、同じ都市が生成される。初期値は0だが、この場合は毎回違う結果が生成される。0以外にすることで、同じ形状の地形・道路が再現される。

[Maximum length of roads (meters)]

道路の長さ上限値(単位はメートル)。生成される道路は、ここに入れた値までしか伸びない。

[Amount of crossroads (percent)]

交差点の量(百分率)。

[Generate roads]ボタン

道路を生成する。

[Scene City buildings]パネル

[Random seed]

先と同じ。

[Amount of buildings (percent)]

ビルの量(百分率)。この値を小さくすると各ビルが小さく、同時にビル同士の間隔が広がる。

[Generate buildings]ボタン

ビル群を生成する。

応用

基本のモデルデータを改変したりして(底面積とファイル名は元のと同じにして)差し替えることで、様々なビルを利用できるようだ。モデルデータがある場所はWindows 7の場合、「C:\Users\ユーザー名\AppData\Roaming\Blender Foundation\Blender\2.76\scripts\addons\scenecity\models」など。

v0.9

その後「scenecity」のv0.9が出たので入れてみたが、うまく動かなかった(Blender v2.76b)。ライブラリのモデルが1ファイルにまとめられたからなのか知らないが、ビルや道路が出現するものの、位置がずれていたりサイズが合っていなかったり、加えてモデルは複製されずに1セットだけがそのまま出現するという挙動を示したので、「scenecity」だけv0.8に戻した。なお、アップデータは以下よりダウンロードできる。