▲FLIGHT INFO 表紙に戻る
シーナリールーム HOWTO編 情報交換編 シーナリー公開室 リンク集 電子会議室 ダイナミック・シーナリー専門館
◆簡単なシーナリーの作り方

この章は、株式会社インタークラフトから発行されているMicroflight Magazine Vol.1No8 (1997)に寄稿したものです。まだFS98がリリースされていない頃のものですが、基本は今でも変わっておりませんので、参考にしていただけましたら幸いです。

■1.はじめに

 Flight Simulator(以下FS)の楽しみ方は人それぞれです。思いのままにフライトする人。あるいはフライトプランに従いフライトする人。自作の飛行機でフライトする人。そして、自分で作った風景をフライトする人。etc。

 Microsoft Flight Simulator の風景(シーナリー)は拡張子がBGLのためファイルと呼ばれており、sceneryいうフォルダー(ディレクトリ)の中に収納されています。
 このシーナリーを作りためのソフトウェアが数多く発売されています。Airport & Scenery Designer (ASD)はその代表的なものです。
 また、インターネットなどで公開されているフリーソフトのAirport 2.xx for Windows (Airport)も多くの人たちに愛されており、フリーソフトとしてインターネットで公開されているシーナリーの大部分がこのAirportによって作られています。
 これらのソフトを使うと画面を見ながら簡単に滑走路を引いてみたり様々なオブジェクトを配置することができます。
 これらのシーナリー作成ソフトのほとんどは実はシーナリーを作成するためのソースを作成するためのフロントエンド部で、実際にはシーナリー作成ソフトによって書かれたソースファイルをコンパイラによってコンパイルすることでシーナリーが作り出されるのです。
 いわばシーナリーファイルもプログラムの一種とも言えます。
 このコンパイラとして有名なのは、ASDやAirportによって作成されたソースをコンパイルするSCASM(シーナリーアセンブラ)です。このSCASMはManfred Moldenhauer氏が作成したフリーソフトで、インターネット上で公開されておりまた、
THE Pilot's Toy Box や Abacus社のPilot's Shop などといったフリーソフトを数多く収録したCD-ROM集にも収録されています。

■2.SCASMの利用

 このSCASM.EXEはわずか102,480byteでWindowsのDOSプロンプトで使用します。

 SCASM.EXEはSCASM.ZIPというファイルに圧縮されて梱包されていますので、WINZIPなどの解凍ツールを使って解凍してハードディスク又はフロッピーディスクにインストールする必要があります。
Pilot's Shopなどではインストールするためのプログラムが収録されていますので画面に従ってインストールして下さい。インストール先はFS5又はFS6のインストールされているドライブにSCASMというフォルダーを作成してインストールされることをおすすめします。また、SCXMPL.ZIPというサンプルファイルも同時にインストールして下さい。

 ソースファイルは簡単なテキストファイルです。

Header( 1 35:00 34:00 136.00 135.00 )
LatRange( 34.00 35.00 )
Macro (C:\SCASM\house01.scm 34:30 135:30 180 5 7 )

 という具合です。

■3.マクロを置いてみる

北緯34度30分 東経135度30分の地点にサンプルマクロのHOUSE01.SCMという家を180度の方角(真南)で05(赤)と07(青)の色で置いてみました。
 このソースのHeader並びにLangeはそのシーナリーの有効となる範囲をあらわしています。通常中心から東西南北に30分ずつ幅を持たせていれば十分だと思います。また大文字小文字は気にしなくて結構です。

Macro (C:\SCASM\house01.scm 35 135 180 5 7 )
  %1 %2 %3 %4 %5

の中でそれぞれ%1,%2,%3,%4,%5の数値をパラメータといいこれを変えることにより座標や種類などを変えることができます。
 また、マクロに限らずSCASMの命令にはパラメータを変えることにより、変化を与えます。
 SCASM.ZIPに付属するドキュメントは残念ながら英語でかかれてますが、
村上卓弥氏の手によってこのドキュメントが日本語に翻訳され、村上氏のホームページ公開されています。
 村上氏のホームページのアドレスは、
http://www2.meshnet.or.jp/~tmurakam/fs5-j.html
です。また、村上氏のホームページではこのSCASMを使ったシーナリー作成講座も開催されています。

 SCASMには数々のオブジェクトを作成するためのマクロファイルがインターネット上で公開されています。Airportのマクロファイルも実はSCASMのマクロファイルです。
 THE Pilot's Toy Box や Pilot's Shopにも旧バージョンのMS-DOS版のAirportが収録されており、特に
THE Pilot's Toy BoxではZIPファイルが展開された状態で収録されているのでマクロファイルだけをコピーすることも可能です。
 MS-DOS版のAirportはDOS/Vの英語モードで動作します。

■4.コンパイル

 さて、前記のソースファイルをWindows95のメモ帳を使って作成し例えばSAMPLE.SCMという名前でセーブします。SCASMのソースファイルの拡張子は原則としてSCMです。セーブする場所をFSの
Microsoft Japan Scenery (MS-JAPAN)と同じフォルダーにすればコンパイル後に作成されたBGLファイルをインストールする手間が省けます。
 Windows95のDOSプロンプトで実行しても構いませんが、エクスプローラーを使ってSAMPLE.SCMをダブルクリックしてみましょう。「ファイルを開くアプリケーションの選択」というウィンドウが開きますので、SCMファイルについてはSCASM.EXEを関連づけさせましょう。

 自動的にDOSプロンプトが開きSCASM.EXEが実行されます。エラーもなく終了しましたら、DOSプロンプトを閉じてFSを実行して下さい。そして、座標を前述の北緯34度30分 東経135度30分に移動して建物を探してみましょう。

 青い屋根と赤い壁の建物が表示されれば成功です。

■5.デフォルトの建物を置いてみる

FS5/6はマクロで家を作らなくても8種類のデフォルトの建物が用意されています。SCASMのBuilding命令を使って建物を建ててみましょう。先ほどのSAMPEL.SCMの末尾に続けて、

Area( 5 N34:29:50 E135:30 10 )
PerspectiveCall( :SubRoutine1 )
ShadowCall( :SubRoutine1a )
Jump( : )
:SubRoutine1
Perspective
:SubRoutine1a
RefPoint( 7 :no_building 1 N34:29:50 E135:30 )
RotatedCall( :SubRoutine2 0 0 45 )
:no_building
Return
:SubRoutine2
Building( 0 0 0 10 50 100 0 1F )
Return
EndA

北緯34度29分50秒 東経135度30分の位置に高さ10階 東西50m 南北100mのタイプ0の建物を45度の向きで配置します。そして、同様に東に5秒ずつずらしてタイプ2から7まで合計で8つの建物を配置します。

 
左から、タイプ0、タイプ1、タイプ2、タイプ3   左から、タイプ4、タイプ5、タイプ6、タイプ7

 このソースではArea命令とRefPoint命令で座標を、RotatedCall命令で向きを、そして

Building( 0 0 0   10 50 100 1F
高さ 東西 南北 タイプ

という具合にパラメータを指定します。

 続いて、タイプ3の建物を中心に緑の敷地を作成しましょう。これはPoly命令を使用します。

Area( 5 N34:29:50 E135:30:15 10 )
RefPoint( 7 : 1 34:29:50 135:30:15 )
Points( 1
-1000 0 1000
1000 0 1000
1000 0 -1000
-1000 0 -1000
)
SurfaceColor( 21 F0 )
ConcavePoly
Poly( z 1 2 3 4 )
EndA

Point命令によって、RefPontから東西南北それぞれ1000mの座標を決定し、Poly命令により、西北から時計回りで描いていきます。

■6.道路を引く

 それでは道路を引いてみましょう。

Area( B N34:29:50 E135:30:15 10 )
LayerCall( :L1 4 )
Jump( : )
:L1
RefPoint( 7 :No_Object 1 N34:29:50 E135:30:15 )
SurfaceColor( 2 F0 )
RoadMoveTo( 10 50 0 1000 )
RoadLineTo( -50 0 -300 )
RoadMoveTo( 10 -50 0 -300 )
RoadLineTo( 1000 0 -300 )
:No_Object
Return
EndA

 タイプ3とタイプ4の建物の間を北から中心部に向かい東に折れる幅10mのグレーの道路です。

 ソースコードの羅列で少々わかりにくかったかもしれませんね。

■7.まとめ

AirportやASDといったシーナリー作成ツールを使ってシーナリーを作成する場合は、これらの作業をマウスでクリックして配置するだけですが、各パラーメータは座標以外の手入力しなければなりません。また、AirportもASDも、これらのソフトがSCASMのソースファイルを作成しますので、ちょっとした修正やオブジェクトの追加といったことにSCASMの知識があると役立ちます。

 さぁ、皆さんもこの機会にご自分の家をFS上に建築してみませんか?

SCASMはftp.iup.eduのanonymousサーバーにアップロードされていますので、CompuFlight.com の File Search で Author を Moldenhauer としてお探し下さい。
Link Search a File in CompuFlight.com's IUP database

先頭に戻る