サテライトテクスチャとマスクの作り方 日本語訳

原題 : Making Satellite Texture and Mask
原文 : http://community.bistudio.com/wiki/Making_Satellite_Texture_and_Mask
翻訳時期 : 2008 Aug


はじめに

Sahrani島に関するちょっとした背景について

架空のマップ

Sahrani島は、架空の地形ですが、その景観のレイアウトについては本当の場所というものはなくて、すべてのテクスチャを手作りで一から作る必要がありました。もし実在の地形や地域の正確な画像やDEM地形データを使うのなら、この作成方法は参考程度にスキップしてもいいです。

オンザフライ

Sahrani島を作っている間、いろんな制限がありました。マップの開発を続けている間、多くの変更が頻繁に発生したのです。道路網、市街地、植生といったオブジェクトのレイアウトと起伏や海岸線といった地形の両方にです。エディットする決まりを守ることは、プロジェクトにとって重要な要素で、サーフェイスマスクとサテライトテクスチャの両方のPSDファイル(Phoroshopファイルの原板)の基本レイヤを簡易に更新可能にすることもそうです。8GBにもなる巨大なPSBファイルで作業を進める時もありました。

参考情報

マップデザイン

マップをデザインする上での最初の段階で、サテライトテクスチャをどう設計するかにかかっています。どこに何を作りたいのか、参考とする情報をどのようにして使う計画を立てるか、景観のスタイルをどうすべきかをよく把握するかは重要なことでしょう。この議論はマップをどんなふうに見せるかには影響しませんが、多くのサーフェイスが必要なことは間違いありません。以下で、Sahrani島での構想を簡単に述べます。

北Sahrani島

  • 中央ヨーロッパの景観と市街地
  • 平原、牧草地帯、岩礁、モミの木の森林
  • 山岳、岩の頂き、起伏地帯
  • 砂と岩の浜辺

南Sahrani島

  • 熱帯、砂漠地帯
  • 地中海と中東っぽい市街地
  • 乾燥した山岳、岩の頂き
  • 砂漠、砂丘、砂浜
北Sahrani島
南Sahrani島

リソース

グラフィックの面で、もっとも参考にした情報は空撮画像や衛星写真を掲載したウェブサイトでした。

  • Google Earth
  • Mapy.CZ
  • 購入した高解像度な空撮写真
  • 風景写真 (Google、photo banks、個人所有物)
  • Visitorプロジェクトの参考情報 (後述します)

準備

風景のグリッド

地形サイズ

地形のセル(区画)のサイズの設定です。Sahrani島の場合、縦横2,048×2,048枚のセルを用意しました。ちなみにOFPの場合は、256×256枚の地形セルです。

セルのサイズ

高低を決める頂点で、距離が決まります。Sahrani島の場合は10m x 10mで、OFPの場合は50m x 50mでした。

マップのサイズ

Sahrani島のセルのサイズは1辺が10mで、それが2,048×2,048枚あります。これは実際のサイズで、20.48km x 20.48kmであることを意味します。よって、テクスチャとマスクの解像度は、1ピクセルが1メートルに相当し、Sahrani島のビットマップ解像度は20,480px x 20,480pxということになります。

サテライトテクスチャのグリッド

  • サテライトテクスチャとマイクは、小さな四角形にカットして、Visitorにインポートしました
  • サイズは区画数は、設計した区画サイズとテクスチャのサイズ、マップのサイズを定めたサテライトグリッドの設定値によって決定されます。計算方法はLandscape Surface Editingの項をご参照ください
  • 境界線をテクスチャフィルタで人工的にならないように表示するために、区画をちょっとオーバーラップさせます

Visitor – プロジェクトレイアウトの出力

Sahrani島におけるサテライトテクスチャの解像度は1mが1pxでした。最大限の精度をもつテクスチャとサーフェイスマスク両方の奇麗な描写はエディットするためには必要ですので、あなたのVisitorのプロジェクトで信頼できるリファレンスを持つことが必要です。プロジェクトでオブジェクトレイアウトのノウハウを得る最良の方法は、プロジェクトエリア全体をkindaの「Print」でエクスポートすることです。

画像のエクスポートにあたって最初に、有用な情報を達成しVisitorでオブジェクトの見た目を正しくセットすることが良いと思われます。

地形

  • メニューの「View」-「Define configuration…」かCtrl+F
  • Section Colors – height
  • 最低高度から最高高度までの地面の高さに、白から50%のグレーでグラデーションする設定にすることを勧めます
  • 配色のコントロールは、いくつかの明瞭さのない影をセットすることが良いと思われます
  • 浜辺のテクスチャを微調整するため、起伏間隔のスタイルは1mにセットすることにし、浜辺にペイントするために海岸線は参考文献を使うことが出来ました。シマノ地形の作業中、境界の10~50m間隔で選択するあるいは、等高線のスイッチをオフにするのが良い方法です
  • 例えば区画のグリッドのような、絵の特徴に戻す必要はありません

オブジェクト

植生をベースに森林のサーフェイスを選択する時、樹木の人工的な影や道路の敷設のために、あなたの都合に合わせてVisitorでオブジェクトのシンボルを使うことが出来ます。Photoshopでオブジェクトのセレクションを使いやすくするためには、オブジェクトの本体と境界と同じカラーに保つことです:

  • 「Dialogue Tools」-「Nature objects…」で、プロジェクトにおけるすべての自然オブジェクトの色を調整することが出来ます。あなたは、すべてを同じ色にして選ぶか、または広葉樹と針葉樹の種類に異なった色を使用できます。また、長方形シンボルの代わりに楕円を使用できます。
  • 「Dialogue Tools」-「Roads…」で、道路のタイプの種類に合わせた色に変えることができます
  • 「Dialogue Tools」-「Artificial objects…」で、自然界のオブジェクトのように同じことができます。 特に都市でサーフェイスを描くとき、あなたは人工のオブジェクトの位置の利用に間違いなく使うでしょう。複数のオブジェクトを選択することも(例えば、スクリプトを使用します)、選択に更に付け足すこともできます。 これは、タイプにかかわらず非表示のオブジェクトグループでもできますから、これは使えると思うことでしょう。

プロジェクトをエクスポートして印刷する

  • 「Dialogue Project」-「Export Map As Image…」
  • ファイルの種類はEMFを選択してください。BMPファイルとして大きい解像度の画像をエクスポートするのは不可能だからです。解像度は「blue edge」(TM)サイズの画像衛星”PLUS”と同じであるべきです。Visitorのマップの左と下部で見ることが出来ます。それがSaraでは20,480×20,480ですし、OFPのマップでなら12,800×12,800になります。「blue edge」で切り出すことが必要なのは、同じ解像度のテクスチャがマップを通して出力することが必要だからです。

「blue edge」のサイズは、サテライトテクスチャのピクセル数と同じ1枚のセルサイズになります。

  • 地形の区画サイズがどうなったか、確認してみてくれ
  • セルの上にサテライトテクスチャのピクセルがどれだけ描画されるか計算してみてくれ

[サテライトテクスチャの縦か横のサイズ] ÷ [セルの縦か横の数]

  • Sahrani島では、地形グリッドのセルサイズは10×10 pxです。この場合、エクスポートすると画像のサイズは20,490 x 20,490pxが必要となります。

EMF形式からPNG形式への変換

Sahraniのような大きなサイズの完全なEMFファイルを開く方法は今のところありませんが、EMFをPNGに変換するためにカスタムツールを作成しました。Visitorフォルダーの中に、小さい.exe形式のファイルであるEmfToPng.exeというのがあって、このツールはEMFをPNGに変換するツールなのです。
例:

EmfToPng c:\path\filename.emf

倍率機能(列/行サイズを2.5倍増加):

EmfToPng c:\path\filename.emf

Hint! : PhotoshopCS以上から、40,960 x 40,960pxのファイルを開いたり作成したりすることが出来ます。

サテライトテクスチャの印刷におけるプリプロセス

エクスポートされたPNGは、適度なサイズを持たないでしょうし、サテライトマップの画像として貼り付ける時に十分とも言えないでしょう。画像の左と下部の縁から「blue edge」をカットする必要があります。一度、「blue edge」を削除し、画像のサイズ修正を終わらせてください。すべての景観の要素の画像は、プロジェクトの内容にマッチさせるべきだからです。

Photoshopで作業するファイルのサイズ

PSBフォーマット

Sahraniのサテライトテクスチャのサイズは20,480 x 20,480pxと巨大なため、時として処理を行うことが困難になることがあります。シンクロさせてグローバルに手直しをする必要がある時、小さなパーツに分けて編集して作業を進める従来の方法は通用しません。一般的なWindowsのアプリケーションでは、扱えるファイルサイズは最大2.5GBまでですので、Saharniのようなケースではあっさりとこれを超えてしまいます。したがって、フォトショップPSB形式などのように、2.5GB以上のサイズを扱うことができるフォーマットを使用するのが必要となります。PhotoShopはCS(8.0)以降から、このファイルサイズに制限のないこのPSB形式を使用することができるようになりました。Photoshopで次のようにこのファイルを使えるようにしてください:

  • Photoshopのメニューから、「編集」-「環境設定」-「ファイル管理」を開く
  • PSBを使用するにチェックを付ける

ディスクの分割とメモリ

4.5GBものファイルサイズを扱うのはたいした問題ではありません。Pentium4と1GBのメモリのマシンでも、それなりに動きます。時間がかかる部分は、保存、エキスポートと、ラスタ全体にフィルタをかける時です。メモリを割り当て、ディスクを追加して分散させれば、使いやすくなることでしょう。2つの物理ドライブを使ってPhotshopがスワップできるようにしてあげればいいのです(訳者注・それでも重いです)

  • Photoshopで、「編集」-「環境設定」-「パフォーマンス」-「メモリの使用状況」と「仮想記憶ディスク」を開く
  • 仮想記憶ディスクで、使用できる物理ドライブを選択すると、見違えるようにパフォーマンスが向上します

基本サーフェイス

数の決定とサーフェイスのタイプをマスクとして使うのは簡単ではありません。もし様々な環境を扱い、あるいは無数のサーフェイスを扱おうとするなら更にです。詳細サーフェイスの使用を制限するいくつかの要素があります。それはマップサイズでの地形グリッドのサイズ、サテライトテクスチャのグリッドから始まるものです。(大きいマスクは四角にカットされます)

1スクウェアにつき1サーフェイスの制限

注意: 1スクウェアにつき4種類のサーフェイスタイプまでです

1つのスクウェア(区画)に対し最大4つまでのサーフェイスをサテライトマスクに持たせることが出来ます。そして区画同士が隣り合わせになる部分は、少しずつ重なりあうようになっています。 Sahraniの区画サイズは512×512pxです。これは1平方キロメートルの区画あたりで、1/4ずつ、すなわち最大で4つの詳細サーフェイスタイプ(例えば草、岩石、砂、泥)を持たせることが出来るという意味です。したがって最も重要なことは、すべての景観を余すことなくマップの特徴を表現するのにどんな基本サーフェイスを使用したら良いか決定するということです。このデザイン上の制限を賢く利用し、使える小さなサーフェイスを決定し、そのエリアがどんなものを必要としているかを意識して、サーフェイスを追加できる余裕を常に割り当てておくことが大事なのです。

Sahraniマップでは、次の基本サーフェイスを有しています

北Sahrani島

  • 青々と茂った草
  • 花崗岩
  • すべての市街地のサーフェイス

南Sahrani島

  • 乾いた草
  • 砂岩石
  • すべての市街地のサーフェイス

Corazolの町を境に北部と南部の景観が切り替わり、そこはそれ以上のサーフェイスタイプの使用を制限した基本の草サーフェイスが同時に現れる区画になっています。下のサーフェイスレイアウト画像をご覧になったとおり、追加したサーフェイスが基本砂地と市街地のテクスチャだけです。

Corazol Cityのマスク画像
Corazol Cityのテクスチャ
ゲーム上でのCorazol City

マスクを用いたサーフェイスの描写 -マスクを使ってマテリアルを色で表現する-

Visitorにサテライトテクスチャをインポートする間、マスクはマスクが持つ各区画をカットする作業を進めながらマテリアルを定義したものに更新されます。
使用された詳細サーフェイスはリスト化され、マスクする区画の位置が定義されます。目的に合わせて最適化するために、マスクする区画は、4色のRGB値をそれぞれ別個にして取り込むようになっています:

  • 赤はRGB 255,0,0
  • 緑はRGB 0,255,0
  • 青はRGB 0,0,255
  • 黒はRGB 0,0,0

これは、サーフェイス数の制限がどうしてあるのかを明確に表しています。
しかしながら、特殊な区画でのサーフェイス構成は異なってくるかもしれません。マスク全体を編集しなくてはならないのだとしたら、無数の小さな区画にするわけにもいきませんし、4つの基本RGBの陰影でよりもっと多く、すべてのサーフェイスをマップの上に表現しなくてはなりません。

各マテリアル(材質)は、大きなマスクの中で使用されるRGB値を持っています。
Visitorにおいて、サテライトテクスチャとマスクをインポートするために要求されたLayers.cfgにおいて、すべてのサーフェイスタイプにこれらのRGB値を設定しなくてはなりません。

マスクした区画の重ね合わせ -Visitorへのソースデータのインポート-

上述したように入力された大きなラスタ画像を、プロジェクト設定に合わせて小さな区画にカットします。 Sahraniの場合、区画のサイズは512 x 512pxです。
同じ設定値を勧めるのはOFPのマップをリメイクするためです。
区画は、テクスチャのフィルタリングによって人工的っぽさを回避するために縁を重ね合わせる必要があります。これは、境界の16px分を共有する意味に通じます。特に複数の区画のエリアにおいて結合されたサーフェイスの数と範囲を監視することはとても重要です。
あなたは、ゲーム内でビジュアル的なことと、区画の世代を通してマスクをかける判断がおかしくなるのを避けるため、外部の境界線を共有することで、区画の中で描写されない部分になるサーフェイスの範囲を維持する必要があります。

テクスチャの重なり1
テクスチャの重なり2
マスクでの重なり

免責事項 : 個人的に訳した文書ですので、もし翻訳された文章により何らかの損害、不利益が発生したとしても、一切の責任は負いませんのでその点をご留意の上お読みください。また原文に記載されている権利に基づき、利用にあたっては非商用利用にのみに限定されていますのでご注意ください。