Visitor3を使った簡単な島の作成 日本語訳

原題 : Visitor 3: Making of simple landscape
原文 : http://community.bistudio.com/wiki/Visitor_3:_Making_of_simple_landscape
翻訳時期 : 2008 Aug


はじめに

これはArmAでのRahmadi島のデータをベースに、基本的な景観を作成する方法について述べるチュートリアルドキュメントです。このチュートリアルでは、全ての地形編集の事柄について徹底した説明を提供するものではありません。簡単なデータを用いて、概要を理解するためのものです。さらに詳しく知りたい場合は、次のドキュメントを読むようにしてください。

次のステップを行うことで、正しいマップとして作りはじめることができます。

  • インストールするツールはサンプルマッププロジェクト用の作業フォルダ用にセットアップする。
  • マップが要求するPBOを解凍し、p:\ドライブに置いて、データを編集できるようにする。
  • Visitorを起動し、プロジェクトをロードし、プロジェクト設定をチェックする
  • Buldozerの起動前に、サーフェイステクスチャをインポートする
  • Buldozerを起動し、マップ編集を開始する。

なお、サンプルマップ用プロジェクトのデータファイルは、BI Forumからダウンロードできます。

作業用データの構成

PBOのファイル名は、SampleMap.pboとします。このファイルをP:\ca\SampleMap\に配置してください。その際のサブフォルダ構成は以下のとおりとなります。

[Data]
[Source]
config.cpp
SampleMap.wrp
SampleMap.hpp

PBOの中には、サーフェイステクスチャ、サテライトテクスチャ、Visitorで生成したサーフェイスマスクが入った[Data]フォルダが入ってなければなりません。[Source]フォルダには、ソースデータであるプロジェクトファイル(PEW)が入りますが、最終PBOファイルでなくても構いません。WRPファイルは、それらのマップの中に入ります。これはHPPファイルと一緒にBuldozerによって生成されるものです。

HPPファイルは、#includeオペレーターとして使われるマップのパラメータファイル(config.cpp)のクラス名に含まれるものです。ゲーム上で、2Dマップのシンボルとして表示されるマップの名称を定義つけるものです。VisitorのKeyPointツールパネルから使用することで、データが書き込まれるようになっています。

P:\ca\フォルダからbuildings.pbomisc.pboplants.pborocks.pboの中身を解凍し、サンプルデータがリアルタイムビュワー上に表示されているか確認してみてください。 Visitor3で使用するODOLモデルの道路は適切ではないため、roads.pboは同じものとして扱わないで下さい。実際にはRC3ツールリリースの際に提供されたMLOD形式の道路モデルを使用します。

プロジェクトの設定

  • 「Project」-「New」又はCTRL+Nキーを押すことで開かれたプロジェクトパラメータダイアログに次のように設定してください。
    • “Terrain grid(地形のグリッド)サイズ”のところは512×512とします。これはマップにおける海抜、海底のサイズを意味します。
    • “Terrain cell(地形のセル)サイズ”は10とします。これはX方向Y方向のセルと見立てた場合、セルの1辺の長さが10mとなります。
    • “Terrain size”は、自動的に5120×5120平方メートルと設定されます。
    • “Satellite Grid(サテライトグリッド)サイズ”は、”Calculator”ボタンを押すことで、サテライトグリッドを計算するダイアログが表示されます。後ほどインポートする大きなサイズのサーフェーステクスチャを対応付ける画像ファイルのサイズを入力します。もし1ピクセルと入力すると、1平方メートルとして対応付けられます。最大、5,120まで設定可能です。デフォルト値には、セグメントサイズとセグメントのオーバーラップから編集可能な残りの値が表示されます。必要な値で計算結果が埋まったら、”Apply proposed”ボタンを押して画面を閉じてください。
    • テクスチャレイヤーに応じて40×40メートルになるようにします。この平方サイズに応じて、詳細テクスチャがマッピングされます。
Hint!:プロジェクトパラメータの詳細な記述方法については、
サテライトテクスチャとマスクの作り方の項で参照することが出来ます。

Toolメニューから、ProjectPreferencesを開いてください。ca\SampleMap\dataの中に生成されるサーフェイステクスチャのセグメントまでのフォルダ指定するパスを確認してください。この設定は、大きなサーフェイステクスチャをインポートする際にとても重要です。

Hint!:生成されるテクスチャは異なるフォルダ、別々のPBOに格納します。

my_SampleMap.pewという名称でファイルを保存します。もちろん任意のファイル名でも構いません


地形

Visitorに地形をインポートするいくつかの手段があります。このチュートリアルの目的に合うよう、XYZファイル(MicroDEMによって生成されるテキスト)か、またはPBLパラメータをもったPNGファイルを使用します。インポートするPNGの最適な形式は、16ビットの深度情報をもったグレースケールの画像です。XYZファイルは初期データを表現するのに用いるもので、Rahmadi地形の編集は出来ません。

  • Projectメニューら、インポートする地形の画像を選択します。
  • ca\SampleMap\Source\Terrain\terrain.pblから、PBLファイルをブラウズします。同じフォルダにterrain.pngをPBLファイルのポイントをあわせて置いてください。
Hint!: Visitorは、メニューの「Project」-「Export Terrain into picture…」から、
地形データをPNGファイルとしてエクスポートすることも出来ます。
  • これで地形データのインポートが終わりました。等高線表示のアイコン(Show Contours)にて、等高線モードに切り替え、等高線の間隔や最小輪郭の範囲が設定とおりになっていることを確認してください。
  • 海岸線は、地形の高低、等高線は「View」-「Define Configuration(設定の定義)」によって開かれるハイトパネルから、色を設定することが出来ます。
  • 表示される地形の要素は、「View」-「View Settings」あるいはショートカット、またはツールボタンから設定することができます。
Hint: 地形編集のアイデアを考えるのには、"Showshadows"ボタンから切り替える方が適しています。
  • XYZファイルのインポートは、メニューの「Project」-「Import Terrain from XYZ」から、操作します。

サテライトテクスチャとサーフェイスマスクのインポート

「Tool」-「Import Satellite&Mask」からこれを行います。私達はVisitorがBuldozerに接続している時にこのインポート操作を行うことを薦めることができません。Sourceフォルダの次のデータが必要となります。

  • SatTextureName_lco.png(sat_lco.pngがサンプルファイルです)
  • SatSurfaceMaskName_lco.png (mask_lco.pngがサンプルファイルです)
  • layers.cfg
  • mapLegend.png(他のプロジェクトで必要不可欠なものではありません)

データフォルダの中で、詳細なサーフェイステクスチャとRVMATファイルが事前に用意されている必要があります。各サーフェイスは、同種の名称で様々なサーフェイスとなる次のようなファイルになります。

  • surfaceName_MCO.png-この画像は正方形にマッピングされたテクスチャレイヤで、サテライトテクスチャにのみ乗算されます。
  • surfaceName_LCO.png-狭いレンジにおけるMCOマップの上の詳細なテクスチャ、置き換えられたサテライトテクスチャで、ノーマルマップと一緒になります。
  • surfaceName_NOHQ.png-詳細なLCOテクスチャのためのノーマルマップ

これらのサーフェイスは、いくつかのRoadway(道路)LODモデルによって重なるサーフェイスを除き、ゲームエンジンによって各々のサーフェイスは自動的に生成されるクラッター(小さな草、植物、石のオブジェクト)と呼ばれるものと定義を一致させるものです。

インポートに成功したら、作業ディレクトリ(例・P:\ca\SampleMap\Data\)のDataフォルダの中にあるLayersフォルダを確認してください。サテライトテクスチャとマスクセグメント(PNGファイル)とRVMATファイルが、Layersフォルダ内に各正方形セグメントとして格納されています。
もしあなたがテクスチャを再作成する際に、これらのファイルを削除する必要はありません。Visitorは、再作成及び変更のあったパーツだけを置き換える機能を有しているからです。全ての新しいPNGファイルは、Buldozerを起動させるとPAAファイルにコンバートされる仕組みになっています。
あなたがこれを始める前に、各セグメントのUV調整が済むまでプロジェクトを一旦セーブすることを薦めます。

MapLegendの内容。VisitorはRGBリファレンスとしてピクセルの最初の行を使用し、残ったファイルは各機能を持たない
Corazolにおける詳細サーフェイスのマスク例
同じエリアにおけるサテライトテクスチャ
ゲーム上でのオーバービュー

サテライトテクスチャ

これは地形の上にマッピングされるテクスチャのことです。ゲーム中、正方形な領域の上に重なるグループとして存在します。「Tools」-「Project Parameters」でのサテライトグリッドの設定値によって重なり方やカットの大きさが制御されます。

  • 事前に準備しておいた”Project Parameters”のサテライトグリッドの計算値として入力されたものと同じサイズのPNG画像が使用されます。1ピクセルを1平方メートルに相当させた場合、ArmAのマップでは、ラスタサイズの解像度に相応する大きさのマップが出来上がります。
  • 正しく変換されたPAAファイルを用いること、またファイル名は拡張子に_lcoを使うようにしてください。
Hint: もしサテライトテクスチャを試したい場合は、度々再生成する必要がありますが、
拡張子に_draftlcoを使うようにすると、PAAに変換して生成する際の精度が失われますが、バイナリ化が早く終わります。
元のラスターファイルの拡張子を_lcoに戻す時に、Layersフォルダの中身を削除してはならないことを忘れないで下さい。

サーフェイスマスク

  • サーフェイスマスクのサイズは、サテライトテクスチャのサイズと同じにする必要があります。
  • マスクするサーフェイスの色は、ゲーム内におけるマップのサーフェイスの上に置く何らかの構造物を避け、区別できるようにしてください。スムージングまたはアンチエイリアスは無効です(可能ではありますが、正しく作るのは簡単ではありません。mapLegend.pngの描写が斜面に沿うようにしないとならないのです)
  • 1つあたりのサテライトマスクの区画では、4色まで使うことが出来ます。(Visitorは、双方に入力したラスタを同じ方法で分割します)なぜならば、色変換するマスク区画は、4つのRGBの最大値を(黒と赤、緑、青の最大値)を用いるからです。プロジェクトの最初に、マップ全体を4つのサーフェイスを使うこととし、生成されたサテライト区画をベースとした厳密にカットされる元のデータを把握して、後から追加する方が安全です。

layers.cfgにおけるサーフェイスの定義

  • layers.cfgにおけるRGB値は、ラスターマスクを使った陰影になるよう一致させなくてはなりません
  • サーフェイスのクラス定義は、サーフェイス毎とし、それらが有する詳細テクスチャのセットを定義します。
  • ArmAと同じサーフェイス名称を使った場合、オリジナルArmAのサーフェイスと同じクラッター(岩、草など)が描写されます。
class Layers ///マップ内の詳細テクスチャのリスト
{
class pisek
{
texture = "ca\SampleMap\data\pisek_mco.png";
///中間距離で重ねるテクスチャ、サテライトテクスチャの描写
material="ca\SampleMap\data\pisek.rvmat"; ///詳細テクスチャを定義したファイル
};
class travajih
{
texture = "ca\SampleMap\data\travajih_mco.png";
material="ca\SampleMap\data\travajih.rvmat";
};
class mesto2
{
texture = "ca\SampleMap\data\mesto2_mco.png";
material="ca\SampleMap\data\mesto2.rvmat";
};
class pole1
{
texture = "ca\SampleMap\data\pole1_mco.png";
material="ca\SampleMap\data\pole1.rvmat";
};
};
class Legend ///
{
picture="ca\SampleMap\Source\mapLegend.png"; ///mapLegendファイルへのパス
class Colors
{
/// 色はサーフェイス名称と一致させなければならない
pisek[]={{255,255,0}}; /// pisek - sand(砂)
travajih[]={{0,255,0}}; /// trava - grass(草)
mesto2[]={{0,0,255}}; /// mesto - city(市街地)
pole1[]={{99,55,0}}; /// pole - field(野原)
}
};

オブジェクトの編集と設置

Buldozerの起動とオブジェクトの編集を行う前に、ArmAのマップで使う全てのアドオンが入ったPBOを解凍ししてください。
(buildings.pbo、misc.pbo、plants.pbo、roads.pbo、rocks.pbo.)

オブジェクトリストへの登録 – オブジェクトテンプレートの定義

  • 最初のステップとして、オブジェクトパネルに全てのオブジェクトを登録する必要があります。メニューの「Tools」-「Nature/Artificial Objects」から登録することが出来ます。登録されたモデルのリストは、表示フィルタが起動している時に表示/非表示されます。この類別においては他の機能はありません。
  • Add/Browseボタンをクリックすることで、オブジェクト(拡張子がp3dのもの)を設置することができます。Visitorにおいて、オブジェクトテンプレートと呼ばれるオブジェクトがあり、このテンプレートでは、名前、使用されるモデル、ランダムに設置するものの向きやサイズの範囲が定義されています
  • リストからオブジェクトテンプレートを削除することで、マップの中に登場させるオブジェクトのテンプレートをなしにすることができます。
  • “Defined Objects(オブジェクトの定義)”ウインドウから、名称を変更したり、プロパティを設定したり、選択したオブジェクトをランダムに設置する際のサイズ、間隔、向きを設定することができます。
オブジェクトの定義

マップへのオブジェクトの設置

  • Panel of objects(オブジェクトパネル)からオブジェクトを選択し、マップの上で左クリックすることで、設置することができます。
  • 設置したオブジェクトを選択し、左クリックすると次の編集を行うことが出来ます。
    • 削除(Deleteキーも可)
    • マウスドラッグで移動
    • ダブルクリックまたはEnterキーで”Object properties”から次のプロパティを変更
      • オブジェクトの座標
      • 選択したオブジェクトの回転
      • サーフェイス(地表)からの高低(mで指定)
      • オブジェクトの大きさ(ベースサイズから%で指定)
  • 左クリックのドラッグで、複数のオブジェクトを選択できます。Ctrl/Shiftキーと組み合わせることで、選択したものに対し個別に追加、解除することもできます。
オブジェクトプロパティ
Hint: オブジェクトにカーソルを合わせてOキーを押すと、そのオブジェクトはハイライトされてオブジェクトパネルの中で選択された状態になります。

Named selections(セレクションの名称付け)

  • パネルが開かれてない場合、「View」-「Named Selections Panel」を起動させることが出来ます。
  • オブジェクトが選択されている時、個々に非表示、ロック等するためのセレクションの名称をつけることができます。
  • セレクションリストから右クリックすると、”NamedSelection”のコンテキストメニューを開くことが出来ます。

Buldozerでの、地形とオブジェクトの編集

  • すぐにでもサテライトテクスチャのインポートを終わらせて、オブジェクトの追加を始めたいならBuldozerを起動することでそれが可能になります。メニューの「Project」-「Connect to Buldozer」またはCtrl+F7キー、あるいはツールバーにある赤色の「!」マークのアイコンを押すことで、使えるようになります。
  • Buldozerの初回起動の際、各テクスチャを変更(サテライト区画の再生成、オブジェクトテクスチャの更新)するために、Buldozerは全てのPNGファイルまたはTGAファイルをPAAフォーマットのファイル変換する作業を始めます。それが終わるまでの間、アプリケーションはレスポンスがないように見えますが、変換作業が完了するまで接続をやり直したりしないようにしてください。

Buldozerの操作方法:

  • マップを使用してナビゲートすることが出来ます。
  • カメラの回転はテンキーの2、4、6、8を押して操作します
  • カメラのズームは被写体をカーソルに合わせて、テンキーの+、-キーで操作します。
  • カメラと被写体までの距離を、デフォルト値に置きなおしたい時は、テンキーの5を押してください。
  • 左クリックでオブジェクトを選択(もしVisitorでオブジェクトを選択した場合、Buldozerでも同様に選択されます)
  • 右クリックを押しっぱなしでマウスを左右にドラッグすると、オブジェクトを回転させられます。ボックスカーソルの位置によって回転軸を定義されることができます。
  • 左Shiftキーを押しながら操作を行うと、カメラの回転やカーソルの移動を素早くおこなうことができます。
  • Hキーで、地形の座標点に対し矢印をマーキングします。
  • 地形の座標点は、Uキーで上昇、Jキーで下降します(昇降幅は1m)
  • 地形の座標点は、Iキーで上昇、Kキーで下降します(昇降幅は5m)
uldozerでの地形編集
Hint:白色四角形の編集カーソルが見えない時は、オブジェクトに矢印のマークを合わせてみて下さい。
Buldozerの開始時、ロードされるテキストファイルによって、解凍されたUI.pboの中身を使ってBuldozerを設定します。
詳しいことは、Visitor3 Manualをご覧下さい。

マップのパッキング

  • とりあえずのconfig.cppとhpp、WRPファイル、PAA形式のテクスチャファイルと関連する全てのRVMATファイルをマップ用PBOとしてパックしてください。
  • 別途に作成したオブジェクトをマップ内に登場する場合は、ゲームを開始させる前に..\Arma\Addons\フォルダに置くようにしてください。
  • BIがカスタムした反射を適用させるようここにその構文を記述します。公開されているユーティリティを使って、アドオンフォルダ(この場合は..\ca\SampleMap)として設計された全ての中身をPBOファイルとして圧縮してください。圧縮したバージョンを分離させて綺麗に保つやり方は、必要なファイルの全てを維持することです。
Hint: もしマップのリストにあなたの作ったマップが現れない場合、またはミッションプレビューを起動するとゲームがクラッシュしたり、
サーフェイステクスチャが現れない場合は、指定した場所に本当にファイルが存在し参照されているか、
config.cppとDataフォルダ内のRVMATまでの全てのパスが正しいか、これをチェックしてみてください。

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