美唄市農道離着陸場
Home > Document > SimScene.exe の使い方

更新:2010/01/31

FMS, RSPSim のためのフォトフィールドエディタ SimScene.exe について

機能

  • FMS のフォトフィールド用シーンファイル ( .scn ) を出力します。
  • Hugin などで作成した正距円筒 ( Equirectanglar ) 画像から、FMS などの フライトシミュレーター用の画像を出力します。
  • V-Tails さんが現在開発を進めているフライトシミュレータ RCPsim 用の シーンファイル ( xscn, X ファイル形式 ) も出力できます。 RCPsim のページはこちらです。 http://www.ac.cyberhome.ne.jp/~v-tails/delphi/rcpsim.html

SimScene.exe の使い方−プロジェクトタプ

プロジェクトタブ画像

画像ファイル名

hugin などで作成した正距円筒 ( EquiRectanglar ) 形式のパノラマ画像の ファイル名を指定します。

パノラマ画像を作成する時、画像の横幅(ピクセル数) は8の倍数を指定して下さい。ここで読み込む画像の横幅が8の倍数ではない場合、 SimScene.exe は、画像処理に先立って画像サイズの調節を行いますので、その分 処理に時間がかかるようになります。

シーンファイルだけを作成・編集する場合は必要ありません。

シーンファイル名

作成するシーンファイルの名前を指定します。

指定されたファイルがすでに存在する場合は、それを読み込んでファイル内の パラメーターを取得します。

SimScene.exe は、作成するシーンファイルにパラメーターをコメントヘッダの形で 埋め込みます。ここでのパラメーターの取得はコメントヘッダがあればそれを。 無い場合は、「広さ」「シーンの回転角度」以外のデータを取得します。

以下のシーンファイルからはパラメーターを取得出来ません。読み込んだ場合は エラー表示を行って、パラメーターがクリアされます。

  • 3D_LANDSCAPE セクションを含む scn ファイル
  • TEXTURE セクションの画像ファイル名が _left, _front, ... 形式ではない場合
  • TEXTURE セクションの画像ファイル名が _0, _1, ... 形式ではない場合
  • 同様に _11, _12, ... 形式ではない場合

既存の scn ファイルを読み込むときは、必ずバックアップをとってから 読み込んで下さい。

ここでの読込は SimScene.exe が必要とするパラメーターだけなので、 シーン中に設置された衝突をシミュレートするためのポリゴンなどは無視されます。 それらは、シーンファイルが完成してから設定するようにして下さい。

※パノラマ画像から分割された画像は、ここで指定されたファイルの フォルダに出力されます。

出力画像の基本名

切り出した画像の名前のベース部分 ( 例:takikawa_left.bmp の takikawa の部分 ) を指定します。

シーンタイプ

立方体(6面)型か、球体(20面)型かを指定します。

命名規則

シーンタイプが立方体(6面)型の時の「出力画像の基本名」の後ろに付く 識別子を指定します。

ex. _left.._bottom, _0.._5

FMS, RCPSim

FMS 用か、RCPsim 用かを指定します。

FMS と RCPSim (X ファイル形式) では、X、Y、Z、の意味が変わるので それを示す画像が表示されます。

fms_X = xfile_X * -1

fms_Y = xfile_Z * -1

fms_Z = xfile_Y

という関係になっています。

以下の説明では、FMSを基準にしています。RCPSim (X ファイル形式) を 設定するときは上の関係で変換して下さい。

広さ(球の半径)

初期値は1000。フォトフィールド全体の広さを球の半径(=立方体の1辺 の長さの半分)で指定します。

シーンの回転角度

初期値0。機体が離陸滑走する向きとフォトフィールドとの向きが合ってない なぁと感じたとき調節します。

プラスの値で風景全体が時計回りに回転します。( 例:25.3 ) 回転は、風景の画像がマッピングされるポリゴンの位置を変えることで 行っています。ですから、風景は回転しますが、機体の位置は変わりません。

地面の傾きX

初期値0。地面のX軸での傾きを指定します。プラスの値を指定すると機体の 進行方向の地面 ( Yプラスの領域 ) が次第に高くなるような傾斜が付きます。 マイナスの値を指定すると傾きは逆になります。

地面の傾きY

初期値0。地面のY軸での傾きを指定します。プラスの値を指定すると機体の 左翼側 ( Xマイナスの領域 ) が高くなるような傾斜が付きます。 マイナスの値を指定すると傾きは逆になります。

RCPSim では、「地面の傾きZ」で指定します。プラスで高くなる領域は同じですが、 現時点での RCPSim version 0.24 は、地面の傾きに対応していませんので、 ここで値として指定は出来ますが、出力されるシーンファイルには反映されません。

パイロットの視点

初期値0。「機体の位置Z」との関係を変えることによって、 チェ・ホンマン気分や、脚立の上気分を味わえますが、 シーン全体の原点位置=カメラの撮影位置 ( 初期値=0 ) を推奨します。

機体の位置X

初期値−5。この値をマイナス方向へ大きくすると初期画面での機体位置が 遠ざかります。プラスにすると操縦者の後ろに行きます。パイロットは 振り返って機体を見ようとしますので、機首の方向が変わって見えます。 シーンの回転角度に180を指定して、この値をプラス値にすることで、 発進方向が逆向きになったように見せることが出来ます。

機体の位置Y

初期値0。上の「機体の位置X」にマイナスの値が指定されている場合は、 「機体の位置Y」にプラスの値で機体の初期位置が右方向へ移動します。マイナス値で左。 「機体の位置X」にプラスの値が指定されている場合は、逆になります。

機体の位置Z

初期値−1.7。地面の高さを設定します。 出来上がったフィールドの地表に機体が居る時に、周りの景色に比べて機体が 大きく感じるときは、マイナスの値を設定します。( 例:-2.3 ) あまり極端な数値を設定すると風景が破綻します。特に立方体(6面)タイプ はマージンが少ないようです。「パイロットの視点」の設定値によっても 感じ方が変わります。

読込時の値に戻すボタン

シーンファイルを読み込んだときパラメータを取得出来たときだけ 使えます。押すとその時のデータに戻ります。

初期値に戻すボタン

「広さ(球の半径)」「回転角度」「パイロットの視点」 「機体の位置X」「機体の位置Y」「機体の位置Z」 「地面の傾きX」「地面の傾きY」の値を それぞれの初期値にします。

分割画像を出力するチェックボックス

このチェックボックスがオンのとき「画像ファイル名」で指定されたパノラマ 画像から分割された画像が「シーンファイル名」で指定されたファイルの フォルダに出力されます。

出力される画像ファイルの名前は「出力画像の基本名」で指定された名前に 以下の文字列が追加されます。

「タイプ」で球体(20面)を選択している場合

_11, _12, _13, _14, _21, _22, _23, _24, _25, _26, _27, _28, _31, _32, _33, _34, _35, _36, _37, _38

「タイプ」で立方体(6面)を選択している場合は、命名規則の値によって 以下のようになります。

_left, _front, _right, _back, _top, _bottom

_3, _0, _1, _2, _4, _5

「タイプ」で立方体(6面)を選択している時は、円筒画像→平面画像への 変換が行われますので、処理に時間がかかります。

以下のいずれかの場合、エラーが表示されます。

  • 「画像ファイル名」が指定されていない。
  • 指定された「画像ファイル名」が存在しない。
  • 「シーンファイル名」が指定されていない。
  • 「シーンファイル名」で指定されたフォルダが存在しない。
  • 「出力画像の基本名」が指定されていない。

出力画像サイズ

「タイプ」で球体(20面)を選択しているときは、512, 1024, 2048 が選べます。

立方体(6面)を選択している時は、1024, 2048, 4096 が選べます。

4096 を設定する場合、元になるパノラマ画像のサイズが 16,384 * 8,192 ピクセル以上であることを推奨します。

出力画像タイプ

Bitmap か Jpeg を選択します。

シーンファイルを出力する

このチェックボックスがオンのとき、「シーンファイル名」で指定された ファイルが出力されます。

以下のいずれかの場合、エラーが表示されます。

  • 「シーンファイル名」が指定されていない。
  • 「シーンファイル名」で指定されたフォルダが存在しない。
  • 「出力画像の基本名」が指定されていない。

出力実行ボタン

「分割画像を出力する」チェックボックス、「シーンファイルを出力する」 チェックボックスの値に従って処理を開始します。

処理の間は、コンソールタブのページがアクティブになり、処理内容が表示されます。

終了すると、プロジェクトタブのページがアクティブになります。

処理が「シーンファイルを出力する」だけの場合は、一瞬で終わってしまいます。

SimScene.exe の使い方−画像タブ

画像と立方体(6面)用のガイドが表示された状態。

画像と立方体(6面)用ガイド

画像と球体(20面)用のガイドが表示された状態。

画像と球体(20面)用ガイド

画像を表示する

プロジェクトタブの「画像ファイル名」が指定されたとき、このチェック ボックスがオンになっていると画像が読み込まれて表示されます。大きな 画像の時は時間がかかります。

「画像ファイル名」が指定された状態でこのチェックボックスをオンにした 時も、その画像ファイルが実際に存在すれば、同様に読み込まれます。

プロジェクトタブの「出力実行ボタン」を押して処理を始めるとき、メモリ 節約のため、表示されている画像はページ上から消えます。もう一度見たい 時は、一度チェックボックスをオフにしてから再度オンにしてください。

ガイドを表示する

オンにするとパノラマ画像が切り出されるときのガイドラインが表示されます。

表示されるガイドは、「タイプ」で指定された形式に従って変化します。

「タイプ」が球体(20面)の時のガイドラインは、画像の下4分の1の 領域が使用されないことを表現しています。

タイプ

立方体(6面)型か、球体(20面)型かを指定します。

プロジェクトタブの「タイプ」とリンクしています。

横幅

表示されている画像をページの幅に合わせて表示します。 画像を読み込んだ時は最初にこのモードで表示されます。

高さ

表示されている画像をページの高さに合わせて表示します。

100%

表示されている画像を100%の大きさで表示します。

ガイドの追随

画像の表示方法が変わったり、ページがリサイズされた場合も ガイドの位置はそれぞれに追随します。

フォトフィールドの形式(立方体と球体)について

立方体(6面)タイプ

立方体6面

球体(20面)タイプ

球体20面


球体型(20面)

現在 FMS のフォトフィールドには、球体型と立方体型の2種類があります。

球体型は、384面のポリゴンで構成されています。上の右側の画像で示された sky, upper, lower の部分それぞれに128面が配置されています。

sky の部分には4枚の画像がマッピングされ、upper, lower の部分はそれぞれ 8枚の画像がマッピングされています。

マッピングされる画像は正距円筒パノラマ画像から単純に切り出して使うことが 出来ます。

FMS の UV 値は、0〜255で指定しますが

// u v x y z

0 0 -707 -0 682

255 255 -707 707 -25

と、画像の端から端まで使ってしまうと、画像の継ぎ目に隙間が見えてしまい ますので、

// u v x y z

0.50 0.75 -707 -0 682

254.50 254.25 -707 707 -25

という感じで画像の1ピクセル内側の領域を使うようにします。

しかし、単純に切り出した画像でこれを行うと画像の継ぎ目の連続性が失われ ますので、切り出す時に隣り合う画像とオーバーラップした領域を持たせます。

PhotoShop などで手作業で行うことも出来ますが、とても面倒です。

また、ポリゴン数が384面にもなりますので、シーン全体を回転させるための 座標変換処理などは、とても手作業では無理です。これらの処理を自動化することが、 SimScene.exe 開発の動機となりました。

立方体型(6面)

現在のフォトフィールドは Schneeszenerie.scn などに代表される立法体型が主流の ようです。立方体なので、ポリゴン数は6(実際には地面もあるので7面ですが)と 少なく、マッピングも面と画像が1対1対応してますのでとてもラクチンですし、 UV 値に少し内側の領域を指定するのは同じですが、面が直交しているので、 画像が不連続に見えることはありません。

しかし、正距円筒パノラマ画像から単純に6枚を切り出しても、そのままでは 使えません。(経験済み)

そのままマッピングすると、立方体の頂点付近は、原点位置からの距離が遠い分 小さく見えるので、箱の中で飛ばしているような感覚になりますし、正距円筒 画像の樽型の歪みがそのまま見えてしまいます。

そこで、球面から立方体の各面への写像変換が必要になります。 この変換は Pano2QTVR で行うことも出来ますが、SimScene.exe も行えます。 Pano2QTVR よりも多少速いです。(ちょっと自慢。実は開発に一番時間のかかった ところだったりもします。)変換のロジックはまた別の機会に述べたいと思います。

Top
inserted by FC2 system