World Wide Guide | Knowledge Bank | Kukushkin's Notebook | Basics of Simulation


シーナリはどのようにして保管されているか

ここにはシーナリがどのようにして保管されているかについて簡潔に書いてあります。 おそらく、それはこのファイルの残りを理解するのには十分です。 FS5STRUCや 他のシーナリコンパイラのドキュメントには、 より詳細な(技術的ですが)記述があります。

FS5の世界は「シーナリ」と呼ばれることがあります。 「シーナリ」には、地形や見えるオブジェクト、NAVAID、他の飛行機などの ユーザーが直接影響を与えないもの全てが含まれます。 磁気偏差やATISメッセージなどのFS5が使う補助データにも シーナリに含まれるものがあります。

シーナリは活動の起こる環境

一方で、飛行機はシーナリには含まれません。 なぜなら、それらはユーザーから直接制御されているからです。 だから、シーナリというのは何か活動の起きる環境なのです。 FS5は柔軟性に富んでいるので、その世界を拡張することができます。 これらの拡張もまた「シーナリ」と呼ばれるので、時々混乱のもとになります。 シーナリは、小さな一つの滑走路にもなりえますし、大きな全世界にもなります。 だから、この定義は多少直感的です。

例えば、デフォルトのFS5.1の世界は、全世界のシーナリです。 それぞれの7つの都市の地域は、それぞれ別のシーナリとしても見られます。 それぞれは、"ほとんど"周囲への影響を与えずに、 特に世界の他の部分には影響なく除去することができます。 私が"ほとんど"という言葉を使ったのは、 the World/Airportsメニューの中の全ての空港は、 別のファイルに保管されているからです。 だから、除去された空港はそこに残ってしまいます。 それか、そのファイルを完全に削除してしまわなければなりません。 それらを選択すると、飛行機は空中に置かれ、もちろん空港はそこにはありません。 これは、柔軟性によって引起こされるたくさんの問題のうちの一つです。 しかし、商用やフリーウェアのシーナリを追加することによって、 FS5の世界を拡張できるので、その有利さの方がずっと重要です。

BGLファイルがほとんどの情報を持っている

シーナリは、シーナリファイル [*.BGL]と しばしば他の幾つかのファイルとで構成されます。 BGLファイル にシーナリについてのほとんどの情報があります。 そして、他のファイルはBGLファイルから参照された時のみ使われます。 シーナリは、多数のBGLファイルから構成されることも可能です。 この理由は、FS5のパフォーマンスを良くしたり、FS5の制限を乗り越えたり、 (通常は不要なBGLファイルを削除することで)より一層のカスタマイズをするという 合理的な本質が大部分です。

シーナリファイルは異なった種類の情報をもつ異なった節から構成されます。 ここに簡単で不完全ながら、異なった節の生成について書いてあります。 実際に異なった解像度のための6つの節から構成される SYNTH (synthetic) sceneryTILESのデータベースです。

Synthetic scenery は正方形のタイル

FS5の地球は、8192*4096の正方形に分割されて、 synth sceneryにはそれぞれの正方形がどうあればよいかが書いてあります。 Synth sceneryは有名なゲームのSimCityの地形と良く似ています。 ほとんどの海岸線や、都市の外の山地は synth sceneryの良い例(正方形が簡単に見られる)です。 Synth sceneryは平らな地形や、正方形のテクスチャの無い山、 標準の都市や海岸線の定義ができます。

Synth sceneryのもう一つの重要な役割は、 地面の海面からの高度(MSL)を定義することです。 しかし、synth sceneryは細かくて正確なシーナリをデザインすることができません。 Synth sceneryはディスク領域の消費の低減やパフォーマンスの低下の低減、 そして重要なこととして、デザインの簡略化のために 大きな地面を覆うのに非常に適しています。 FS5の世界のほとんどは、synth sceneryだけを使って描かれています。 FS5.0や5.1(ハードディスク上の)の世界は、32*32のタイルブロックだけで定義され、 この理由のためあまり正確ではありません。 FS5.1(CD-ROMバージョン)の世界は、より細かいsynth sceneryを持っているので、 海岸線や地形がより正確です。

球面は(近似的にさえ)正方形のタイルでは完全に覆うことはできないので、 FS5の地球のモデルは球ではなく、湾曲した円柱になっています。 ですから、地球の極(北極や南極)はFS5の世界には存在せず、 (南北とも)緯度89度30分以上には行くことはできません。

Procedural scenery で見える物体を作る

VISUAL (or PROCEDURAL) scenery はその外のほとんどの見える地形や物体を含みます。 データの集まりで定義されるsynth sceneryとは違って、 visual sceneryはFS5が何をどのように表示するのかを示す 一種のプログラム(コード)で定義されます。 そこで使われる命令のほとんどは本当に単純('draw a polygon'のように)ですが、 異なった状況や視界距離を試すための複雑な命令もあります。

点や直線や多角形はもっと複雑な物体を構成するのに使われる基本的な要素なので、 (グラフィックの)根源と呼ばれます。 豊富な命令によって、どのように表示するかという見地から 柔軟にvisual sceneryを作ることができるだけではなく、 プログラムが難しい、ディスクを多く消費する、高速な処理能力を必要とする 物も作ることができます。 このため、比較的小さな領域しかvisual sceneryでは覆うことができません。 FS5.0やFD版のFS5.1ではvisual sceneryは7つの都市部にしかありません。 CD-ROM版のFS5.1では世界に少し飾り(イースターの彩色卵^^;)がついています。

Visual sceneryは単にシーナリを表示する以上の役割があります。 そのうちの一つは、墜落の検知です。 物体は、基本的にその側面を描く命令で表示されているので、 FS5には飛行機と山などの物体との衝突を決める方法がありません。 飛行機が山の内側にあるかどうか、そして、それをFS5に知らせるのは シーナリの役目です。 このため、見える物体との衝突を避ける単純な方法 - 単に、全てのviewとmap windowを閉じて、見えない状態で飛ぶ - ができました。 View windowが無いと、visual sceneryのコードは実行されず、 衝突は検知されません。 注意するのは、地面に衝突しないようにすることだけです、

その他に、地面の表面の種類(なだらかか、荒れ地か、水面か)の決定、 気流の定義、scenery complextyやground textureといった異なった設定に対する 反応などの役割も含みます。 多くのフリーウェアのシーナリでは、 例えばtexture groundをチェックしていなくても、 強制的に地面は常にテクスチャにされます。

Visual sceneryを定義するのに使われる言語は、 よくSDL(Scenery Description Language)と呼ばれます。 それは複雑で、動く物体や、パイロットが制御できる稲妻などの面白い効果を 付けることができます。

Dynamic scenery で動く物体を作る

DYNAMIC sceneryは他の飛行機や給油車両などの動く物体を定義します。 それぞれのdynamic scenery objectはどう動くかを 指示するプログラムを持っています。 しかし、言語はSDLほど柔軟性がありません。 少しの予め定義されたオブジェクトを表示することだけができ、 他のトラフィックを見て適当に反応するような、 「賢い」オブジェクトを作ることはできません。 また、dynamic objectsがvisual sceneryと衝突するという問題もあります。

Section 16の追加機能

SECTION 16には多くの異なったデータ構造があります。 そこには、location marker、時差、LandMeのための滑走路の情報が含まれています。 Visual sceneryには既に滑走路の情報があっても、 その情報は表示のためにしか使われません。 そこで、LandMeには追加の情報が必要なのです。 たいていはパフォーマンスを向上するために、 このような余分はFS5ではしばしばあります。 また、SECTION 16はSDLのコードの一部を含むことができます。 SECTION 9のコードとは違って、これは物体を表示するのには使えません。 空母の甲板のような、synth sceneryでは表現できない小さな盛り上がった表面を 定義するのに使われます。 View windowが開いていなくても良いという点で、SECTION 16は有利です。 他の節では、NAVAID、ATISメッセージ、World|Airportsメニューなどが定義されています。 磁気偏差や外部ファイルなどのための特別な節もあります。


Last updated 20 October 1996 by Gene Kraybill.