TIPS&TRICKS
 

地形を作る(その1 基本編)

   
 

GSUにはSketchUp PROにある「サンドボックス」機能がありませんので、地形を描こうとすると下記のように、フリーハンドツールなどで適当に等高線を描いて立ち上げ、その頂点に線ツールで面を貼っていく...というのが一般的なやり方だと思います。

しかし、このやり方では、作業自体は結構楽しいものですが、猛烈な手間がかかる上に自然な風合いを出すのが至難のワザで、苦労した割にあまり報われない結果になることが多いようです。

そこで登場するのが地形を生成するプラグインです。
実は上述の「サンドボックス」機能もプラグインによるものですが、こちらはPRO専用でGSUでは動作しません。今回ご紹介する”Heightfield Generator”というプラグインはGSUでもPROでも使え、「サンドボックス」とは少しアプローチの異なるツールです。

1) プラグインの入手とインストール

いつものように"Ruby Script Library "の"Files - Converters - Misc"にあります。そこではPDFのマニュアルもありますので一読しておくことをお奨めしておきます。
ファイル名は"heightfield_gen.rb"です。
インストールはダウンロードしたファイルをGSUのインストールフォルダ下の\Pluginsフォルダにコピー(移動)するだけです。

<追記 2008.7.20>
上記プラグインはGSU5用でGSU6では動作しませんでしたが、このほどGSU6用プラグインがリリースされました。
同じく"Ruby Script Library "の同じカテゴリーに、その名も"heightfield_gen_v6.rb"という名前で登録されています。
使い方はGSU5用と同じです。(デフォルトの数値が若干違うが…)

2) 画像ビューワ・コンバータ〜Xnviewの入手とインストール

”Heightfield Generator”の動作原理は、256階調グレースケール画像の各ピクセルを位置と高さ(白=最も高い<=>黒=最も低い)に変換して三次元化するものです。したがって、その気になればお絵かきソフトなどで、地形はもとより様々な有機的な形状の「素」になる画像マップを作成することも可能でしょう。
ただ、このプラグインの場合、利用可能な画像データの形式がPGM、PPM、RAWの3種類で、いずれも一般的な画像編集ソフトでは扱いきれない珍しい形式ばかりです。
ちなみに「GIMP」ではPPMとPGMが対応していましたがGSUには読み込めませんでした。かなり相性があるみたいです。
プラグインのマニュアルでは「Xnview」というフリーの多機能ピューワ兼コンバータを使うことを推奨していますので、それに従うことにします。

「Xnview」は以下のサイトから入手できます。
公式サイト: http://www.xnview.com/
ファイルサイズは約3.5MBです。
日本語の説明が以下のサイトにありますので参考にしてください。
窓の杜: http://www.forest.impress.co.jp/article/2006/02/23/xnview.html

インストールはダウンロードしたプログラムを実行して行ないます。基本的にデフォルトのままで良いと思います。インストーラは英語で表示されますが、プログラムの表示は日本語です。
余談になりますが、このビューワではSKPデータにもちゃんとサムネールが表示されます。ただしこれは3Dモデルが表示されているのではなくSKPデータにはコンポーネントで使用するサムネール用画像が含まれているため、それが表示されているのです。でも外からどんなデータか判りますのでけっこう便利です。

3) 画像の作成からコンバート、三次元化まで

ここまでの準備が整ったら早速テストしてみることにしましょう。
まず、適当なお絵かきソフトで画像データを作成します。ここで重要なことはあまり大きな画像は使えない!ということです。せいぜい100ピクセル四方位が実用上の限界ではないかと思います。それでも3Dモデルになれば約25000Faceのかなり重いデータになります。
ここでは下のような4ピクセル四方のごく小さな画像でテストしてみます。

画像は256色のグレースケールで保存します。この段階での保存形式はJPEG以外であれば何でもかまいませんが、ここでは一応BMP形式にしておきます。JPEGはその特性上、色が化ける可能性がありますので絶対に使わないでください。

保存出来たら「Xnview」を起動して、先ほど保存したフォルダに移動します。

保存した画像をWクリックすると、下のような編集画面に切り替わります。小さな画像だと見えないかも知れませんが、マウスのホイールを回すかツールアイコンにある虫眼鏡ツールを使えば拡大します。
メニュー>[ファイル]> [ファイル名を付けて保存]を選択し、「ファイルの種類」を"PGM−Portable Grayscale"にします。
ファイル名と保存先フォルダ名は、全角文字を使うとGSUで読み込めませんので、必ず半角英数字を使った名前にしておきます。

保存画面下の「オプション」で「Ascii」にチェックが入っていることを確認の上、保存ボタンを押すと下記のオプション画面が出ますので、グレースケール 256色の所にチェックを入れて[OK]を押すと完了です。
なお、この編集画面の左上にある「ブラウザ」ボタンを押すと、前の一覧画面に戻ることが出来ます。

他に、PPMやRAW形式でも試してみましたが、私の環境ではいずれも正常に動作しませんでした。この先はPGM形式で保存した画像データを前提にテストを進めて行きます。

GSUを起動して、メニュー>[Plugins]>[Heightfield Mesh Generator]を起動します。
ファイル選択ウィンドウが出ますので、保存してある画像(PGM)データを選択します。
すると下記のようなパラメータ設定ウィンドウが現われます。

「Create Group」は生成した地形をグループ化するか?ということです。通常は「Yes」で良いと思います。
「Destnation Layer」は作成するレイヤです。別のレイヤに生成したい時は予めレイヤを作っておく必要があります。
「Image Width/Heights」は画像の大きさ(ピクセル数)です。保存した大きさになっているはずですのでそのままにしておきましょう。
「Gray scale Level」はグレースケールの階調数です。これも通常はデフォルト(255)で良いでしょう。
「Lowest attituds」は最も低い位置の高さ、「Highest attituds」は最も高い位置の高さです。低い方は何か特別な事情がないかぎりデフォルトの0.0で良いと思いますが、高い方はちょっと考える必要があります。次の地形の大きさとの兼ね合いで決定すべきですが、普通はややオーバーめの数値にしておいた方がメリハリがきく場合が多いです。なお、ここでの数値はGSUであらかじめ設定してある単位系で入力します。
「Mesh Width/Heights」は読み込んだ地形の大きさです。

設定が完了したら[OK]を押します。すると以下のようなウィンドウが表示されます。これは「重複しているエッジを削除するか?」という意味らしいです。(実はよく解らない...)
「見た目」的には何の変化も生じませんし、エッジとかは少ないほど良いので、 ここは無難に
「はい」と答えておきましょう。ただし、「はい」を選択するかぎり永遠に同じことを聞いてきますので2回目は「いいえ」と押して、次に[OK]と押すと完了します。

すると下のような図形が生成されます。
Hidden Geometryを有効にしてありますので点線が見えますが実際はソフトニングがかかった状態です。

なお、ここで紹介しているような小さな画像なら瞬間的に生成され表示されますが、ちょっと大きな画像の場合はかなり時間がかかります。

他の例も示しておきます。こういう画像がこういう図形になるのか?と考えるとなかなか面白いものです。
また、下の画像は元々大きな画像に放射状のグラデーション塗りつぶしを行ない、それを25ピクセル四方に縮小したものです。ただし、縮小時にアンチエイリアスを有効にすると意図しない色の変化が生じることもありますので、この場合はアンチエイリアスを機能させずに縮小した方が無難です。

 

 

実際に地形らしき?ものも作ってみました。こちらも100ピクセル四方位の大きな画像で描き、それを25ピクセル四方に縮小したものです。こちらはアンチエイリアスを有効にして偶然の面白さも出してみました。



まあ、元絵がいい加減な割には雰囲気は出ているかな?と思いますが、なかなか思い通りにならないのも事実です。
昔、「VistaPRO2」のユーティリティにあった地形エディタ(たしか"Visual Explorer"と言うんだったっけ?)みたいな、便利なツールがないのかなあ〜と物色していて「TerraGen」の地形エディタを使う方法を思い付きました。
次回は「TerraGen」との連携を中心に紹介したいと思います。


 

 
  <<BACK